文档章节

关于字面量字符串的效率问题

大海
 大海
发布于 2016/07/09 16:27
字数 396
阅读 13
收藏 0
@RestController
public class FirstRestController {
	
	private String str1;
	private String str2;
	@RequestMapping("/rest")
	public String out(){
		str1 = "hello world";
		return str1;
	}
	
	@RequestMapping("/rest2")
	public String out2(){
		str2 = "hello world";
		return str2;
	}
	@RequestMapping("/comp")
	public Boolean comp(){
		return str1 == str2;
	}
}
@RestController
public class FirstRestController {
	private static final String str = "hell world";
	@RequestMapping("/rest")
	public String out(){
		return str;
	}
	
	@RequestMapping("/rest2")
	public String out2(){
		return str;
	}
}

第一个图中的源码,在每次收到请求的时候都会创建一个字面量的字符串hello world,根据字符串的常量池特性,每次变量被一个字面量字符串赋值时都会去字符串常量池看一下是否有这和这个字符串相同的字符串(equals),如果有的话直接返回该字符串,这个做法的好处就是不会重复创建相同的字符串,如果new的话就例外了,new会在堆中开辟一个空间用来存放这个字符串对象。

再来看看第二个图的源码,在控制器中定义了一个static final的字符串,说明该字符串是控制器的静态私有变量,类中的所有方法都可以直接使用这个字符串。好处在于,每次收到请求的时候都会直接返回这个私有字符串,而不会先去常量池里看看是否存在这个字面量字符串。效率要比第一个更高。所以在遇到一个方法调用某个固定字符串的时候,最好直接引用某个已经赋值的字符串变量,因为效率更高

© 著作权归作者所有

共有 人打赏支持
大海
粉丝 2
博文 84
码字总数 32431
作品 0
杭州
程序员
私信 提问
我终于搞清楚了和String有关的那点事儿。

String,是Java中除了基本数据类型以外,最为重要的一个类型了。很多人会认为他比较简单。但是和String有关的面试题有很多,下面我随便找两道面试题,看看你能不能都答对: Q1:定义了几个对...

06/24
0
0
基本类型和操作之理解Symbol类型

相信很多人和我一样,在刚接触scala时,会觉得Symbol类型很奇怪,既然Scala中字符串都是不可变的,那么Symbol类型到底有什么作用呢?简单来说,相比较于String类型,Symbol类型有两个比较明显...

柳哥
2014/06/05
0
0
Java进阶——Java中的字符串常量池

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_30379689/article/details/80518283 字符串常量池 JVM为了减少字符串对象的重复创建,其内部维护了一个特殊...

Hensen_
05/31
0
0
Javascript中数据类型转换那些事

在js中,总的来说数据类型分为两大类,一类是原始值类型的,一类是引用类型的。原始值类型的包括:字符串(String) 、数字(Number) 、布尔值(Boolean) 以及两个特殊的值 null 和 undefined 。...

Junn
2014/09/26
0
0
Java中关于乱码的认识和解决办法

前几天在使用中兴的MM7接口开发一个彩信的应用,可是在测试的时候,手机收到的文本内容总是一堆乱码,不管怎么修改参数问题都得不到解决,于是就狠狠的琢磨和研究了下关于编码的内容,最终成...

mybabe0312
2015/12/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

三星Galaxy S10可能会配备TOF 3D摄像头

12月3日消息,据Phone Arena报道,三星Galaxy S10可能会配备TOF 3D摄像头。 Phone Arena报道称三星Galaxy S10一共有五颗摄像头(前置双摄+后置三摄),而5G版本的Galaxy S10后置四颗摄像头,...

问题终结者
27分钟前
8
0
fabric增删改查Mac

备份1.3版本,重新下载1.1版本到fabric文件夹 /opt/gopath/src/github.com/hyperledger/fabric -> /opt/gopath/src/github.com/hyperledger/fabric1.3 新建/opt/gopath/src/github.com/hype......

八戒八戒八戒
56分钟前
9
0
盘点愚人节各大网站彩蛋,谁最爱恶搞?

如今的愚人节俨然已是各品牌宣传了一个重要节日,同时,也成为了各大互联网科技企业凑热闹,比拼创意和策划的节日。跟小编一起看看有哪些有趣的策划吧! Google地图变成吃豆人游戏 每年愚人节...

临江仙卜算子
今天
6
0
Java7/8 中的 HashMap 和 ConcurrentHashMap 全解析

本文分析的是源码,所以至少读者要熟悉它们的接口使用,同时,对于并发,读者至少要知道 CAS、ReentrantLock、UNSAFE 操作这几个基本的知识,文中不会对这些知识进行介绍。Java8 用到了红黑树...

java菜分享
今天
6
0
玩手机与做实验

看过这样一个故事:说的是在二十世纪二十年代初的一个深夜,担任英国剑桥大学卡文迪许实验室主任的卢瑟福来实验室检查,发现一位学生还在做实验。卢瑟福就问他:“你上午做什么了?”学生回答...

Bob2100
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部