堆中包含方法区,方法区中包含class文件,static变量及方法,字符串常量池 ...
分类:
编程语言 时间:
2021-05-24 06:48:43
阅读次数:
0
new String("a"); 这个方法会创建两个对象 一个String对象 一个"a"常量放到字符串常量池中 new String("a") + new String("b") 这个方法会创建相当于new String("ab")当时不会创建"ab"到字符串常量池 在1.7之前 intern方法 ...
分类:
编程语言 时间:
2021-05-24 06:06:52
阅读次数:
0
StringBuffer的使用 字符串创建之后是不能改变的,使用加号进行字符串拼接,不是在原来字符串的基础上拼接,是复制原来字符串和新的字符串进行拼接,组成一个新的字符串,这样字符串常量池就会多出很多字符串。 使用StringBuffer进行拼接,底层就是调用数组进行拼接的。在原来字符串上拼接,不会 ...
分类:
其他好文 时间:
2021-04-22 15:51:54
阅读次数:
0
==和equals()的区别 一、== ==作比较,如果是值类型,则是比较值是否相等;如果是引用类型的话,则是判断两个对象的内存地址是否相同。 注:对几个基本数据类型来说,是作为常量在方法区中的常量池里面以HashSet策略存储起来的。在常量池中,一个常量对应一个地址,因此不管是多少个变量的值相同( ...
分类:
其他好文 时间:
2021-03-16 11:42:06
阅读次数:
0
是什么 字符串常量池是 JVM 中的一个重要结构,用于存储JVM运行时产生的字符串。在JDK7之前在方法区中,存储的是字符串常量。而字符串常量池在 JDK7 开始移入堆中,随之而来的是除了存储字符串常量外,还可以存储字符串引用(因为在堆中,引用堆中的字符串常量很方便,所以可以存储引用)。这使得很多字 ...
分类:
其他好文 时间:
2021-03-05 13:16:48
阅读次数:
0
String、StringBuffer、StringBuilder相关性质和面试题 String基本性质 可以字面量赋值,也可以通过new造对象赋值; String声明为final类型,不可继承,且具有不可变性; String底层用final修饰的value[]数组存储,在jdk8.0之前用char ...
分类:
其他好文 时间:
2021-02-20 12:35:36
阅读次数:
0
Java中将String类定义为由final修饰的(不可改变的),JVM中字符串一般被保存在字符串常量池中,Java会确保一个字符串在常量池中只有一个“复制”,这个字符串常量池在JDK 6.0以前是位于常量池中的,位于永久代;而在JDK 7.0中,JVM将其从永久代拿出来放置于堆中。 public ...
分类:
其他好文 时间:
2021-01-27 13:43:41
阅读次数:
0
1. 数组的赋值 1. 静态 int []a = {2,3,5}; 2. 默认初始化 int[] b=new int [3]; 3. 动态初始化 a[1]=2 a[2]=5 2. 数组的遍历 1. foreach 用于读取不能修改 for(int m:a){ System.Out.println ( ...
分类:
编程语言 时间:
2021-01-14 11:05:36
阅读次数:
0
1、String abc=null,声明了一个字符串对象的空引用,在栈内创建了栈帧或句柄,未在堆内存内分配空间; 2、String abc="",声明了一个空字符串对象,初始化栈内分配了内存,指向常量池空字符串地址; 3、String abc,声明了字符串对象,但为分配内存。作为成员变量时程序运行会 ...
分类:
其他好文 时间:
2021-01-02 10:55:34
阅读次数:
0
final、finalize()、finally 性质不同 final为关键字; finalize()为方法; finally为区块标志,用于try语句中; 作用 final为用于标识常量的关键字,final标识的关键字存储在常量池中(在这里final常量的具体用法将在下面进行介绍); finali ...
分类:
其他好文 时间:
2020-12-31 12:31:19
阅读次数:
0