
JVM
文章平均质量分 92
JVM学习笔记,欢迎阅读。
海陆云
请洒潘江,各倾陆海云尔
展开
-
JVM是如何执行方法调用的?
文章目录前言重载与重写JVM 的静态绑定和动态绑定调用指令的符号引用总结前言前不久在写代码的时候,我不小心踩到一个可变长参数的坑。你或许已经猜到了,它正是可变长参数方法的重载造成的。(注:官方文档建议避免重载可变长参数方法,见[1]的最后一段。)我把踩坑的过程放在了文稿里,你可以点击查看。void invoke(Object obj, Object... args) { ... }void invoke(String s, Object obj, Object... args) { ... }原创 2021-12-19 13:44:33 · 22626 阅读 · 0 评论 -
Java虚拟机是如何加载Java类的?
前言从 class 文件到内存中的类,按先后顺序需要经过加载、链接、初始化三大步骤。链接过程需要验证;而内存中的类没有经过初始化,同样不能使用。Java 语言的类型可以分为两大类:基本类型(primitive types)和引用类型(reference types)。Java 的基本类型是由 Java 虚拟机预先定义好的。Java 将引用类型细分为四种:类、接口、数组类和泛型参数。由于泛型参数会在编译过程中被擦除,因此 Java 虚拟机实际上只有前三种。在类、接口和数组类中,数组类是由 Java 虚原创 2021-12-19 13:31:25 · 20880 阅读 · 0 评论 -
Java的基本类型
文章目录前言Java 虚拟机的 boolean 类型Java 的基本类型前言如果你了解面向对象语言的发展史,那你可能听说过 Smalltalk 这门语言。它的影响力之大,以至于之后诞生的面向对象语言,或多或少都借鉴了它的设计和实现。在 Smalltalk 中,所有的值都是对象。因此,许多人认为它是一门纯粹的面向对象语言。Java 则不同,它引进了八个基本类型,来支持数值计算。Java 这么做的原因主要是工程上的考虑,因为使用基本类型能够在执行效率以及内存使用两方面提升软件性能。今天,我们就来了原创 2021-12-17 21:30:37 · 21608 阅读 · 0 评论 -
Java代码是怎么运行的?
Java代码是怎么运行的?前言为什么 Java 要在虚拟机里运行?Java 虚拟机具体是怎样运行 Java 字节码的?Java 虚拟机的运行效率究竟是怎么样的?总结前言Java 和 C++ 在运行方式上的区别:Java 代码有很多种不同的运行方式。比如说可以在开发工具中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至可以在网页中运行。当然这些执行方式都离不开 JRE(Java 运行时环境)。实际上,JRE 仅包含运行 Java 程序的必需组件,包括 Java 虚拟机以及 Java原创 2021-12-17 21:19:41 · 28959 阅读 · 0 评论