- Java字符串常量池在jdk1.7之前放在永久代、jdk1.7时放在堆中、jdk1.8及之后放在元空间。Java字符串常量池中的字符串是在编译时确定的,无法在运行时修改或添加新的字符串字面量。如果在运行时需要动态地创建字符串,可以使用new关键字来创建一个新的字符串对象,该对象会被存储在堆内存中。这样的字符串对象不会被添加到字符串常量池中,而是独立于常量池存在,除非显式调用intern方法。
- java.util.Collection#parallelStream的最大并发度是由ForkJoinPool决定的,而ForkJoinPool在Java8环境下最大并发度默认是电脑cpu核数,ForkJoinPool最大并发度可以通过一下代码查看:
int parallelism= ForkJoinPool.getCommonPoolParallelism();可以通过设置系统环境来修改:System.setProperty("java.util.concurrent.ForkJoinPool.common.parallelism", "10") - Integer i = 100;和Integer i = Integer.valueOf(100)都是直接返回java.lang.Integer.IntegerCache#cache数组的元素,仅限-128至127