java.lang.Integer.valueOf(int)方法默认情况下如果参数在-128到127之间,则返回缓存中的对象,否则返回new Integer(int)。
缓存中的对象是JVM第一次使用valueOf方法时初始化的。
可以设置系统属性 java.lang.Integer.IntegerCache.high 修改缓冲区上限,默认为127。参数内容应为大于127的十进制数形式的字符串,否则将被忽略。取值范围为127-Long.MAX_VALUE,但是用时将强转为int。
当系统中大量使用Integer时,增大缓存上限可以节省小量内存。
缓冲区上限将影响某些业务:
Integer i1 = 127;
Integer i2 = 127;
if (i1 == i2)
System.out.println(true);
else
System.out.println(false);
i1 = 128;
i2 = 128;
if (i1 == i2)
System.out.println(true);
else
System.out.println(false);
以上代码默认情况下将输出:
true
false
当修改缓冲上限大于128时将变为:
true
true
分享到:
相关推荐
在Java编程中,缓冲区读者(BufferedReader)和缓冲区写者(BufferedWriter)是处理输入输出流的重要工具,它们提高了I/O操作的效率。这些类位于java.io包中,是字符流处理的一部分,主要用于文本数据的读写。本篇将深入...
1. **基础类库**:包括`java.lang`包,其中定义了所有Java程序都默认导入的基本类,如`Object`、`String`、`Integer`等。这些类为程序提供基本的数据类型封装、异常处理和系统级功能。 2. **集合框架**:Java API ...
例如,`ByteBuffer.wrap(byte[])`可以创建一个缓冲区,然后使用`get()`和`put()`方法读写整数。 6. **HickeyTest.java**: 这个文件名可能是包含示例代码的Java源文件,展示了上述概念的实际应用。通常,这样的文件...
1. **基础类库**:如`java.lang`包,包含了所有Java程序的基础类,如`Object`、`String`、`Integer`等基本类型包装类,以及异常处理机制。 2. **集合框架**:`java.util`包下的`List`、`Set`、`Map`接口及其实现,...
* 当创建一个字符串时,Java 会在字符串缓冲池中查找是否有相同的字符串常量,如果存在直接返回其引用 * 使用 intern() 方法可以将字符串添加到缓冲池中 * 字符串缓冲池可以减少内存的使用,但是也可能会导致内存...
1. **基础类和接口**:Java RT包中包含了许多基础类,如`Object`、`String`、`Integer`、`ClassLoader`等。`Object`类是所有Java类的父类,定义了对象的基本行为;`String`类用于表示不可变的字符序列;`Integer`是...
- Java的I/O流提供了处理输入输出的强大工具,包括字节流和字符流,以及缓冲流、过滤流等高级概念。 10. **反射机制**: - 反射允许程序在运行时检查类的信息(如方法、属性等),并动态调用方法或访问属性。 ...
* Buffer():缓冲器,用于表示 Java 缓冲器类型。 * Reverse():颠倒,用于表示 Java 字符串的颠倒操作。 * Delete():删除,用于表示 Java 字符串的删除操作。 * Append():添加,用于表示 Java 字符串的添加操作。...
1. `java.lang`:这是所有Java程序的基础,包含了一些基本类型(如`String`、`Integer`)和对象(如`Object`),以及系统运行时的重要类(如`System`、`ClassLoader`)。 2. `java.util`:这个包提供了许多通用的...
Java常用包 Java语言提供了多种常用包,包括java.lang、String、StringBuffer、Math、Object、Class、Constructor、Method、Field、Date、Calendar、SimpleDateFormat、File等。这些包中的类和方法为Java开发提供了...
1. `java.lang`包:这是所有Java程序的基础,包含了如`Object`、`String`、`Integer`等基本类型和`System`、`Math`等常用工具类。 2. `java.util`包:提供了集合框架,包括`ArrayList`、`LinkedList`、`HashSet`、`...
12. Integer 缓冲池:Integer 有个缓冲池,-128~127 这个范围内的直接从缓冲池取出,超过这个范围会在堆中生成新对象。 13. 逻辑运算符:& 是与操作,| 是或操作,^ 是异或操作。 14. 反射机制:反射机制是在运行...
- **核心类库**:如`java.lang`中的`String`、`Integer`等,这些都是Java编程的基础,通过源码可以学习它们的实现原理,例如字符串的不可变性是如何实现的。 - **集合框架**:`java.util`包下的ArrayList、HashMap...
1. **基础类库**:这是Java API的基础,包括String、Integer、Date等基本类型和对象的封装类,以及Math、System等通用工具类。 2. **集合框架**:Java集合框架包括List、Set、Map等接口,以及ArrayList、LinkedList...
例如,ArrayList中的T就是泛型,可以替换为任何具体的类型,如String或Integer。 2. **第11章:Java常用类库** Java的标准类库提供了大量的内置类和接口,方便开发者处理各种任务,如日期时间、数学计算、文件...
1. **java.lang**:这是所有Java程序的基础,包含了一些基本类型如`String`、`Integer`、`Character`,以及基础类`Object`、异常处理类`Exception`和系统相关类`System`等。 2. **java.util**:提供了各种实用工具...
2. **java.lang**: 这个包是所有Java程序的基础,包含了基本类型包装类(如Integer、Double等)以及运行时异常类。`System`类提供了一些系统级别的服务,如获取当前时间、标准输入/输出流操作等;`Math`类则提供了...
这个包包含了所有JAVA程序都默认导入的基本类,比如`Object`、`String`、`Integer`等,以及系统相关的类如`System`和`Runtime`,这些都是编写JAVA程序的基石。 其次,书中会涉及`java.io`包,这是JAVA进行输入输出...