Java vs C++ 基礎異同比較

數據類型

  • Java 中只有8種數據基本類型,C++的基本數據類型較多

Java 中的8種基本數據類型爲:boolean, byte, short, int, long, float, double, charjava

c++ 中的數據類型較多,且部分寫法有所區別:bool, short, int, long, float, double, charc++

  • 基本數據類型佔用的字節數有所區別,由於 Java 支持跨平臺,因此每一個基本數據類型佔用的字節數是固定的。而 c++ 在不一樣平臺會有所差異。

Java 中的boolean, byte 一個字節, char,short 兩個字節, int, float 四個字節, long, double八個字節。函數

c++ 中,規定了最小尺寸,bool, char一個字節,int, short兩個字節,long 四個字節,規定了大數據類型不得小於小數據類型。好比long 所佔字節數不得小於int所佔字節數。大數據

  • Java 中的數字變量都是有符號的,c++能夠定義爲有符號和無符號兩種。

在c++中,當有符號數跟無符號數相加的時候,有符號數會轉換爲無符號數,因此在c++中有符號和無符號相加也許是出現異常。指針

  • 在Java中整數型不能與布爾型相互轉換,而c++中能夠,非0表明真,0表明假

變量

  • Java 中變量的聲明必須賦值,而c++能夠不進行賦值。

Java中,若是變量在類中,那麼建立對象的時候,會爲其賦與默認值。code

c++的變量若是在函數外定義,未賦值,也會被賦予默認值。可是在函數內的話,值取決於內存的位置。對象

public class Learn{ 
    public static void main(String[] args) { 
        Test test = new Test();
        System.out.println(test.a);
    }
}

class Test{
    int a;
}

//輸出 
//0
int b;
int main() {
    int a;
    cout << b << endl;
    cout << a << endl;
}

// 輸出
//0
//4354430
  • C++中的 extern 關鍵詞能夠聲明變量,告訴編譯器這個變量的值能夠在其餘文件中找到。
  • 變量的賦值方式,c++ 花樣比較多
int main() {
    int a{1};
    int b = 2;
    int c = {3};
    int d(4);
    cout << a << endl;
    cout << b << endl;
    cout << c << endl;
    cout << d << endl;
}

複合類型(c++的引用和指針)

  • 引用

引用是對對象的綁定,一旦綁定後就不容許進行修改。因此必定須要對引用進行初始化操做。內存

int a = 1; 
int &b = a;
  • 指針

指針是一個對象,因此能夠不對其進行賦值初始化操做。指針能夠進行屢次賦值操做。若是想爲空指針,能夠有下面的幾種方式:編譯器

int *p = 0;
int *p = NULL;
int *p = nullptr;
相關文章
相關標籤/搜索