JVM之背景介绍

Java在虚拟机层面隐藏了底层技术多复杂性以及机器与操作系统的差异,实现了在任意一台虚拟机上编译的程序都能在任何一台虚拟机上正常运行。

虚拟机会完成对硬件平台的兼容及对内存等资源的管理工作。

Java优点:

拜托了硬件平台电束缚,实现了“一次编写,到处运行”的理想;

提供了一个相对安全的内存管理和访问机制,避免了绝大部分的内存泄露和指针越界问题;

实现了热点代码检测和运行时编译及优化,这使Java应用能随着运行时间的增加而获得更高的性能;

有一套完善的应用程序接口。


JDK包括:Java程序设计语言,Java虚拟机,Java API类库,JDK是用于支持java程序开发的最小环境。 Java API类库中的Java SE API子集和Java虚拟机这两部分称为JRE.JRE是支持Java程序运行的标准环境。

Hotspot虚拟机成为JDK1.3及之后所有版本的Sun JDK的默认虚拟机。

JDK1.5语法在易用性上做出了非常大的改进。例如:自动装箱,泛型,动态注解,枚举,可变长参数,遍历循环等。在虚拟机和API层面,改进了Java的内存模型(JMM)提供了java.util.concurrent并发包等。

由于编译器和解释器不能配合工作,意味着如果使用编译器执行,编译器就不得不对每个方法,每一行代码都进行编译,而无论它们执行的效率是否具有编译都价值。

准确式内存管理:虚拟机可以知道内存中某个位置的数据具体是什么类型。譬如内存中有一个32位的整数123456,虚拟机可以分辨他是一个reference类型指向123456的内存地址还是一个数值为123456的整数。这样才能在GC的时候准确判断堆上的数据是否还能被使用。

Hotspot具有准确式内存管理和热点代码探测技术(热点代码探测能力可以通过执行计数器找出最有编译价值的代码,然后通知JIT编译器以方法为单位进行编译。如果一个方法被频繁调用,或方法中有效循环数很多,将会分别触发标准编译和OSR(栈上替换)编译动作。

当谈到 JVM 监控的背景时,可以从以下几个方面进行细化: 1. JVM 运行时环境:JVM(Java虚拟机)是Java平台的核心组件,负责将Java字节码转换成机器码并执行。JVM提供了一些内置的监控工具和API,用于收集和报告有关应用程序性能和行为的信息。 2. 应用程序复杂性增加:随着应用程序的复杂性不断增加,尤其是在大规模和分布式系统中,需要对JVM进行监控来了解应用程序的性能和行为。监控可以帮助开发人员识别和解决性能问题、内存泄漏、线程问题等。 3. 性能优化需求:对于企业级应用程序而言,性能是关键指标之一。通过监控JVM,可以了解应用程序的资源利用情况、瓶颈点以及优化潜力。这有助于开发人员进行性能调优,提高应用程序的响应时间和吞吐量。 4. 故障排查和容错能力:当应用程序发生故障或异常时,监控JVM可以提供宝贵的信息来帮助定位问题。通过监控内存、线程、日志等指标,可以追踪异常发生的原因,并采取适当的措施来修复问题,提高应用程序的可靠性和稳定性。 5. 资源管理和容量规划:监控JVM可以提供关于资源使用情况的实时数据,如内存、CPU、磁盘等。这有助于进行容量规划,预测未来的资源需求,并确保应用程序在高负载情况下仍能正常运行。 总而言之,JVM监控的背景可以归结为应对应用程序复杂性增加、性能优化需求、故障排查和容错能力、资源管理和容量规划等方面的需求。通过监控JVM,开发人员和运维人员能够获得关键的运行时数据,以便更好地管理、维护和优化应用程序。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值