码迷,mamicode.com
首页 > 其他好文 > 详细

一个关于string的区别

时间:2017-09-28 10:00:55      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:pre   print   stat   记录   system   sys   equal   优化   编译   

 1 public class Test01 {    
 2         public static void main(String[] args) {
 3             //demo1();
 4             //demo2();
 5             //demo3();
 6             //demo4();
 7             demo5();
 8         }
 9         private static void demo5() {
10             String s1 = "ab";
11             String s2 = "abc";
12             String s3 = s1 + "c";
13             System.out.println(s3 == s2);
14             System.out.println(s3.equals(s2));         //true
15         }
16         private static void demo4() {
17             //byte b = 3 + 4;                        //在编译时就变成7,把7赋值给b,常量优化机制
18             String s1 = "a" + "b" + "c";//java中有常量优化机制,在编译时期就能确定s2的值为"abc",所以编译时期,在常量池中创建"abc"
19             String s2 = "abc";//执行到这里时常量池中已经有了"abc",所以就不再创建,所以s1和s2指向的是常量池中同一个字符串常量"abc"
20             System.out.println(s1 == s2);             //true,java中有常量优化机制    
21             System.out.println(s1.equals(s2));         //true
22         }
23         private static void demo3() {//==比较的是地址值
24             String s1 = new String("abc");            //录的是堆内存对象的地址值        
25             String s2 = "abc";                        //记录的是常量池中的地址值
26             System.out.println(s1 == s2);             //false
27             System.out.println(s1.equals(s2));         //true
28         }
29         private static void demo2() {
30             //创建几个对象
31             //创建两个对象,一个在常量池中,一个在堆内存中
32             String s1 = new String("abc");        
33             System.out.println(s1);
34         }
35         private static void demo1() {                //常量池中没有这个字符串对象,就创建一个,如果有直接用即可
36             String s1 = "abc";
37             String s2 = "abc";
38             System.out.println(s1 == s2);             //==号比较的是地址值,true    
39             System.out.println(s1.equals(s2));         //比较的是字符串的内容:true
40         }
41     }
42     

 

一个关于string的区别

标签:pre   print   stat   记录   system   sys   equal   优化   编译   

原文地址:http://www.cnblogs.com/lovemyfat/p/7604805.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!