继承(三)

关于hashCode

hashCode的产生原则:

hashCode的改进过程:

更优的做法:

equals方法与hashCode的联系:

数组的hashCode:

 

toString方法

对象调用这个的话,返回表示对象值的字符串

 数组的toString方法:

 String的equal

hashCode乘以的数字是啥意思

两个对象 == 的时候调用equals吗

Objects.hashCode(a)的时候涉及多态了么

 

ArrayList操作:

import java.io.Console;
import java.time.*;
import java.util.*;

class Employee{
    private String name;
    private int age;
    public Employee(String a_name, int a_age) {
        name = a_name;
        age = a_age;
    }    
}

public class Test{
    public static void main(String[] args) {
        
        ArrayList<Employee> staff = new ArrayList<>(100);
        // staff.ensureCapacity(100); 作用与上一句相同
        
        // 获取存入元素的数量
        int a = staff.size();
        
        Employee ab = new Employee("ab", 1);
        Employee bc = new Employee("bc", 2);
        
        // add 也可用于插入元素
        staff.add(ab);
        staff.set(0, bc);
        Employee gt = staff.get(0);
        
        staff.remove(0);
        // to array
        Employee[] as = new Employee[staff.size()];
        staff.toArray(as);
        
        // 确定 staff 的大小不会变了,将存储空间的大小调整为当前元素所需要的存储空间数目,gc回收多余的存储空间
        // 在这之后再添加新元素的话需要花时间再次移动存储块,开销较大
        staff.trimToSize();
    }
}

 

ArrayList和数组指定大小的不同:

 ArrayLIst与泛型???

 

对象包装器

不可变的,一旦构造了包装器,就不允许更改包装在其中的值

对象包装器类是final的,不允许派生子类

关于操作效率的问题:

什么是自动装箱?

 

自动拆箱:

 

关于包装对象的相等性不确定的问题:

 

顺序和执行问题:

 

可以将某些基本方法放置在包装器中,比如静态方法:
int x = Integer.parseInt(s);

 

参数数量可变:

 

posted @ 2018-11-30 19:21  geeklove  阅读(87)  评论(0编辑  收藏  举报