Java的优势和劣势是什么?
- Java的优势:
-
- 跨平台,JVM实现一次编写到处运行
- 面向对象
- 强大的生态系统
- 内存管理,垃圾回收
- 多线程支持,内置线程机制,方便编程
- 安全模型,如沙箱机制
- 版本更新注重向后兼容
- Java的劣势:
-
- 性能,JVM相比C++这种原生编译语言,还是有一定开销。比如启动时间,微服务场景下就不如GO之类的快。
- 语法繁琐,比起python不够简洁。开发效率上,Java需要更多代码,编译过程也可能拖慢开发节奏。
- 内存消耗,JVM本身占内存
- 面向对象过于严格,有时写简单程序反而更麻烦,虽然Java8引入了函数式编程,但不如其他语言自然。
Java为什么是跨平台的?
跨平台的是Java程序,不是JVM。JVM是用C/C++开发的,不能跨平台,不同平台需安装不同版本的JVM。
我们编写的Java源码,编译后会生成.class字节码文件,JVM(Java虚拟机)负责将字节码文件翻译成机器码并运行。不同平台下,编译生成的字节码是一样的,JVM翻译成的机器码不一样。也就是说,只要在不同平台上安装JVM,就可以运行我们的Java程序。实现“一处编译,到处运行”。