一、java与Class文件:
1. 一个.java文件最多只能有一个pulic Class xxx 并且类名= .java文件名。
2. 一个.java文件里可以多个Class,但不管是内部类还是其他类都会一一对应一 个Class文件。(其他类不可以使用修饰符,内部类可以使用修饰符和static)
二、java编码问题:
字符集不等于字符编码,通常一个字符集包含多个字符编码方式!
中国人自己的编码:国标(GBK)
Unicode:全球信息交换需求的与日俱增与全球统一编码,是容纳世界所有文字符号的国标标准编码!
(1)普通文本乱码:
文件保存编码格式和读取编码格式的不匹配造成的乱码
(2)java中编码
在jvm内存中的字符不管是字母、数字、还是其他国家文字都是2个字节。
由于java跨平台的特点对每个平台的默认源码编码方式不同,而一些IDE开发工具也会根据系统,自行设置前端编译器的编码方式。
Linux平台
编译 .java文件→读取.class文件→jvm运行
utf-8 utf-8 utf-16
Window平台
编译.java文件→读取.class文件→jvm运行
GBK utf-8 utf-16
所以.Class文件都是UTF-8的字符编码方式!
三、Class文件的形成:
通过各种前端编译器(例如:Sun的Javac、Eclipse JDT中的增量式编译器 ECJ)将.java等文件编译成.Class字节码文件(涉及到java的编译原理的知识)
编译过程大体分为三个步骤: