String中的equals和==
来源:互联网 发布:java发送图片 编辑:程序博客网 时间:2024/06/05 06:43
初学java,在比较string的值是否相等的时候,发现与c++中不同的地方。与c++中直接使用==来比较不同,java使用string.equals来比较字符串是否相等。equals比较的是字符串的值是否相等,==则比较对象的内存地址是否相等。在学习过程中发现诸如下列代码:
String s1 = “apple”;
String s2 = "apple";
这样声明的话,无论使用==还是equals,返回的结果都是true,这说明变量s1和s2不管是内存地址还是值都是相等的,这是由于变量是维护在常量池之中的,这里让我产生疑惑,为什么变量(c++中概念)会维护在常量池中,通过查阅api文档后,发现了java中字符串是常量它在创建之后不可以修改,如下图:
这与c++中是不同的。所以string变量创建之后维护在常量池之中,在新的string s2创建的时候,先回在常量池中寻找是否有apple这个值,经过查找发现有,就直接将s2也指向了该位置,所以才会有两种方法比较都返回true的现象。
0 0
- String中的==和.equals()
- String中的equals和==
- Java String中的==和equals()
- java和c#中的String equals == 比较
- java 中String中的equals和==
- ==和equals区别、String中的区别
- String中的equals()方法和==解析
- String中的“==”和equals()方法使用
- String ==和equals
- String"=="和equals
- Java中的"=="和"equals()"的区别 String中的单例模式
- String 里的==和equals
- String,“==”和“equals”的用法
- String ==和equals()区别
- Java String equals和==
- 关于String的==和equals
- java string equals 和 ==
- String类的equals和==
- Windows下基于原始套接字的回射客户端
- 锁Lock 那点事儿
- Java内存模型——基础
- 随笔
- 使用基于注解的mybatis时,利用反射和注解生成sql语句
- String中的equals和==
- 浏览器内核
- win10系统 CAJ文件打不开 老弹出 File doesn't existed or can't be visited normally! 文件不存在或不能正常访问
- 各种API记录(待续)
- 查到源文件中没有使用的变量,find_notuse_variable.sh
- 利用python 实现简单 爬虫
- 查找函数自动vi打开并且游标自动定位函数定义位置findfun.sh
- ART世界探险(20) - Android N上的编译流程
- 第一天上班