Java编译时与运行时很重要的概念,但是一直没有明晰,这次专门博客写明白概念. 基础概念 编译时 编译时顾名思义就是正在编译的时候.那啥叫编译呢?就是编译器帮你把源代码翻译成机器能识别的代码.(当然只是一般意义上这么说,实际上可能只是翻译成某个中间状态的语言.比如Java只有JVM识别的字节码,.另 ...
分类:
编程语言 时间:
2019-07-05 15:28:42
阅读次数:
131
Android 新一代编译 toolchain Jack & Jill 简介https://www.jianshu.com/p/1d7775bed2e2 在依赖了 Sun/Oracle 的 Java 编译器十年之后,Android 终于有了自己的 Java 编译器。 Jack 是 Java Andr ...
分类:
移动开发 时间:
2019-07-05 12:20:07
阅读次数:
139
第三部分 虚拟机执行子系统 第六章 类文件结构 无关性的基石 多种语言(不仅仅是Java)编译成字节码(非机器码,与操作系统和指令集无关)Class文件,只要该文件符合虚拟机对Class文件的要求便可以在JVM中运行。 Class类文件结构 魔数 CAFEBABE、次版本号2u、主版本号2u; 常量 ...
分类:
其他好文 时间:
2019-07-04 17:14:51
阅读次数:
89
1,类加载 每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令, 当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class ...
分类:
其他好文 时间:
2019-07-04 15:56:48
阅读次数:
94
java编译器把unreachable statement标记为运行时错误,一个unreachable statement就是编译器决定永远不会执行它。下面的几种情况会出现 unreachable statement:(1)在reutrn语句后写语句。(2)在throw语句后写语句。(3)break ...
分类:
编程语言 时间:
2019-06-13 20:05:25
阅读次数:
174
https://www.cnblogs.com/charleswong/p/8481593.html 新建java文件,存储时Encoding选择了UTF-8, 由于语句中包含中文,javac编译时报错,提示"编码GBK的不可映射字符": 解决办法: 方法一:使用javac -encoding UT ...
分类:
编程语言 时间:
2019-06-09 23:46:08
阅读次数:
121
Java程序从源文件创建到程序运行要经过两大步骤:1、源文件由编译器编译成字节码(ByteCode) 2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。 Java虚拟机 ...
分类:
编程语言 时间:
2019-06-09 12:45:31
阅读次数:
113
编程语言 在介绍编译和反编译之前,我们先来简单介绍下编程语言(Programming Language)。编程语言(Programming Language)分为低级语言(Low-level Language)和高级语言(High-level Language)。 机器语言(Machine Lang ...
分类:
编程语言 时间:
2019-06-06 12:23:53
阅读次数:
91
1、JVM的概述 在一台计算机上由软件或硬件模拟的计算机。Java虚拟机(JVM)读取并处理经编译过的平台无关的字节码class文件。 Java编译器针对Java虚拟机产生class文件,因此是独立于平台的。 Java解释器负责将Java虚拟机的代码在特定的平台上运行。 2、JVM 的平台相关性 J ...
分类:
编程语言 时间:
2019-06-05 20:11:11
阅读次数:
126
建议大家,不要去第三方下载JDK,而是去Oracle官方下载JDK;因为JDK是免费的,去官网下载可以免去很多不必要的麻烦。 再有就是,一般情况下,我们下载安装JDK,而不是JRE: JVM - Java 虚拟机,Java 跨平台的功臣(Java 编译之后的 Class文件,可以在任意平台上的JVM ...
分类:
其他好文 时间:
2019-06-05 09:19:44
阅读次数:
105