1 你认为 Java 的优势是什么?
约 445 个字 预计阅读时间 1 分钟
这种笼统的问题如果对某些知识点没有深入、系统地认识绝对会蒙!
所以为什么经常碰到面试官问你一些空、大的问题?其实就是考察你是否有形成体系的理解。
回到问题本身。我觉得可以从跨平台、垃圾回收、生态三个方面来阐述。
跨平台
首先 Java 是跨平台的,不同平台执行的机器码是不一样的,而 Java 因为加了一层中间层 JVM ,所以可以做到一次编写多平台运行,即 「Write once,Run anywhere」。
编译执行过程是先把 Java 源代码编译成字节码,字节码再由 JVM 解释或 JIT 编译执行,而因为 JIT 编译时需要预热的,所以还提供了 AOT(Ahead-of-Time Compilation),可以直接把字节码转成机器码,来让程序重启之后能迅速拉满战斗力。
(解释执行比编译执行效率差,你想想每次给你英语让你翻译阅读,还是直接给你看中文,哪个快?)
垃圾回收
Java 还提供垃圾自动回收功能,虽说手动管理内存意味着自由、精细化地掌控,但是很容易出错。
在内存较充裕的当下,将内存的管理交给 GC 来做,减轻了程序员编程的负担,提升了开发效率,更加划算!
生态
现在 Java 生态圈太全了,丰富的第三方类库、网上全面的资料、企业级框架、各种中间件等等,总之你要的都有。
基本上这样答差不多了,之后等着面试官延伸。
当然这种开放性问题没有固定答案,我的回答仅供参考。