关于java中String类型比较

在java中String类型,可以有两种实例化方式;

一种是这样的String a = “hello”;

另一种是这样的String b = new String(“hello”);

如果直接用“==”比较他俩个是否想相等,System.out.println(a == b);

输出的结果为false;

原因是什么呢?

原因是字符串a实例化后再堆内存上开辟了一地址,他有一个地址编号假设为0x0111;

字符串b使用new实例化后再在对堆上看一个地址,他的地址编号为0x0112;

使用“==”比较,比较的是他们的内存地址,所以他们在内存上的地址是不一样的,故为false;

如要要比较两个字符串的内容是否相等的话使用String类中有一个方法,为equals,来比较;

· 例如: System.out.println(a.equals(b));

输出结果为TRUE;

猜你喜欢

转载自blog.csdn.net/qq_37412975/article/details/113189243