• 面向对象编程、面向过程编程和面向切向编程的区别

    • 面向过程(OPP):是一种以过程为中心的编程思想。是自顶向下顺序执行,逐步求精,其程序结构是按照功能划分为若干个基本模块,而程序流程在写程序的时候就已经决定了。

    • 面向对象(OOP):是一种以事物为中心的编程思想。是把数据以及对数据的操作放在一起,作为一个相互依存的整体,就是所说的对象。

    • 面向切向(AOP):是一种以功能(业务)为中心的编程思想。所面对的是处理过程中的某个步骤或阶段,以获得逻辑过程中各部分之间低耦合性的隔离效果。

      例子:从车站打车回家

      • 面向过程(OPP):汽车发动是一个事件、汽车到家是一个事件,针对这两个事件,形成两个函数,依次调用。
      • 面向对象(OOP):以汽车这个类为对象,这两个事件只是这个类的两个行为。
      • 面向切向(AOP):分别对两个事件进行抽象,然后各自封装实现。通过代理类完成类的创建。最后根据需求进行封装。

      面向对象的特征:抽象、继承、封装、多态

      面向对象的有点:较高的开发效率、代码健壮、可维护性

  • Java 垃圾回收机制 GC

    GC 算法和实现

    垃圾回收机制

    垃圾回收机制-面试

  • object 与泛型的区别

    • Object范围非常广,而T从一开始就会限定这个类型(包括它可以限定类型为Object)
    • Object由于它是所有类的父类,所以会强制类型转换,而T从一开始在编码时(注意是在写代码时)就限定了某种具体类型,所以它不用强制类型转换。

    泛型是什么

    Java不能实现真正的泛型原因

  • Java 的内存模型

    JVM 内存模型

    JVM 模型

  • 添加多线程的方式,Thread 与 Runable 的区别

    添加方式为:继承 Thread 和实现 Runable 接口

    • Thread :Thread其实本身就是实现了接口 Runnable的一个类,因此 Thread中的方法和成员变量要比Runnable多,最典型地就是 Thread有start()方法,但是Runnable接口没有start()方法。
    • Runable:适合多个相同的程序代码的线程去处理同一个资源;可以避免java中的单继承的限制;增加程序的健壮性,代码可以被多个线程共享,代码和数据独立。