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;
相关文章
相关标签/搜索