1.创建的对象存放在什么地方?
对方存放在堆中。 类的信息和静态变量存放在方法区中。
2.java的内存模型有那几块?
堆(对象)方法区(类信息、常量、静态变量) 本地方法栈(native方法) 虚拟机栈(方法操作入栈出栈操作 线程私有) 程序计数器(指令执行的地址)
3.
Integer i=1;
Integer i1=1;
Integer i2=256;
Integer i3=256;
System.out.println(i==i1);
System.out.println(i2==i3);
Long 或者是Integer 的范围都是-128-127区间相同,其他不同,提高内存的利用率。
实现的源码
public static Long valueOf(long l) {
final int offset = 128;
if (l >= -128 && l <= 127) { // will cache
return LongCache.cache[(int)l + offset];
}
return new Long(l);
私有的类部类
static final Long cache[] = new Long[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length; i++)
cache[i] = new Long(i - 128);
}
String 类的一些特性
String是最终类,不能被继承,是线程安全类,对他的 操作的话都会产生一个新的类对象
String 对象的比较 如果比较的是是否是同一个对象(同一个地址引用)则需要使用==比较
如果判断两个对象的值是否相同的话 使用函数equal.
String 定义的最大的长度是多少?
2的31次方-1 整数的 最大在值