一. Java基础
1.
面向过程是在解决问题的过程中,将问题分为多个步骤,每个步骤用函数实现,依次调用各个函数就行了。 面向对象是也是解决问题时将问题分为多个步骤,但是它是把每个过程抽象出来形成对象,通过不同对象的调用组合解决问题。
2.
封装就是将现实中的客观事物抽象成java类,类里面有属性和方法。
继承就是子类继承父类的属性和方法,为了方便复用。
多态就是子类重写了父类的某个方法,这个方法在父类和子类有不同的实现。
3.
重载就是方法名相同但是参数不同,重写就是子类重写父类的方法,方法名和参数都相同。
4.
多继承的话会导致菱形继承的问题,不同的父类有相同名字的属性或方法时会冲突,但是接口可以多个是因为接口只有方法,冲突的话可以重写方法解决。
5.
单一职责原则、开放封闭原则、里氏替换原则、依赖倒置原则、接口隔离原则
6.
c++是编译型语言,速度快效率高,支持多继承
java是解释型语言,可以跨平台,但是速度慢,有内存管理,只有值传递
7.
java属于半编译半解释,先通过javac将java源代码编译成字节码,然后jvm解释运行,在解释过程中发热点代码会被直接 JIT 即时编译成机器码直接执行。
8.
AOT编译就是提前编译,它在编译期间将字节码转换为机器码,不支持反射。
9.
JIT会把“热点代码”翻译成本地机器相关的机器码,然后再把翻译后的机器码缓存起来。
“热点代码”是运行时执行的特别频繁的代码。
10.
Java在编译期生成标准字节码,运行期由各平台专属的JVM翻译成机器码。一次编译,到处运行。