Java在编译时做了哪些事情

me阿木 2015-01-13 02:05:30
如题
先抛砖引玉吧:
1. 常量引用
2. 常量运算;
3. 方法重载;
4. 方法重写;
5. 泛型构建;
6. 编译时异常;
7. 编译时注解;

如有不当处还希望能指出。
...全文
451 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
me阿木 2015-02-02
  • 打赏
  • 举报
回复
引用 4 楼 u011702202 的回复:
如果是Javac编译器,主要做了如下的事情: 1、解析与填充符号表; 2、注解处理器; 3、语义分析与字节码生成: 3.1、标注检查 3.2、数据及控制流分析 3.3、解语法糖 3.3.1、泛型与类型擦除 3.3.2、自动装箱、拆箱与遍历循环 3.3.3、条件编译 3.4、字节码生成 详细要研究下Javac的源代码了,java从也是Java实现的。 程序编译与代码优化(早期(编译器)优化): https://github.com/arthinking/arthinking.github.io/blob/master/Java/2014120501_JVM%E7%AC%94%E8%AE%B0%20-%20%E7%A8%8B%E5%BA%8F%E7%BC%96%E8%AF%91%E4%B8%8E%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96%EF%BC%88%E6%97%A9%E6%9C%9F%EF%BC%88%E7%BC%96%E8%AF%91%E5%99%A8%EF%BC%89%E4%BC%98%E5%8C%96%EF%BC%89.md
这就是我要的。多谢
HarmonyChang 2015-01-31
  • 打赏
  • 举报
回复
引用 4 楼 u011702202 的回复:
如果是Javac编译器,主要做了如下的事情: 1、解析与填充符号表; 2、注解处理器; 3、语义分析与字节码生成: 3.1、标注检查 3.2、数据及控制流分析 3.3、解语法糖 3.3.1、泛型与类型擦除 3.3.2、自动装箱、拆箱与遍历循环 3.3.3、条件编译 3.4、字节码生成 详细要研究下Javac的源代码了,java从也是Java实现的。 程序编译与代码优化(早期(编译器)优化): https://github.com/arthinking/arthinking.github.io/blob/master/Java/2014120501_JVM%E7%AC%94%E8%AE%B0%20-%20%E7%A8%8B%E5%BA%8F%E7%BC%96%E8%AF%91%E4%B8%8E%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96%EF%BC%88%E6%97%A9%E6%9C%9F%EF%BC%88%E7%BC%96%E8%AF%91%E5%99%A8%EF%BC%89%E4%BC%98%E5%8C%96%EF%BC%89.md
好专业!
u010760852 2015-01-31
  • 打赏
  • 举报
回复
四楼正解,表示佩服
包小卷 2015-01-31
  • 打赏
  • 举报
回复
引用 4 楼 u011702202 的回复:
如果是Javac编译器,主要做了如下的事情: 1、解析与填充符号表; 2、注解处理器; 3、语义分析与字节码生成: 3.1、标注检查 3.2、数据及控制流分析 3.3、解语法糖 3.3.1、泛型与类型擦除 3.3.2、自动装箱、拆箱与遍历循环 3.3.3、条件编译 3.4、字节码生成 详细要研究下Javac的源代码了,java从也是Java实现的。 程序编译与代码优化(早期(编译器)优化): https://github.com/arthinking/arthinking.github.io/blob/master/Java/2014120501_JVM%E7%AC%94%E8%AE%B0%20-%20%E7%A8%8B%E5%BA%8F%E7%BC%96%E8%AF%91%E4%B8%8E%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96%EF%BC%88%E6%97%A9%E6%9C%9F%EF%BC%88%E7%BC%96%E8%AF%91%E5%99%A8%EF%BC%89%E4%BC%98%E5%8C%96%EF%BC%89.md
打错了。。 javac也是Java实现的
包小卷 2015-01-31
  • 打赏
  • 举报
回复
如果是Javac编译器,主要做了如下的事情: 1、解析与填充符号表; 2、注解处理器; 3、语义分析与字节码生成: 3.1、标注检查 3.2、数据及控制流分析 3.3、解语法糖 3.3.1、泛型与类型擦除 3.3.2、自动装箱、拆箱与遍历循环 3.3.3、条件编译 3.4、字节码生成 详细要研究下Javac的源代码了,java从也是Java实现的。 程序编译与代码优化(早期(编译器)优化): https://github.com/arthinking/arthinking.github.io/blob/master/Java/2014120501_JVM%E7%AC%94%E8%AE%B0%20-%20%E7%A8%8B%E5%BA%8F%E7%BC%96%E8%AF%91%E4%B8%8E%E4%BB%A3%E7%A0%81%E4%BC%98%E5%8C%96%EF%BC%88%E6%97%A9%E6%9C%9F%EF%BC%88%E7%BC%96%E8%AF%91%E5%99%A8%EF%BC%89%E4%BC%98%E5%8C%96%EF%BC%89.md
me阿木 2015-01-29
  • 打赏
  • 举报
回复
主动把帖子推起来
风舞叶扬 2015-01-16
  • 打赏
  • 举报
回复
我自己的感觉 1 启动jvm加载类加载器,将加载相关文件载入内存 2 执行javac命令 3 导入java.lang包和你自己import的包 4 执行编译期检查,有异常则抛出异常。 5 jvm生成与平台无关的二进制字节码文件 就是.class文件。
wasdasdfqwer 2015-01-14
  • 打赏
  • 举报
回复
我是最后一楼

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧