1.面试篇==和equals()区别、法s方法String线程安全问题(StringBuilder)
2..equals()到底是实现什么意思?
3.equals()和==到底有什么区别啊?
面试篇==和equals()区别、String线程安全问题(StringBuilder)
equals(值相等) ==(引用相等)
equals源代码中可以看到:
JDK自带的法s方法equals有两种,针对Object对象及String对象
1、实现String中的法s方法equals
==判断是否相等,相等直接返回true->再判断是实现pos收银 源码否为string类型,否直接返回false->是法s方法则继续判断对象length->循环判断char是否相等(jdk8使用的是char,高版本的实现jdk已使用效率更高的byte)
2、Object中的法s方法equals
直接return (this == obj),一般业务对象比较要改造equals方法
p.s.自定义对象需要重写equals
二、实现String线程安全问题
String中的法s方法对象是不可变的,也就可以理解为常量,实现线程安全。法s方法AbstractStringBuilder 是实现 StringBuilder 与 StringBuffer 的公共父类,定义了一些字符串的法s方法基本操作,如 expandCapacity、append、insert、indexOf 等公共方法。freebsd 更新内核源码StringBuffer 对方法加了同步锁或者对调用的方法加了同步锁,所以是线程安全的。StringBuilder 并没有对方法进行加同步锁,所以是非线程安全的。
.equals()到底是什么意思?
当我们在Java中使用".equals()"方法时,需要明确其行为并不像我们直观想象的那样比较对象内容。实际上,".equals()"比较的是对象的引用地址,这是期货主图源码由Java语言的内部机制决定的,而非程序员可以控制。如果一个类没有重写"equals()"方法,那么它默认比较的就是对象的内存地址,而非内容,即使对象的属性值相同,也可能返回false。
然而,如果类已经重写了"equals()"方法,情况就有所不同。python 源码混淆工具在这种情况下,".equals()"可能会比较对象的内容,但并非总是如此。例如,当我们尝试比较Integer对象a和Double对象b,尽管它们的数值相等,但执行a.equals(b)时返回的结果会是false,因为Integer和Double是不同的类,即使值相同,酷q踢人源码它们在内存中的地址不同,所以默认的equals()方法会比较地址而不是值。
因此,要理解".equals()"的真正行为,关键在于查看类是否重写了这个方法,并理解其具体的实现。不重写时,它比较的是地址;重写后,可能比较的是内容,但具体取决于重写代码的逻辑。查看相关类的源码是确定equals()行为的关键步骤。
equals()和==到底有什么区别啊?
1、功能不同"=="是判断两个变量或实例是不是指向同一个内存空间。
"equals"是判断两个变量或实例所指向的内存空间的值是不是相同。
2、定义不同
"equals"在JAVA中是一个方法。
"=="在JAVA中只是一个运算符合。
例子:
Student student1 = new Student();
Student student2 = new Student();
System.out.println(student1.equals(student2));
System.out.println(student1 == student2);
3、运行速度不同
"=="比"equals"运行速度快,因为"=="只是比较引用。
"equals"比"=="运行速度要慢。
扩展资料
equals()方法特点:
1、自反性:x.equals(x)返回true;
2、对称性:若x.equals(y)为true,则y.equals(x)亦为true;
3、传递性:若x.equals(y)为true且y.equals(z)也为true,则x.equals(z)亦为true;
4、一致性:x.equals(y)的第一次调用为true,那么x.equals(y)的第二次、第三次、第n次调用也均为true,前提条件是没有修改x也没有修改y;
5、对于非空引用x,x.equals(null)永远返回为false。
参考资料:百度百科-equals2025-02-01 01:162530人浏览
2025-02-01 01:061845人浏览
2025-02-01 00:511368人浏览
2025-02-01 00:222250人浏览
2025-01-31 23:52823人浏览
2025-01-31 23:482911人浏览
HIV病毒的吸附。视觉中国/图)自20世纪80年代发现首例艾滋病患者以来,科学家一直在苦苦寻找彻底治愈这种危害性极大的自身免疫缺陷疾病的方法。2023年2月20日,德国杜塞尔多夫海涅大学医学院的研究人
1.tg怎么用? tg什么意思?2.tg是什么软件?3.tg是什么平台4.市场软件指标精选更新:副图--“牛起点”源码)5.TG是什么意思?tg怎么用? tg什么意思? 1. TG全称Telegr