你认为Java的优势是什么?
我觉得可以从跨平台、垃圾回收、生态、面向对象四个方面来阐述。
跨平台
首先 Java 是跨平台的,不同平台执行的机器码是不一样的,而 Java 因为加了一层中间层 JVM ,所以可以做到一次编写多平台(如 Windows、Linux、macOS)运行,即 “Write once,Run anywhere”。
编译执行过程是先把 Java 源代码编译成字节码,字节码再由 JVM 解释或 JIT 编译执行,而因为 JIT 编译时需要预热的,所以还提供了 AOT(Ahead-of-Time Compilation),可以直接把字节码转成机器码,来让程序重启之后能迅速拉满战斗力。
(解释执行比编译执行效率差,你想想每次给你英语让你翻译阅读,还是直接给你看中文,那个快?)
垃圾回收
Java 还提供垃圾自动回收功能,虽说手动管理内存意味着自由、精细化掌控,但是很容易出错。
在内存较充裕的当下,将内存的管理交给 GC 来做,减轻了程序员的负担,提升了开发效率,更加划算!
生态
现在 Java 生态圈太全了,丰富的第三方类库、网上全面的资料、企业级框架、各种中间件等等。
面向对象
Java 是一种严格的面向对象编程语言,具有清晰的类、对象、继承、接口等概念,支持封装、继承、多态等 OOP 特性,有助于代码的可维护性和扩展性。