JVM的运行数据区 首先我简单来画一张 JVM的结构原理图,如下。 我们重点关注 JVM在运行时的数据区,你可以看到在程序运行时,大致有5个部分。 1.方法区 不止是存“方法”,而是存储整个 class文件的信息,JVM运行时,类加载器子系统将会提取 class文件里面的类信息,并将其存放在方法区中 ...
分类:
编程语言 时间:
2019-11-21 12:11:33
阅读次数:
101
第一步:进入对应的.java目录 javac xxx.java 生成对应的xxx.class文件 第二步:退回到/java目录 javah -classpath . -jni 包名.类名 ...
分类:
编程语言 时间:
2019-11-20 12:53:52
阅读次数:
91
最近发现,很多网友喜欢把tomcat的work目录里的东西叫做缓存,其实那不是很恰当,work目录只是tomcat的工作目录,也就是tomcat把jsp转换为class文件的工作目录,这也正是为什么它叫work目录而不是cache目录的原因。 jsp,tomcat的工作原理是当浏览器访问某个jsp页 ...
分类:
其他好文 时间:
2019-11-19 11:54:06
阅读次数:
87
1. 类加载是什么 虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可以被虚拟机直接使用的Java类型,这就是虚拟机的类加载机制。 与那些在编译时需要进行连接工作的语言不同,在Java语言里面,类型的加载、连接和初始化过程都是在程序运行期间完成的,这种策略 ...
分类:
其他好文 时间:
2019-11-18 09:33:59
阅读次数:
55
[TOC] 类文件结构 Class类文件的结构 任何一个Class文件都对应着唯一一个类或者接口的定义信息,但是类或者接口并不一定都要定义在文件里(例如类也可以通过类加载器直接生成)。Class文件是一组以8位字节为基础单位的二进制流,各项数据项目严格按照顺序紧凑地排列在Class文件中。Class ...
分类:
编程语言 时间:
2019-11-16 12:45:50
阅读次数:
74
0.前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路。但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的。 感于以上的种种,我打算把我在学习JVM虚拟机 ...
分类:
编程语言 时间:
2019-11-15 17:01:18
阅读次数:
94
0. 前言 了解JVM虚拟机原理是每一个Java程序员修炼的必经之路。但是由于JVM虚拟机中有很多的东西讲述的比较宽泛,在当前接触到的关于JVM虚拟机原理的教程或者博客中,绝大部分都是充斥的文字性的描述,很难给人以形象化的认知,看完之后感觉还是稀里糊涂的。 感于以上的种种,我打算把我在学习JVM虚拟 ...
分类:
编程语言 时间:
2019-11-15 16:58:48
阅读次数:
91
一、制作只含有字节码文件的jar包 我们先来看只含有字节码文件,即只含有class文件的jar包怎么制作,这是最简单的形式 1、最简单的jar包——直接输出hello 最终生成的jar包结构 META-INFHello.class 方法步骤 (1)用记事本写一个Hello.java的文件 1 cla ...
分类:
编程语言 时间:
2019-11-15 11:58:17
阅读次数:
57
Tip: 当方法传入一个参数时,可以不用增加param注解。当方法传入参数为多个时需要增加Parma注解,如果不加上param注解会在测试运行时报错 原因: 这是因为Sun提供的默认编译器(javac)在编译后的Class文件中会丢失参数的实际名称,方法中的形参会变成无意义的arg0、arg1等,在 ...
分类:
其他好文 时间:
2019-11-14 17:49:29
阅读次数:
70
不知道大家有没有对.java文件进行编译之后生成的.class文件好奇过。 我们都知道Java中的class文件是经过Java编译器对Java类文件进行编译后的产物。我想有不在少数的C程序员在学习Java之后在认知上会粗略的认为C程序在经过编译后产生的.out文件与.class文件在各方面大概相同, ...
分类:
其他好文 时间:
2019-11-13 13:23:46
阅读次数:
83