• java面试的那些事


    跳槽面临的第一个难关那就是面试吧。面试的好坏直接关乎着你年薪的多少。如何顺利完成面试的那些难题,今天我们就从java中复习一下。看看经常面试的知识点,为什么面试这些知识点,

    如果你是初级的或刚毕业的java猿,请看下面:

    1.java三大特性。封装,继承,多态。

    这道题很明显的告诉你,学习java的特点。那么

    封装特点:

    封装减少耦合,

    隐藏信息,实现细节

    继承的特点:

    实现代码的复用,扩展。

    多态特点:

    指向子类的父类引用由于向上转型,只能访问父类中拥有的方法和属性,会丢失子类中存在,而父类中不存真的方法。若子类重写了父类的某些方法,在调用方法的时候,必定会使用子类中定义的方法。(动态连接,动态调用。

    2.使用序列化实现对象的拷贝的好处?

    使用序列化来实现对象的深拷贝。在内存中通过字节流的拷贝是比较容易实现的。把母对象写入到一个字节流中,再从字节流中将其读出来,这样就可以创建一个新的对象了,并且该新对象与母对象之间并不存在引用共享的问题,真正实现对象的深拷贝。

    3.什么时候用抽象类和接口?

    抽象类

    • 抽象类不能被实例化
    • 抽象方法必须由子类重写
    • 子类中的抽象方法不能与父类的抽象方法同名。
    • abstract不能与final并列修饰同一个类
    • abstract 不能与private、static、final或native并列修饰同一个方法。

    接口

    接口是用来建立类与类之间的协议,它所提供的只是一种形式,而没有具体的实现

    • Interface所有方法自动生命为public,当然你可以显示的声明为protected、private,编译会出错!
    • 接口中德成员变量会自动变为为public static final。可以通过类命名直接访问:ImplementClass.name。
    • 实现接口的非抽象类必须要实现该接口的所有方法。抽象类可以不用实现。

    抽象类和接口的区别

      • 语法层次
      • 设计层次 
        • 抽象层次不同。抽象类是对类进行抽象,接口是对行为的抽象。
        • 跨域不同。抽象类所跨域的是具有相似特点的类,而接口却可以跨域不同的类。我们知道抽象类是从子类中发现公共部分,然后泛化成抽象类,子类继承该父类即可,但是接口不同。实现它的子类可以不存在任何关系,共同之处。is-a和like-a
        • 设计层次不同。抽象类是自底向上抽象而来的,接口是自顶向下设计出来的。

    4.为什么用内部类?

    每个内部类都能独立继承一个(接口)实现,无论外围类是否已经继承了某个接口的实现,对于内部类没有影响。 
    接口只是解决了部分问题,而内部类使得多重继承的解决方案变得更加完整。

      • 内部类可以用于多个实例,每个实例都有自己的状态信息,并且与其他外围对象的信息相互独立。
      • 在单个外围类中,可以让多个内部类以不同的方式实现同一接口,或者继承同一个类。
      • 创建内部类对象的时刻并不依赖于外围类对象的创建。
      • 内部类并没有令人迷惑的“is-a”关系,他就是一个独立的实体。
        • 成员内部类

          • 成员内部类中不能存在任何static的变量和方法
          • 成员内部类是依附于外围类的,所以只有先创建了外围类才能够创建内部类。
          • 匿名内部类

            • 匿名内部类是没有访问修饰符
            • 匿名内部类是没有构造方法的。因为它连名字都没有何来构造方法。
            • 形参必须是final修饰的。
            • 使用匿名内部类我们必须要继承一个父类或者实现一个接口,当然也仅能只继承一个父类或者实现一个接口。同时它也是没有class关键字,这是因为匿名内部类是直接使用new来生成一个对象的引用。当然这个引用是隐式的。

              • 匿名内部类注意事项 
                • 必须只能继承一个类或实现一个接口
                • 不能定义构造函数
                • 不能存在static变量和方法
                • 属于局部内部类
                • 不能抽象,必须实现所有抽象方法。
              • 使用的形参为何为final 
                当所在的方法的形参需要被内部类里面使用时,该形参必须为final。
  • 相关阅读:
    AIBigKaldi(十三)| Kaldi的三音子模型训练(下)(源码解析)
    AIBigKaldi(十二)| Kaldi的三音子模型训练(中)(源码解析)
    AIBigKaldi(十一)| Kaldi的三音子模型训练(上)(源码解析)
    AIBigKaldi(十)| Kaldi的thchs30实例(源码解析)
    AIBigKaldi(九)| Kaldi的解码搜索(源码解析)
    AIBigKaldi(八)| Kaldi的解码图构造(下)(源码解析)
    AIBigKaldi(七)| Kaldi的解码图构造(上)(源码解析)
    AIBigKaldi(六)| Kaldi的单音子模型训练(下)(源码解析)
    AIBigKaldi(五)| Kaldi的单音子模型训练(上)(源码解析)
    理解 Linux 的硬链接与软链接
  • 原文地址:https://www.cnblogs.com/huojg-21442/p/7380745.html
Copyright © 2020-2023  润新知