当前位置: 首页 > 后端技术 > Java

为什么java设计成String不能和==比较

时间:2023-04-01 19:45:26 Java

这个问题如果展开就复杂了,包括内存是怎么存的,怎么指向的。举个小技巧,Java的基本数据类型有以下几种,这些数据类型CPU可以直接计算。整型:byte、short、int、long浮点型:float、double字符型:char布尔型:boolean如果把这些基本数据类型转换成对象的过程就是我们所说的包装。用的最多的就是String,很多人面试的时候喜欢问这些类型的转换,其实很正常。在Java编程的过程中,经常会涉及到类型转换。==比较的是对象存放在变量(栈)内存中的(堆)内存地址,用来判断两个对象的地址是否相同,即是否引用同一个对象。因为基本类型是由CPU计算出来的,所以不难理解,通过比较地址就可以得到结果。因为基本类型是由CPU计算出来的,所以不难理解,通过比较地址就可以得到结果。基本类型转换为对象后,用==来比较地址就没有意义了,因为不同的对象使用不同的地址,这样就好了。结论因此,结论是,如果对象不能用==来比较值,只能用equals。Java的基本类型都是小写开头,包类型都是大写开头,好记。在封装类型的比较中,实际编程中并不需要直接使用equals进行比较,因为可能会出现空对象异常,通常使用Apache的Commons或者Guava进行比较。https://www.ossez.com/t/java-...