从算法转开发的第四天(Java入门篇)-创新互联

第四天,进度 page176-195

成都创新互联服务项目包括缙云网站建设、缙云网站制作、缙云网页制作以及缙云网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,缙云网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到缙云省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!记录

用Employee.equals方法判断相等性时,右边应是引用了Employee对象的Employee类或超类,这种情况才能算作是同类(都为Employee)的判断相等性

写一个类时如果重载了equals方法就必须重载hashCode方法

ArrayList目前使用的话作用就相当于C++中的vector,很熟悉啊!!

ArrayList.ensureCapacity方法只是规划出一片内存空间,实际长度并不是规划的空间长度,而是实际使用了的空间长度,也就是被add了的对象的个数,在确定了不会再add对象之后,还可以使用trimToSize方法削减多余规划出的空间

ArrayList下标也是从0开始

ArrayList.set方法不能新添新的对象,只能修改原有空间内的对象,只有数组列表的大小大于i时才能调用list.set(i,x)

可以把ArrayList和数组相结合,实现一个能随机访问的动态数组,代码如下:

var list = new ArrayList< Class >();
while(...){
Class x = new Class(...);
list.add(x);
}
var arr = new Class[list.size()];
list.toArray(arr);     //toArray会将数组元素拷贝到一个数组中

和C++一样,ArrayList插入删除效率比较低,链表更适合多次插入删除操作

instanceof和getClass()用于比较类的引用对象时的不同

若一个对象引用了该类的一个子类,(该对象 instanceof 该子类)的值为false,该对象.getClass()返回的值为子类

为什么Objects.hashCode(name)优于name.hashCode()?

实际上,Objects.hashCode也是由Obbject.hashCode实现的,实现代码如下 

​
public static int hashCode(Object o) {
    return o != null ? o.hashCode() : 0;
}    

​
关于super的用法

super有两种用法,一种是重载超类方法时,使用super. +方法名来引用超类的方法;另一种是写构造器时需要直接引用超类的构造器,使用super(参数,参数...)来调用超类的构造器,如

​
public Manager(String name, double Salary, int year, int month, int day) {
    //public Employee(String name, double Salary, int year, int month, int day)
    super(name, Salary, year, month, day);
    bonus = 0;
}

​
包里面写另一个包时,引用了外面的包能直接调用里面的包吗

经过实践,不能直接调用,外面的包和里面的包需要单独引入

写一个名为ArrayList类时引用数组列表ArrayList报错——没有类型形参

引用的ArrayList被认定为是我们自己写的ArrayList类,当然会报错,所以我们的类名不应该为ArrayList

关于装箱和拆箱的理解

把一个int的整数包装成一个integer对象叫做装箱,把一个integer对象赋给一个int的整数叫做拆箱

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


分享标题:从算法转开发的第四天(Java入门篇)-创新互联
文章网址:http://ybzwz.com/article/dcegcd.html