学习日记

    xiaoxiao2021-03-25  123

    个人学习日记2017.3.8

    重写与重载

    重写:主要指子类可以继承父类当中的属性和方法,当子类从父类继承的方法不能够满足需求时,可以在子类对该方法进行重写.

    引申一个问题:Constructor能否被重写?

    答案是不能够的.构造器无法被重写,可以被重载.子类并不能继承父类的构造方法,更不能覆盖父类的构造方法.子类想要使用父类的构造方法,必须在子类的构造方法中使用super关键字,并且放在子类构造器的第一行

    再引申一个被final关键字修饰类不可被继承,方法不可被重写,被修饰的变量为常量(利用反射可以修改)

    重载:所谓重载指一个类中可以有多个方法名相同的方法,返回值类型可以相同可以不同,但是参数列表必须不一样,访问权限可以相同可以不同

    自动装箱与拆箱

    public static Integer valueOf(int i) {

    if(i >= -128 && i <= IntegerCache.high)  // 没有设置的话,IngegerCache.high 默认是127 return IntegerCache.cache[i + 128]; else return new Integer(i); } 注意:Integer integer100=null; int int100=integer100; 这两行代码是完全合法的,完全能够通过编译的,但是在运行时,就会抛出空指针异常。其中,integer100为Integer类型的对象, 它当然可以指向null。但在第二行时,就会对integer100进行拆箱,也就是对一个null对象执行intValue()方法,当然会抛出空指针异常。 所以,有拆箱操作时一定要特别注意封装类对象是否为null。

    学的有点杂 感觉没必要把所有的细节东西都写下来.可以写一下重要的比较关键性的东西.比如今天学到的感觉很不错的东西,印象很深刻的 就比如说这一段Integer源码中i的取值范围小于127直接返还原先设置的对象.大于=128则会重新创建对象.不懂对象肯定不会equals(除非重写方法)

    再比如String类中已经默认重写了equals方法还有就是常量池的概念,第一次使用的常量会在常量池.而你new的String对象则会在堆当中

    今天先写到这里了,明天好好整理一下思绪,应该如何写好一篇自己的学习博客

    转载请注明原文地址: https://ju.6miu.com/read-7885.html

    最新回复(0)