java编译器对字符串+运算的优化导致的有趣现象
以前写了个字符串是否来自池的文章
只说明了有的字符串来自池,有的是在堆上新建,但是没有深究,只从现象去推测了,今天我们来看看究竟发生了什么
下图(源码和字节码)很清晰地看到s3实际上是新建了一个StringBuilder,然后append了def,然后再toString的,难怪会不同了
再来看下图,s1和s2定义为final之后,字节码简洁了很多,s3的值明确为abcdef且来自常量池
java编译器对字符串+运算的优化导致的有趣现象相关推荐
- 灵魂拷问:用移位来代替除法运算真的效率高吗?Java 编译器到底有没有做除法优化?
目录 引入 C++ 编译器对除法的优化 Java 编译器对除法的优化 移位运算对应的字节码 除法操作对应的字节码 查看及分析 JIT 即时编译结果 1.手动编译 OpenJDK 2.编译 hsdis- ...
- Java编译器优化与运行期优化技术浅析
2019独角兽企业重金招聘Python工程师标准>>> 一.java编译器优化 1. JVM的编译器可以分为三个编译器: 1) 前端编译器:把.java转变为.class ...
- Java并发学习二:编译优化带来的有序性问题导致的并发Bug
Java并发学习系列文章:Java并发学习-博客专栏 今天在学习极客时间专栏:<Java并发编程实战> 第一讲01 | 可见性.原子性和有序性问题:并发编程Bug的源头中提到: 编译器及解 ...
- java类用三木运算编译不生效_Java 中的三目运算符使用不当所导致的问题
Java 中的三目运算符使用不当所导致的问题 写在前面: 1.三目运算符是我们经常在代码中使用的,a= (b==null?0:1); 这样一行代 码可以代替一个 if-else,可以使代码变得清爽易读 ...
- [转载] Java中的字符串处理
参考链接: Java中的StringBuffer appendCodePoint()方法以及示例 JDK8在线Api中文手册 JDK8在线Api英文手册 Java中的字符串处理 1.1 String类 ...
- java split()方法_Java编程性能优化一些事儿
点击上方 "程序员小乐"关注, 星标或置顶一起成长 每天凌晨00点00分, 第一时间与你相约 每日英文 Smile and stop complaining about the t ...
- [转载] java常量池-字符串常量池、class常量池和运行时常量池
参考链接: 如何在Java中初始化和比较字符串 原文链接:http://tangxman.github.io/2015/07/27/the-difference-of-java-string-pool ...
- java 强制转换 效率_Java 性能优化:35 个小细节,让你提升 Java 代码的运行效率...
代码优化细节 1.尽量指定类.方法的final修饰符 2.尽量重用对象 3.尽可能使用局部变量 4.及时关闭流 5.尽量减少对变量的重复计算 6.尽量采用懒加载的策略,即在需要的时候才创建 7.慎用异 ...
- 一起进阶学习JAVA:MySQL海量数据存储与优化
一起进阶学习JAVA:MySQL海量数据存储与优化 第一部分 分库分表实战及中间件 1.1 背景介绍 1.1.1 背景描述 刚开始我们的系统只用了 单机数据库 随着用户的不断增多,考虑到系统的高可用和 ...
最新文章
- 缓存用不好,Bug改到老
- 集成学习模型(xgboost、lightgbm、catboost)进行回归预测构建实战:异常数据处理、缺失值处理、数据重采样resample、独热编码、预测特征检查、特征可视化、预测结构可视化、模型
- 钱包一般链接那个节点_Zcash屏蔽地址漏洞或揭示全节点IP地址(附解决方案)...
- codevs 1200:同余方程
- Luogu P3455 [POI2007]ZAP-Queries
- 技巧:Excel用得好,天天没烦恼
- 系统分析员、系统架构师、项目经理的区别(转载)
- python pass关键字神奇吗
- Android 多层视差头部背景的实现
- linux查看yum源信息,Linux系统配置163或sohu yum源
- 镭神智能C32 ROS Rviz使用教程
- linux vi 字符串替换
- Ae:时间轴面板(图层控制区)
- 计算机管理恢复分区,如何在Windows10中删除磁盘管理器中的恢复分区
- 木马克星――Trojan Ender正式国际版 2.0.0
- R语言ROC分析、ROC曲线可视化及最佳阈值计算(threshold、cutoff)
- 可解释深度学习:从感受野到深度学习的三大基本任务:图像分类,语义分割,目标检测,让你真正理解深度学习
- 解决vim与外界的复制粘贴(不用安装插件)
- 设计模式是什么鬼3(原型)
- P1498 南蛮图腾---洛谷(分冶)