java对象的认识(2)

来源:互联网 发布:菜鸟网络期权行权价 编辑:程序博客网 时间:2024/05/29 18:10

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 整数的 最大在值











 


原创粉丝点击