C++ 和 Java 有什麼差別
來源:Hackernoon 程式語言 C++ 和 Java 是當今最受歡迎的語言之一。讓我們討論一下 C++ 和 Java 之間的主要差異。 Java 是一種通用程式語言。它屬於物件導向語言。Java 的創建者希望實現 WORA 原則——「一次編寫,隨處運行」。這意味著當您開發用 Java 編寫的應用程式時,只要安裝了 Java 執行時間環境 (JRE),它就可以在任何平台上運行。該程式透過將 Java 編寫的程式碼編譯為字節碼來運行。這種格式是使用JVM(即Java虛擬機器)執行的。因此,JVM 是 Java 執行時期環境 (JRE) 的一部分。虛擬機器是獨立於平台的。Java還有一種記憶體管理機制,稱為垃圾收集器(GC)。開發人員建立對象,JRE 在對象停止時使用垃圾收集器清理記憶體。Java 語言的語法與其他類 C 語言的語法相似。以下是它的一些功能:-
區分大小寫 - Java 中的使用者和使用者 ID 是不同的實體。
-
方法名稱。如果方法名稱由一個單字組成,則它必須以小寫字母開頭。範例:firstMethodName()。
-
大駝峰命名法用於命名類別。如果名稱由一個單字組成,則必須以大寫字母開頭。範例:FirstClassName。
-
程式檔案的名稱必須與類別的名稱完全匹配,並考慮大小寫。例如,如果該類別名稱為FirstClassName,則該檔案應名為FirstClassName.java。
-
標識符始終以字母(AZ、az)、$ 或底線 _ 開頭。
什麼是C++語言?
C++ 是一種編譯型、強型別、通用程式語言。它支援不同的程式設計範式:過程式、通用式、函數式;大多數注意力都集中在支援物件導向程式設計上。本質上,C++ 是一組告訴電腦要做什麼的命令。這組指令通常稱為原始碼或簡稱為程式碼。命令要么是“函數”,要么是“關鍵字”。關鍵字(C/C++ 保留字)是該語言的基本建構塊。函數是複雜的建構塊,因為它們是用更簡單的函數編寫的。C++ 和 Java 函數的結構與本書的內容類似。目錄可以顯示書籍的章節;書中的每個章節都可以有自己的目錄,由段落組成;每個段落可以有自己的小段落。儘管 C++ 提供了許多可以使用的常用函數和保留字,但語言仍然要求您編寫自己的函數。C++ 和 Java 之間的主要區別
Java 和 C++ 都是物件導向的程式語言,但它們的相似之處僅止於此。他們之間還有更多的差異。當然,在選擇一種語言來開發專案或任何其他特定案例時,C++ 和 Java 之間存在關鍵差異。以下是需要注意的標準。圖書館
Java 還是 C++?哪個圖書館比較大或好?Java 還有更多的函式庫。但你怎麼知道哪些該用,哪些不該用呢?以下是其中一些的簡要描述:- lang、util、nio、io、net。
- Java 還具有用於使用 GUI 框架的函式庫:javax.swing(較舊的 java.awt 的相當過時的擴充)。
- 您甚至可以使用 java.sound 等播放音樂並建立 MIDI 檔案。
輸入機制
Java 主要是解釋性的,因此它是平台無關的。C++產生目標程式碼;相同的程式碼不能在不同的平台上運行。線程支持
Java 內建了對執行緒的支援。Java 有線程類,繼承這些類別可以建立新線程並重寫 start 方法。請注意,C++ 沒有本機執行緒支援。為此,使用非標準化的第三方函式庫。配套方式
Java有方法重載,但沒有運算子重載。String類別不使用+和+=運算子來連接字串,且String表達式使用自動轉換類型,但這是一種特殊的內建情況。C++ 同時支援方法重載和運算子重載。記憶體管理
Java 支援自動堆釋放控制,但不支援析構函數。在 C++ 中,當物件被銷毀時,會自動啟用對析構函數的支援。多重繼承
Java 不提供多重繼承,至少不像 C++ 那樣。多重繼承是 C++ 的一項功能,其中一個類別可以從多個類別繼承。結論
這就是 Java 和 C++ 之間的全部差異。Java 語言非常適合商業專案。它在大公司中需求很大,因為維護和重構現有項目始終保持相關性 - 至少在銀行和其他金融機構中。您可以很好地處理跨平台開發,並使用它為任何平台創建系統。然而,與 Java 相比,C++ 還有其他優點,例如支援方法重載和運算子重載、支援析構函數等。Java 中的私有建構函數
來源:Dev.to Java 中的建構子是一種特殊類型的方法,其名稱與類別名稱或檔案名稱相同。當我們呼叫一個物件時,總是會呼叫內部建構函數。主要用於初始化物件的狀態或類別中變數的值。 現在讓我們來看看什麼是私有建構子。Java 讓我們可以根據使用情況改變方法。那麼,我們可以像其他方法一樣將建構函式設為私有嗎?如果是這樣,那麼私有建構子有什麼用呢?答:是的,我們可以使用 private 存取說明符將 Java 中的建構子宣告為私有建構子。但請記住,如果我們將建構函數宣告為私有,那麼我們將無法建立該類別的物件。相反,我們可以在單例設計模式中使用這個私有建構子。私有建構子的規則:- 它不允許一個類別成為子類別。
- 不允許您在類別之外建立物件。
- 如果一個類別有一個私有建構函數,那麼當我們嘗試擴展該類別時,就會發生編譯時錯誤。
- 我們無法從任何其他類別存取私有建構子。
- 如果我們的類別具有所有常數方法,我們可以使用私有建構子。
- 如果所有方法都是靜態的,我們可以使用私有建構子。
- 如果物件未初始化,我們可以使用公用函數來呼叫私有建構函數。
- 如果該物件已經初始化,我們只能傳回該物件的實例。
public class PrivateConstructorDemo
{
//creating an instance variable of the class Tester
private static PrivateConstructorDemo pcd;
//creating a private constructor
private PrivateConstructorDemo()
{
}
//creating a static method named getInstance()
public static PrivateConstructorDemo getInstance()
{
if(pcd == null)
{
//creating a constructor of the class
pcd = new PrivateConstructorDemo();
}
return pcd;
}
//main() method
public static void main(String args[])
{
PrivateConstructorDemo pcd = PrivateConstructorDemo.getInstance();
PrivateConstructorDemo pcd1 = PrivateConstructorDemo.getInstance();
//invokes the getInstance() method and prints the corresponding result
System.out.println(pcd.equals(pcd1));
}
}
結論:
真的
現在讓我們來看看私有建構函式的用例。使用私有建構函數的主要目的是限制物件的創建。私有建構函式也用於實作單例設計模式。使用私有建構函式的選項如下:
- 它可以與僅靜態成員的類別一起使用。
- 它可以與靜態實用程式或常數類別一起使用。
- 它也可以用於建立單例類別。
- 它可以用於命名,例如使用工廠方法創建。
- 它也用於避免子類化。
- 它包括工廠方法。
GO TO FULL VERSION