Java中String类通过new创建和直接赋值字符串的区别
方式一:String a = “aaa” ;
方式二:String b = new String(“aaa”);
- 两种方式都能创建字符串对象,但方式一要比方式二更优。
- 因为字符串是保存在常量池中的,而通过new创建的对象会存放在堆内存中。
常量池中已经有字符串常量”aaa”
- 通过方式一创建对象,程序运行时会在常量池中查找”aaa”字符串,将找到的”aaa”字符串的地址赋给a。
- 通过方式二创建对象,无论常量池中有没有”aaa”字符串,程序都会在堆内存中开辟一片新空间存放新对象。
常量池中没有字符串常量”aaa”
- 通过方式一创建对象,程序运行时会将”aaa”字符串放进常量池,再将其地址赋给a。
- 通过方式二创建对象,程序会在堆内存中开辟一片新空间存放新对象,同时会将”aaa”字符串放入常量池,相当于创建了两个对象。
Java中String类通过new创建和直接赋值字符串的区别的更多相关文章
- 106、Java中String类之使用contains()方法判断子字符串是否存在
		01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ... 
- 105、Java中String类之利用indexOf()方法判断子字符串是否存在
		01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ... 
- java中String类学习
		java中String类的相关操作如下: (1)初始化:例如,String s = “abc”; (2)length:返回字符串的长度. (3)charAT:字符操作,按照索引值获得字符串中的指定字符 ... 
- 在java中String类为什么要设计成final?
		大神链接:在java中String类为什么要设计成final? - 程序员 - 知乎 我进行了重新排版,并且更换了其中的一个例子,让我们更好理解. String很多实用的特性,比如说“不可变性”,是工 ... 
- Java中String类的方法及说明
		String : 字符串类型 一. String sc_sub = new String(c,3,2); // String sb_copy = new String(sb) ... 
- 在java中String类为什么要设计成final
		在java中String类为什么要设计成final? - 胖胖的回答 - 知乎 https://www.zhihu.com/question/31345592/answer/114126087 
- 【转载】Java中String类的方法及说明
		转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一. String sc_ ... 
- Java中String类为什么被设计为final?
		Java中String类为什么被设计为final 首先,String是引用类型,也就是每个字符串都是一个String实例.通过源码可以看到String底层维护了一个byte数组:private f ... 
- java中String类、StringBuilder类和StringBuffer类详解
		本位转载自http://www.cnblogs.com/dolphin0520/p/3778589.html 版权声明如下: 作者:海子 出处:http://www.cnblogs.com/dolp ... 
随机推荐
- hystrix 应用问题
			1.问题总结, 如果项目中使用了ThreadLocal,注意hystix创建新线程时,ThreadLocal中存的是之前线程中的数据,在hystix线程中获取不到 2.问题 throwable异常参数 ... 
- Java面向对象(static、final、匿名对象、内部类、包、修饰符、代码块)
			面向对象 今日内容介绍 u final u static u 匿名对象 u 内部类 u 包的声明与访问 u 四种访问修饰符 u 代码块 第1章 final关键字 1.1 final的概念 继承的出现提 ... 
- [拾零]C/C++_代码复用的实现_静态链接库_动态链接库_使用.def导出
			1 静态链接库 1.1 创建静态链接库: 1.在VC6中创建项目:Win32 Static Library 2.在项目中创建两个文件:xxx.h 和 xxx.cpp 3.编译 1.2 使用静态链接库 ... 
- Ubuntu 配置IP地址方法
			接到一客户的服务器,开机已启动发现是Ubuntu系统,当时有点郁闷了,心想没有配置过ubuntu系统,这客户还在旁边了,心里有点紧张了,于是开始上网寻找各种方法配置,最终将IP配置好,给客户上架调试通 ... 
- 使用java来压缩图片
			使用java来压缩图片,简单几句,清清爽爽 使用0.3的压缩比得到的结果如下(从2.8M压缩到268K,且图片的清晰度看不出明显差别): package carlspringtest; import ... 
- 工作方法-scrum+番茄工作法
			1.产品和开发团队近期的工作分析和安排,使用scrum. 产品的工作:通过product backlog来列出 开发团队近期的工作安排:通过sprint backlog来列出,由个人认领,并估算(优先 ... 
- 多目标检测分类 RCNN到Mask R-CNN
			最近做目标检测需要用到Mask R-CNN,之前研究过CNN,R-CNN:通过论文的阅读以及下边三篇博客大概弄懂了Mask R-CNN神经网络.想要改进还得努力啊... 目标检测的经典网络结构,顺序大 ... 
- MovieReview—NINE LIVES(九条命)
			Struggle & Family A successful middle-aged man in the movie became a cat by falling from ... 
- TIF转JPG
			public void TifToJpg(string tifPath, string tifName) { try { //找到后缀为TIF的图像,如果没有,就catch退出 int len = t ... 
- 访问URI地址
			//发送消息到服务器 public string HttpConnectToServer(string ServerPage) { byte[] dataArray = Encoding.Defaul ... 
