String
ApacheCrazyFan
巨人的肩膀
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
占小狼-Java进阶之路-浅谈Java String内幕(二)
浅谈Java String内幕(2)String.intern()原理String.intern()是一个Native方法,底层调用C++的 StringTable::intern 方法,源码注释:当调用 intern 方法时,如果常量池中已经该字符串,则返回池中的字符串;否则将此字符串添加到常量池中,并返回字符串的引用。package com.ctrip.ttd.原创 2016-12-23 19:44:40 · 731 阅读 · 0 评论 -
占小狼-Java进阶之路-浅谈Java String内幕(一)
浅谈Java String内幕:前言String字符串在Java应用中使用非常频繁,只有理解了它在虚拟机中的实现机制,才能写出健壮的应用,本文使用的JDK版本为1.8.0_3。常量池Java代码被编译成class文件时,会生成一个常量池(Constant pool)的数据结构,用以保存字面常量和符号引用(类名、方法名、接口名和字段名等)。package com.原创 2016-12-23 19:27:09 · 790 阅读 · 0 评论 -
占小狼-Java进阶之路-浅谈StringBuffer
浅谈StringBuilder连接符号 "+" 本质在 浅谈Java String内幕(1) 中,字符串变量(非final修饰)通过 "+" 进行拼接,在编译过程中会转化为StringBuilder对象的append操作,注意是编译过程,而不是在JVM中。public class StringTest { public static void main(Stri原创 2016-12-23 19:56:20 · 1196 阅读 · 0 评论 -
江南白衣之-Java进阶-StringBuffer在高性能场景下的正确用法
StringBuilder在高性能场景下的正确用法。关于StringBuilder,一般同学只简单记住了,字符串拼接要用StringBuilder,不要用+,也不要用StringBuffer,然后性能就是最好的了,真的吗吗吗吗?还有些同学,还听过三句似是而非的经验:1. Java编译优化后+和StringBuilder的效果一样;2. StringBuilder原创 2016-12-23 20:21:29 · 1472 阅读 · 0 评论 -
占小狼之-Java进阶之路-深入分析String.intern和String常量的实现原理
深入分析String.intern和String常量的实现原理背景字符串类型在实际应用场景中使用非常频繁,如果为每个字符串常量都生成一个对应的String对象,明显会造成内存的浪费,针对这一问题,虚拟机实现一个字符串常量池的概念,提供了如下实现:1、同一个字符串常量,在常量池只有一份副本;2、通过双引号声明的字符串,直接保存在常量池中;3、如果是String对象,可原创 2016-12-25 23:25:46 · 1102 阅读 · 0 评论 -
JVM-由常量池 运行时常量池 String intern方法想到的(三)之String内存模型
由常量池 运行时常量池 String intern方法想到的(三)之String内存模型在这篇博文中描述的,所有在运行时常量池中出现的字符串其实都是一个String对象。因为,java是一种强类型的语言,要求每一种变量都要有具体的数据类型。但是基本数据类型存放的不是对象(String不属于基本数据类型)。基本数据类型的常量在运行时常量池中存放的是字面值。貌似JVM会自动将boolean、byt转载 2016-12-26 19:58:05 · 1501 阅读 · 0 评论
分享