基本数据类型包括byte、int、char、long、float、double、boolean和short。
引用数据类型包括:类,数组,接口
基本数据类型和引用类型的区别主要在于基本数据类型是分配在栈上的,而引用类型是分配在堆上的。
由此,我们分析一下”==“和equals()的区别。
首先,我定以两个String对象
String a="abc";
String b="abc";
然后
if(a==b){System.out.println("a==b");}
else
{System.out.println("a!=b");}
程序输出a!=b
原因:a和b的地址是不相同的,a==b比较的是两个变量的地址
定义两个基本类型
int a=4;
int b=4;
if(a==b){System.out.println("a==b");}
else
{System.out.println("a!=b");}
输出:a==b
原因:==比较的是两个变量的内容
猜想:不论是基本数据类型还是引用类型,他们都会先在栈中分配一块内存,对于基本类型来说,这块区域包含的是基本类型的内容;而对于对象类型来说,这块区域包含的是指向真正内容的指针,真正的内容被手动的分配在堆上。
责任编辑:小草