String类的基本特点
来源:互联网 发布:远程桌面连接软件 编辑:程序博客网 时间:2024/05/29 02:48
String str1 = "hello";
String str2 = "hello";
System.out.println(str1 == str2);
输出为ture。
String str1 = "hello";
String str2 = new String("hello");
System.out.println(str1 == str2);
此时输出的是false,原因是此时比较的为str1和str2的地址,要想使结果为ture,使用str1.equals(str2)比较字符串相等函数。
String类中“==” 和equals()的比较:
“==”进行的是数值比较,比较的是两个字符串的地址的数值;
equals()进行的是字符串内容的比较。
字符串为匿名对象:
String str1 = "hello";
其实是将一个匿名的String类对象设置有名字,匿名对象存放在堆内存中。
任何一个字符串常量均为String类的一个匿名对象,所以该对象永远不可能为null。
String类的两种实例化:
1. 采用直接赋值:
在jvm底层会自动维护一个对象池(可以理解为对象数组),若采用直接赋值的操作,那么该实例化对象(字符串)将自动保存到对象池中,如果下次继续使用直接赋值声明了String类对象,那么如果此时对象池之中存在指定内容,则直接进行引用,若没有,则开辟新的字符串对象,然后将其保存在新的对象池之中以供下次使用。
2.采用构造方法:String str = new string("hello");
如果使用构造方法则会开辟两块堆内存空间,而且有一块会成为垃圾,且对字符串共享产生影响。
String类中对象两种实例化的区别:
1.直接赋值只会开辟一块堆内存空间,且字符串对象可以保存在对象池中以供下次使用;
2.采用构造方法会开辟两块堆内存空间,使用intern()方法后可以手工入池。
所有的语言对于字符串的底层实现都是通过字符数组实现的,所以字符串常量不可改变。我们所见的字符串的变更,是字符串对象的变更。
阅读全文
1 0
- String类的基本特点
- 类的基本特点
- Java中String类的特点
- String类特点
- JavsScript的基本特点
- java中String的特点
- Java中String类的特点以及常用的方法
- Java string类特点1
- 极限编程的基本特点
- 串行接口的基本特点
- Scala01-Scala的基本特点
- 【C++学习笔记】string类处理字符串的一些特点
- String类的基本实现。
- String 类的基本用法
- string类的基本实现
- String类的基本操作
- string类的基本操作
- string类的基本操作
- 脏读、不可重复读与幻读和spring事务传播方式
- Python正则表达式基本字符集
- 读《书架》
- (超详细)读取mnist数据集并保存成图片
- HDU 1814(染色)
- String类的基本特点
- opencv入门学习第一章,对图像基本的操作(图像腐蚀、图像模糊、canny图像边缘检测)
- java声明子类时,静态语句块、实例代码块、构造器方法这3者的调用顺序
- 复合文档格式(一)- Excel XLS文件格式
- 奇数阶幻方(幻方)
- 菜鸟先飞之JAVA_Object类
- 使用Jenkins构建Maven项目
- [leaflet] esri-leaflet(一):初识leaflet
- Hadoop伪分布式环境搭建