从C++转换为了java的学习,Java会有和c++不一样的地方,java不再存在有指针的这一种说法。但是这并非就意味着Java里面就没有了指针这种东西的存在;在java里面,指针被很好地隐藏和封装在了底层区域,所有对于数据的处理都是采用了引用的方式,所以java的程序一般可以说不会有内存泄漏这种事情发生,除非开发者恶意去制造一些混乱。
引用
在Java里面,对于数据的处理我们过多的都是采用引用的方式来调动。例如:
demo是一个类,我们对它进行操作:
demo d1;
这一句代码在c++和java里面所表示的意思是不一样的;
在c++里面,d1是被存储在了某个特殊地址的内存空间里面,并且还包含了这个对象d1的所有数据的存储空间。然而在java里面,程序只是创建了一个保存了存放d1对象地址的存储空间,并不包含有d1数据的存储空间。
赋值
举个例子来解释:
demo d2;
demo d3;
d3=d2;
在c++里面,d3=d2所表示的意思是指将d2对象的所有数据完全拷贝到了d3里面去,然而在java里面,这句语句仅仅是向d3里面拷贝了指向d2的存储地址。
相同的判断
在java和c++里面的==的用法也有些出入,在c++和java里面,==符号都可以用来比较两个数据类型的值是否相等。然而在对于对象类型的比较是,“==”符号的意义就有所不同了。
举个例子来说明:
demo d4;
demo d5=d4;
if(d4==d5)
{
cout<<”they are the same!”;
}
在C++里面,对象之间用“==”进行比较的时候,会考虑到两个对象里面所包含的数据是否相等的情况,然而相同的情况在java里面,则只是会考虑到两个对象的是否都是指同一个对象。在Java里面要对两个对象所包含的数据也进行比较的话要用到object类里面的equals()方法进行判断;例如:
demo d4;
demo d5=d4;
if(d4==d5)
{
System.out.println(“they at the same!”);
}