Java的三种编译方式

简介:
通常Java有三种编译方式,编译方式不同,那么得到的.class的大小也不同。
  1)默认编译方式:javac A.java
  2)  调试编译方式:javac -g A.java
  3)  代码编译方式:javac -g:none A.java
  案例如下:类A
public class A{
public static void main(String args[]){
for(int i=0;i<100000;i++){
A a = new A();
}
}
}
  通过上面这三种编译方式,得到的.class文件大小分别为:
  默认编译方式:322字节
  调试编译方式:453字节
  代码编译方式:238字节
  三种编译方式对应的.class文件的内容,分别如下:
  默认编译方式:代码(Code)、源文件信息(SourceFile Infomation)、代码行序列表(LineNumberTable)。
  调试编译方式:代码(Code)、源文件信息(SourceFile Infomation)、代码行序列表(LineNumberTable)、本地变量表(LocalVariableTable)。
  代码编译方式:代码(Code)。
  由于javac -g:none A.java这种方式编译的内容最少,所以.class占用的空间也就最小。
  由于javac -g A.java这种方式编译的内容最多,所以.class占用的空间也就最大。
  而javac A.java这种方式编译的内容居中,所以.class占用的空间也就居中。


最新内容请见作者的GitHub页:http://qaseven.github.io/
相关文章
|
20天前
|
Java 开发工具 流计算
flink最新master代码编译出现Java Runtime Environment 问题
在尝试编译Flink源码时遇到Java运行时环境致命错误:EXCEPTION_ACCESS_VIOLATION。问题出现在JVM.dll+0x88212。使用的是Java 11.0.28和Java HotSpot(TM) 64-Bit Server VM。系统为Windows客户端,没有生成核心dump文件。错误日志保存在hs_err_pid39364.log和replay_pid39364.log。要解决这个问题,建议检查JDK版本兼容性,更新JDK或参照错误报告文件提交Bug至http://bugreport.java.com/bugreport/crash.jsp。
|
4月前
|
安全 Java 开发者
【Java】<泛型>,在编译阶段约束操作的数据结构,并进行检查。
【Java】<泛型>,在编译阶段约束操作的数据结构,并进行检查。
24 0
|
4月前
|
IDE Java 开发工具
java编译通过,运行却提示找不到或无法加载主类的解决方案
java编译通过,运行却提示找不到或无法加载主类的解决方案
142 0
|
6月前
|
缓存 Java 编译器
Java编译优化
Java编译优化
|
9月前
|
Java Maven
IDEA项目编译时报:Warning:java: 源值1.5已过时
Idea中maven项目jdk编译version总是跳到1.5版本解决方案-Warning:java: 源值1.5已过时, 将在未来所有发行版中删除
656 2
IDEA项目编译时报:Warning:java: 源值1.5已过时
|
7月前
|
Java 编译器 开发者
java中运行时异常与编译时异常?
java中运行时异常与编译时异常?
|
28天前
|
Java 编译器
有关电脑中idea编译报错问题java: No implementation was created for AdminUserConverter due to having a problem in
有关电脑中idea编译报错问题java: No implementation was created for AdminUserConverter due to having a problem in
32 0
|
7月前
|
开发框架 前端开发 Java
JVM学习笔记(二)------Java代码编译和执行的整个过程
JVM学习笔记(二)------Java代码编译和执行的整个过程
|
1月前
|
Java
916.【Java】javap 查看 class 文件的jdk编译版本
916.【Java】javap 查看 class 文件的jdk编译版本
49 2
|
7月前
|
Java 数据安全/隐私保护
阿里云平台上进行Java程序的编译与运行
练习对Java程序的编译与运行
188 1