瞎看系列

知识点一:可变参数(简化代码书写)

J2SE 1.5中提供了Varargs机制,允许直接定义能和多个实参相匹配的形参

 技术的实现底层; 可变参数转换成数组参数 

Public static int max(int min , int ... a){}; 
max(int min,int[] a)   -->     max(2,new > int[]{2,4});复制代码


知识点二:Overload(重载)与Override(重写) 

  • Overload(重载)
  1. 使用规则:方法名相同,参数列表不同
  2. 主要应用场景父子类,同类方法的重载
  • Override(重写)

注意:

  1.子类要比父类访问权限大

  2.子类不能抛出比父类更多的异常 且定义final不能被重写

  3..主要应用场景:接口,父子类中

相同点:都是实现多态的方式编译时多态运行时多态


知识点三:单例模式

概念:一个类只能有一个实例,共用一个实例(比方你只有一个爸爸,兄弟姐妹共用老爸)

1.饿汉式

private static Singleton s=new Singleton;
public static Singleton getInstance(){
    return s;
}复制代码

  优点:类加载实例化,避免线程同步问题

  缺点:如没使用该对象,造成内存浪费

2.懒汉式

private static Singleton s;
public static Singleton getInstance(){
    if(s==null){
        s=new Singleton();
        return s;
    }	
}复制代码

  优点:没有造成内存浪费

  缺点:当运行多线程时,则可以产生多个实例不可用【同步锁】


知识点四:equals与hashCode

  Equals用于判断当前对象和传入参数是否相同

      Object类默认实现是比较地址值(==类似)

     一般用equals都重写了该方法,底层代码会比较其数字HashCode

  哈希值(int值)由对象一般不变的值映射出来的,用于快速区分对象(解释对象重写equals方式时,为何要重写hashCode方法。提高对比效率)比如HashSet插入元素 运用就是hashCode方法获取散列码,然后比较插入(而不是逐一比较)

1、如果两个对象相等,那么它们的hashCode()值一定要相同;

2、如果两个对象hashCode()相等,它们并不一定相等。


转载于:https://juejin.im/post/5cb563f751882532c0166cf5

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值