String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。
来源:互联网 发布:硬盘 数据恢复 价格 编辑:程序博客网 时间:2024/05/17 07:12
面试题1:
package 常见对象_String;public class StringDemo4 {public static void main(String[] args) {String s1 = new String("hello");String s2 = new String("hello");System.out.println(s1==s2);//falseSystem.out.println(s1.equals(s2));//trueString s3 = new String("hello");String s4 = "hello";//在方法区有这个常量值System.out.println(s3==s4);//falseSystem.out.println(s3.equals(s4));//trueString s5 = "hello";String s6 = "hello";System.out.println(s5==s6);//trueSystem.out.println(s5.equals(s6));//true}}
面试题2:
package 常见对象_String;public class StringDemo5 {public static void main(String[] args) {String s1 = "hello";String s2 = "world";String s3 = "helloworld";System.out.println(s3==s1+s2);//false(s1和s2是两个变量是先开空间再拼接在一起,所以不和s3地址值一直)System.out.println(s3.equals(s1+s2));//trueSystem.out.println(s3=="hello"+"world");//true(因为"hello"和"world"是常量,所以先拼接再去找有没有这个拼接后的常量,发现有,s3所以相等)System.out.println(s3.equals("hello"+"world"));//true//通过反编译看源码,我们知道这里已经做好了处理//System.out.println(s3=="helloworld");//System.out.println(s3.equals("helloworld"));}}
/*
* 结论:
* 字符串如果是变量相加,先开空间再拼接(一开空间,地址就绝对不一样)
* 字符串如果是常量相加,是先加,然后在常量池找,如果有就直接返回,否则就创建
我们用Java的反编译工具XJad就可以看出来其中的原因
*/
0 0
- String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。
- String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。
- java面试题:String字面值对象和构造方法创建对象的区别
- String字面值对象和构造方法创建对象的区别:String s = new String("hello")和String s = "hello";的区别
- 1105 Java中String字面值对象和构造方法创建对象的区别
- 常见对象_String字面值对象和构造方法创建对象的区别
- java语言基础(53)——String 字面值对象和构造方法创建对象的区别
- java :两个对象相等equals和==的区别
- java:string对象equals 和 == 的区别
- 创建字符串对象的时候,使用字面值和使用new String()构造器这两种方式有什么不同?
- Java中两个对象的比较 equals()方法和==号的区别
- String经典问题(==和equals区别,new String为什么创建了两个对象)
- 有关String对象的一个面试题
- 回顾JavaSE(4)-String(3)四行代码分析String字面值对象和构造方法对象的内存分配
- String的面试题-==和equals
- 区别==和equals和String创建的区别
- C++string对象和字符串字面值的连接,+操作
- java中创建String类型对象的两种方式以及在使用equals()和“==”两种方法时的区别
- Linux平台Java环境中文编码研究
- bash脚本中的分支结构
- 基于米勒-拉宾素性测试 c代码演示
- static 小知识总结
- hdu3461 Code Lock
- String字面值对象和构造方法创建对象的区别的两个有关==和equals的面试题。
- Highcharts使用指南
- Java NIO框架Mina、Netty、Grizzly介绍与对比
- Android开发系列 QQ登陆界面——Android控件使用实例 - Carlos.V
- 七,java类装载器
- svn Some of selected resources were not added to version control SVN错误[locked; try performing]的解决办法
- JavaScript返回前一页的两种方法 --转
- spring mvc 发送html格式velocity邮件模板(包括定时发送与按钮触发发送)
- leetcode 日经贴,Cpp code -Trapping Rain Water