java缓冲池
Posted 盖丽男
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java缓冲池相关的知识,希望对你有一定的参考价值。
类型
java的缓冲池分为两种,数值型的和字符串类型的。缓冲池空间位于垃圾收集器管理的内存之外。 这是分配本地堆外内存的一种方法。
字符串缓冲池
String被声明为final,因此它不可被继承。在java8中,String内部使用char数组存数据。
数值型缓冲池
Boolean,缓存了 true/false 对应实例,确切说,只会返回两个常量实例Boolean.TRUE/FALSE。
Short,同样是缓存了 -128 到 127 之间的数值。
Byte,数值有限,所以全部都被缓存。
Character,缓存范围’\\u0000’ 到 ‘\\u007F’。
Integer,-128 到 127 之间的数值。
Long,-128 到 127 之间的数值。
举例
Integer的IntegerCache
当符合i >= IntegerCache.low && i <= IntegerCache.high时返回IntegerCache.cache[i + (-IntegerCache.low)]
当不符合时返回new Integer(i)。
根据IntegerCache的源码,得到low为-128,high为127,即Integer的缓冲池大小为1个字节。
则当Integer直接赋值时,值-128到127之间时,创建的对象存放在常量池中,直接从常量池中获取数据。
参考
以上是关于java缓冲池的主要内容,如果未能解决你的问题,请参考以下文章
java 创建string对象机制 字符串缓冲池 字符串拼接机制
java 创建string对象机制 字符串缓冲池 字符串拼接机制 字符串中intern()方法