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

String的创建模式

时间:2019-09-24 13:46:57      阅读:88      评论:0      收藏:0      [点我收藏+]

标签:不能   http   final   字符串常量   new   一点   直接   www   建模   

一点基础,这位博主写得很好:

https://www.cnblogs.com/jamaler/p/11576754.html

 

简要概括一下:

1.创建方式:

String str1 ="Hello World";

String str2 = new String("Hello World");

 

str1 == str2 ????

并不等于,创建str1时,JVM会查找常量池中是否有Hello World对象,若没有则创建并返回引用。若存在,则直接返回引用。

str2 是在编译时,在常量池中创建Hello World变量,new的使用使用常量池中引用,在堆中创建地址。。str2指向的是堆地址。

 

2.String对象的不可变性

1.String的类呗final修饰,因此不可以被继承;

2.用来被存储字符床的value[]被final修饰,因此,String对象一旦被初始化,就不能被修改。

 

String对象不可变的几个原因。

1.出于安全考虑若String对象可以被随意修改,那么就有可能被恶意修改。

2.确保hash值不会变化,确保唯一性,保障hashMap等功能的正常实现

3.可以实现字符串常量池

 

String的创建模式

标签:不能   http   final   字符串常量   new   一点   直接   www   建模   

原文地址:https://www.cnblogs.com/jinsheng1027/p/11577785.html

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