【Java基础面试题002】你认为Java的优势是什么?

回答重点

我觉得可以从跨平台、垃圾回收、生态、面向对象四个方面来阐述

跨平台

首先Java是跨平台的,不同平台执行的机器码是不一样的,而Java因为加了一层中间层JVM,所以可以做到一次编写多平台(如Windows、Linux、macOS)运行,即【Write once,Run anywhere】

编译执行过程是先把Java源代码编译成字节码,字节码再由JVM解释或JIT编译执行,而因为JIT编译时需要预热,所以还提供了AOT(Ahead-of-Time Compilation),可以直接把字节码转成机器码,来让程序重启之后能迅速拉满战斗力

  • Java执行流程
源代码 (.java) -> 编译 (javac) -> 字节码 (.class) -> 类加载 -> 解释/ JIT 编译 -> 执行

(解释执行比编译执行效率差,中国人看英文资料和看中文资料的区别)

JIT属于JRE环境的,是JVM的一个组件

  • JIT的工作原理

在运行 Java 程序时,JVM 会监测哪些方法被频繁调用(热点方法),当发现这些方法时,JIT 编译器会将其编译为机器代码,这样后续调用时就可以直接执行这些已经编译好的机器代码,从而提升性能。

垃圾回收

Java还提供垃圾自动回收功能,虽说手动管理内存意味着自由、精细化地掌控,但是也很容易出错,更考验开发者的水平。不过这只能算是Java诞生时期的优势,目前很多语言都有此机制,甚至能做的比Java好,也算不上什么优势了

在内存较为充裕的当下,将内存的管理交给GC来做,减轻了程序员编程的负担,提升了开发效率

生态

现在Java生态非常活跃与广泛,涵盖了各种领域的开发需求,人才多、标准化程度高

Java拥有庞大的开发者社区,丰富的第三方类库,网上全面的资料、各种企业级框架、中间件等

Java在云原生和微服务架构中的应用不断增长,许多Java应用已迁移到Docker环境中进行容器化部署

面向对象

Java是一种严格的面向对象编程语言,具有清晰的类、对象、继承、接口等概念,支持封装、继承、多态等OOP特性,有助于代码的可维护性和扩展性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值