
JVM
一个努力的菜鸟
永远都努力
展开
-
Java类中各模块的加载顺序的JVM本质理解
Java类中各模块的加载顺序只是表象,但至于为什么我们需要理解JVM的加载本质原理。话不多说,上代码,从分析代码开始:public class Test1 { static{ System.out.println("这是静态代码块"); } { System.out.println("这是普通代码块"); } pub...转载 2019-06-05 10:22:35 · 209 阅读 · 0 评论 -
JVM的符号引用和直接引用是什么
解析一:符号引用就是一个类中(当然不仅是类,还包括类的其他部分,比如方法,字段等),引入了其他的类,可是JVM并不知道引入的其他类在哪里,所以就用唯一符号来代替,等到类加载器去解析的时候,就把符号引用找到那个引用类的地址,这个地址也就是直接引用。解析二:1.符号引用(Symbolic References):符号引用以一组符号来描述所引用的目标,符号可以是任何形式的字面量,只要使用时能够无...原创 2019-07-08 22:58:49 · 15755 阅读 · 9 评论 -
tomcat和jvm是什么关系
以下是所有解析一:Tomcat 是 Java 程序,运行在 JVM 之上,差不多和你的 QQ 运行在你的 Windows 之上一样,启动的时候做了好多好多的工作为了让你的应用能够通过 HTTP 接收和返回消息。二:Tomcat是一个Java写的http server,启动时就和所有http server差不多,监听断口,等待连接。三:题主,Tomcat和JVM的关系,不用想的太复杂,其...翻译 2019-07-11 16:54:12 · 8851 阅读 · 1 评论 -
大白话操作数栈
先看概念1.和局部变量区一样,操作数栈也是被组织成一个以字长为单位的数组。但是和前者不同的是,它不是通过索引来访问,而是通过标准的栈操作—压栈和出栈—来访问的。比如,如果某个指令把一个值压入到操作数栈中,稍后另一个指令就可以弹出这个值来使用。2.虚拟机在操作数栈中存储数据的方式和在局部变量区中是一样的:如int、long、float、double、reference和returnType的存储...原创 2019-07-18 16:24:11 · 1824 阅读 · 0 评论 -
总结jvm和java程序的启动
1.首先是普通的java程序启动比如:java person.class 或者在IDE开发工具中右键启动(1)首先启动jvm(jvm是c语言写的或其他),jvm启动后会创建启动类加载器,去加载java程序需要的运行环境(rt.jar等等),加载完运行环境后,再创建 Launcher 启动器,由它去创建扩展类加载器和应用类加载器,并且应用类加载器把扩展类加载器当作父类,扩展类加载指定目录的扩展j...原创 2019-07-12 09:39:58 · 548 阅读 · 0 评论 -
关于jar包和工程src里面class相同的加载优先级问题
之前碰到一个疑虑,客户生产环境里面有个jar包里面的class文件和src 路径下 编译出来的class 相同(包名,类名,里面的逻辑不同),但偏偏在客户那里正常跑了3个月(tomcat),于是自己写了个demopublic class TestJvmLoaderServlet extends HttpServlet { @Override protected void doGet...转载 2019-07-19 10:16:00 · 6468 阅读 · 2 评论