簡體   English   中英

關於Java中構造函數的問題

[英]Question about constructors in Java

關於Java構造函數我幾乎沒有問題

  1. 構造函數可以是私有的嗎? 如果是,那么在哪種情況下?
  2. 構造函數是否是方法?
  3. 如果構造函數沒有返回任何內容,那么為什么每次調用它時我們都會得到一個新的Object?
  4. 如果我們不指定,那么構造函數的默認訪問修飾符是什么。

編輯

1和3的答案非常清楚。 我仍然不確定2和4,因為我得到了不同的答案。

構造函數可以是私有的嗎? 如果是,那么在哪種情況下?

是。 沒有條件。 當然,除了班級本身之外沒有人可以稱之為。

這實際上是一種常見的模式:擁有static getInstance()並將構造函數保持為私有。

公共構造函數也可以在內部調用私有構造函數。

構造函數是一種方法嗎?

嗯。 我拒絕”。 至少,它是一種“非常特殊的”方法。 在什么情況下呢? 術語不如您嘗試的那么重要。

如果構造函數沒有返回任何內容,那么為什么每次調用它時我們都會得到一個新的Object。

new運算符返回一些東西(新實例)。

什么是構造函數的默認訪問修飾符。

與方法相同。 包裝和私營部門。

如果你沒有指定任何構造函數,那么該類將獲得一個默認構造函數,它不帶參數,除了調用父構造函數之外什么都不做,並且是公共的。

  1. 是的,無論如何。 但是,如果類的所有構造函數都是私有的,則意味着無法直接實例化該類。 您將需要使用類似工廠模式的東西來創建對象的實例。
  2. 是的,構造函數是一種方法。
  3. 考慮它的更好方法是new運算符返回對象,並在創建對象的過程中調用構造函數。 考慮它的另一種方式(雖然這只是一種思考它的方法,但從技術上來說並不正確)只是返回類型是由慣例隱含的。 閱讀更多相關內容的好地方是閱讀C ++上下文中的 new 構造函數的作用不是創建對象,而是初始化對象中包含的內存。
  4. Java中構造函數的默認訪問權限就像其他任何方法一樣。 (一個這樣的來源: http//www.javabeginner.com/learn-java/introduction-to-java-access-modifiers並從馬的口中: http//download.oracle.com/javase/tutorial/java/ javaOO / accesscontrol.html
  1. 是的,構造函數可以是私有的。 當您希望對實例創建進行更嚴格或替代控制時(例如使用工廠方法或使用Singleton等模式),即可完成此操作。
  2. 這是一種方法,但不直接調用。 這是一種在創建新對象時代表您調用的特殊類型的方法。
  3. 構造函數不返回任何內容,它們創建新對象。
  4. 包的默認值是包私有。 因此對包中的任何類都公開,但對包外的代碼不可見。

關於Tomcat性能和可伸縮性的思考:這是一個基於服務器硬件和請求類型的高度可變情況,當然還有服務於每個請求的代碼的質量,效率和內存占用。

並發請求的下限是500.考慮到您可能希望為每個請求創建一個線程,並為每個線程提供1MB堆棧.5 GB僅用於線程堆棧空間。 這是在堆內存和分配那么多線程的性能開銷之前。 我認為如果需要一次處理那么多請求,你可能需要考慮像JBoss這樣的更重要的服務器。

  1. 在任何情況下,構造函數都可以創建為私有。
  2. 構造函數是一種特殊類型的方法 ,可以在為相應的類創建對象時自動調用。
  3. 構造函數不包含任何返回值。 它只是創建新對象。 不應該為構造函數提供任何返回類型。
  4. 構造函數的默認訪問說明符是public
  • 可以將構造函數聲明為任何類的私有。
  • 構造函數是一種返回其所屬類的實例的特殊方法,因此您無需指定構造函數返回類型。
  • 如下所述,包私有是正確的答案。
  1. 是的 - 工廠實例單例經常使用這種模式,強制用戶通過靜態工廠方法初始化他們的類。
  2. 是的,這是一種方法
  3. 因為這是構造函數的作用 - 它構造。 (假設將返回施工結果)
  4. 與方法相同

關於您的Tomcat問題,它取決於Tomcat的哪個版本,它使用的IO模型(例如,NIO與歷史網絡IO模塊)以及您的配置。 單個Tomcat可以一次處理數百個請求,盡管並發是可調的(每個請求將由來自池的不同線程或線程處理)。

構造函數的默認訪問修飾符是CLASS ACCESS MODIFIER,如果類是public,則構造函數的訪問修飾符是public。 如果該類是默認的,那么構造函數也是默認的。

  1. 是。
  2. 是。
  3. 因為構造函數是由new調用的。 返回對象的是new ,構造函數只是設置內部狀態。
  4. 上市。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM