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

String类型不属于八种基本类型

时间:2015-06-02 15:03:54      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

1         String str ="hello";
2         String str1="he"+new String("llo");
3         String str2= new String("hello");
4         System.out.println(str==str1);//false;
5         System.out.println(str.endsWith(str1));//true;
6         System.out.println(str1==str2);//false;
7         System.out.println(str1.equals(str2));//true;
8         System.out.println(str==str2);//false;
9         System.out.println(str.equals(str2));//true;

String不属于8种基本数据类型,String是一个对象。因为对象的默认值是null,所以String的默认值也是null;但它又是一种特殊的对象,有其它对象没有的一些特性。

new String()和new String(”")都是申明一个新的空字符串,是空串不是null;

一种是用new()来新建对象的,它会在存放于堆中。每调用一次就会创建一个新的对象。

一种是先在栈中创建一个对String类的对象引用变量str,然后通过符号引用去字符串常量池 里找有没有""中的值,如果没有,则将""中的值存放进字符串常量池 ,并令str指向””中的值,如果已经有则直接令str指向。

代码为两者的区别。

还能看出一点,==比较的是引用位置是否相同,而equals()比较的是数值是否相等。

String类型不属于八种基本类型

标签:

原文地址:http://www.cnblogs.com/boeing-bick/p/4546396.html

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