🖊作者 : Djx_hmbb
📘专栏 : JAVA
今日格言 : 认识自己的无知是认识世界的最可靠的方法。 ——蒙田《随笔集》
一、知识点–备注:
1.基本数据类型:
(1)整数类型:byte、short、int、long
(2)小数类型:float、double
(3)字符类型:char
(4)布尔类型:boolean
2.引用数据类型:
除了基本的都是,例如:String(字符串类型).
3.引用数据类型–备注:
引用数据类型引用的是地址,所以都是存放在堆里面的。而基本数据类型都是存放在栈里面的。
二、图片理解:
1. 若是两个字符串 “abc” 直接赋值比较 :
a和b调用的是 同一个地址 ,因此a==b为 真。(此时的地址存放在堆内存的串池中)
2.若是new 两个 “abc” 字符串比较:
则在堆空间里面会产生 两个不同 的“abc” 的地址,那么比较地址的时候,肯定是不一样的,即使内容一致。
3.若是一个new,一个直接赋值比较:
则结果也是不相等的,因为一个是堆空间的地址,一个是字符串池的地址
4.若是一个键盘录入字符串“abc” 和 直接赋值的abc相比较:
则也不相等,因为键盘录入也属于new一个对象了。
小结 :
- 基本数据类型 : 直接比较数值
- 引用数据类型 : 直接地址
三、解决方案:
1.比较字符串对象中的内容是否相等:
boolean str = a.equals(b);
2.比较字符串对象中的内容是否相等(忽略英文大小写):
结论 :
字符串的比较要用字符串专用的函数比较:
A.equals(B);或者A.equalsIgnoreCase(B);
感谢家人的阅读,若有不准确的地方 欢迎在评论区指正!