JVM
文章平均质量分 83
JVM研习路程
长臂人猿
进阶的猿猴
展开
-
JVM解析:class结构和常量及方法初始化
推荐官方文档:https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-3.html。原创 2023-07-13 10:14:13 · 523 阅读 · 0 评论 -
自定义类加载器和双亲委托机制
类加载器简述类加载器继承加载类路径(引导)Bootstrap ClassLoader%JAVA_HOME%\jre\lib\下的jar(jre核心库)(扩展)ExtClassLoaderextends URLClassLoader%JAVA_HOME%\jre\lib\ext目录下的jar(应用)AppClassLoaderextends URLClassLoader加载当前引用的classpath的所有类*Bootstrap ClassLoader是由原创 2021-11-11 19:12:38 · 570 阅读 · 0 评论 -
Spring自定义注解
前言注解本身能够包含元注解,元注解被用来注解其它注解。注解的生命周期有三个阶段:1、Java源文件阶段;2、编译到class文件阶段;3、运行期阶段。四种元注解@Retention注解: 只能用于修饰一个Annotation定义,用于指定该Annotation的生命周期。RetentionPolicy取值为SOURCE,CLASS,RUNTIME。RetentionPolicy.SOURCE: 只能保存在源代码(.java文件)中,当编译时,会被丢弃;RetentionPolicy.CLASS原创 2021-05-18 18:26:48 · 616 阅读 · 0 评论 -
转载:jvm之java类加载机制和类加载器(ClassLoader)的详解
当程序主动使用某个类时,如果该类还未被加载到内存中,则JVM会通过加载、连接、初始化3个步骤来对该类进行初始化。如果没有意外,JVM将会连续完成3个步骤,所以有时也把这个3个步骤统称为类加载或类初始化。 一、类加载过程1.加载 加载指的是将类的class文件读入到内存,...转载 2021-01-28 11:48:21 · 174 阅读 · 1 评论 -
二进制安装JDK和MySql
二进制安装JDK卸载自带的OpenJDKrpm -qa | grep javarpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.252.b09-2.el7_8.x86_64解压安装jdk到指定目录下ftp传输文件压缩包;tar -zxvf exmple.tar.gz解压安装即可配置java环境路径JAVA_HOME 你jdk安装路径即可vim /etc/profile#java environmentexport JAVA_HOM原创 2021-01-13 14:13:36 · 286 阅读 · 0 评论 -
JVM解析:Synchronized图解
public class SynchronizedClasss {public static void main(String[] args) { Object obj = new Object(); synchronized (obj) { System.out.println("Hello JVM"); }}}前言PS:槽位计数从0开始锁包含两个动作:加锁和解锁。上锁和解锁的动作的解析。dup(引用克隆复制):一个dup指令,这是因为实例的初始化方法肯定需要用到一次,然后第原创 2021-01-10 20:28:51 · 308 阅读 · 4 评论 -
JVM解析:异常try ... catch和finally
PS:注意长量值过小(1~5),不会显示在方法右边:0: bipush 610: iconst_0public class ExceptionClasss { public static void main(String[] args) { int i = 6; try { i = 10; } catch (Exception e) { // TODO: handle exception i = 0; } }}exception table原创 2021-01-09 18:25:06 · 303 阅读 · 0 评论 -
使用Eclipse集成javap查看类的字节码
使用Eclipse集成javap查看类的字节码设置运行配置集成javap参数说明Name: javap -clocation: D:\eclipse-java-oxygen-R-win32-x86_64\JDK\bin\javap.exeWorking Directory:${workspace_loc}${project_name}Arguments:-c -verbose -classpath workspaceloc/‘‘{workspace_loc}/` `workspacel原创 2021-01-06 17:58:34 · 252 阅读 · 0 评论