question for write

Object类有什么方法呢?

1. getClass()   2. hashCode()   3. equals()   4. toString()   5. clone()   6. wait()   7. notify()   8. notifyAll()   9. finalize()

内存泄漏的例子:

Vector v = new Vector(10);
for (int i = 1; i<100; i++)
{Object o = new Object();
v.add(o);
o = null;
}
什么是内存泄漏啊?就是这个对象你不用了,但是GC不会对他进行回收。这才是内存泄漏。上面100个obj无用了。但是Vector中有他的引用。所以GC不会回收。造成内存泄漏。

public static void main(String[] args)
{
    Set<Student> set = new HashSet<Student>();
    Student s1 = new Student("Jack");
    Student s2 = new Student("Mary");
    Student s3 = new Student("Eason");
    set.add(s1);
    set.add(s2);
    set.add(s3);
    System.out.println(set.size());//3
    s2.setName("Jackson"); //修改属性,此时s2元素对应的hashcode值发生改变
    set.remove(s2);        // remove不掉,造成内存泄漏
    set.add(s2);           // 添加成功
    System.out.println(set.size());//4

}


答案是:22,34,17

super5,执行构造函数的时候的this表示是谁的对象呢?其实是如果执行构造函数体的时候,对象已经new出来了。构造方法没执行完,对象也已经new出来了。this表示。所以你看super(5)中的this表示的是B子类的对象。所以执行B类的setValue方法。

在getValue中,如果在try{}中返回的值,在finally中给你改了。那么返回的是更改前的值。

public   A  (int v){
     setValue(v)

这里面的setVaule方法,其实前面有一个this。this表示谁呢?表示方法的调用者对象。是B类的对象。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值