1.面向对象和面向过程的区别

  • 面向过程 :面向过程性能比面向对象高。 因为类调⽤时需要实例化,开销⽐较⼤,⽐较消耗资源,所以当性能是最重要的考量因素的时候,⽐如单⽚机、嵌⼊式开发、Linux/Unix 等
    ⼀般采⽤⾯向过程开发。但是,面向过程没有面向对象易维护、易复用、易扩展
  • 面向对象 :面向对象易维护、易复用、易扩展。 因为⾯向对象有封装、继承、多态性的特性,所以可以设计出低耦合的系统,使系统更加灵活、更加易于维护。但是,面向对象性能⽐面向过程低

参⻅ issue : 面向过程 :面向过程性能⽐面向对象⾼??

这个并不是根本原因,面向过程也需要分配内存,计算内存偏移量,Java 性能差的主要原
因并不是因为它是面向对象语言,而是 Java 是半编译语言,最终的执行代码并不是可以直
接被 CPU 执行的二进制机械码。
而面向过程语言大多都是直接编译成机械码在电脑上执行,并且其它⼀些面向过程的脚本语
言性能也并不⼀定比 Java 好。

2.Java语言有哪些特点?

  1. 简单易学;
  2. ⾯向对象(封装,继承,多态);
  3. 平台⽆关性( Java 虚拟机实现平台⽆关性);
  4. 可靠性;
  5. 安全性;
  6. ⽀持多线程(Java 语⾔提供了多线程⽀持,C++11 开始(2011 年的时候),C++就引⼊了多线程库,在windows、linux、macos 都可以使⽤ std::thread 和 std::async 来创建线程。);
  7. ⽀持⽹络编程并且很⽅便( Java 语⾔诞⽣本身就是为简化⽹络编程设计的,因此 Java 语⾔不仅⽀持⽹络编程⽽且很⽅便);
  8. 编译与解释并存;

3.关于JVM、JDK和JRE最详细通俗的解答

1.JVM

Java虚拟机(JVM)是运⾏ Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),⽬的是使⽤相同的字节码,它们都会给出相同的结果。
什么是字节码?采用字节码的好处是什么?