二、深入分析JAVA I/O的工作机制
2.1 java的I/O类库的基本架构
基于字节
基于字符
基于磁盘
基于网络
-
数据格式、传输方式
-
怎么读或写、写到哪里?
-
基于字节的操作接口
-
基于字符的操作接口
2.2 磁盘IO工作机制
- java访问磁盘文件
- Java序列化与反序列化
2.3 网络IO工作机制
- TCP状态转换
三、JavaWeb中的中文编码问题
// TODO
四、Javac编译原理
Java语言有Java语言规范,这个规范详细描述了Java语言有哪些词法和语法,而Java虚拟机也有Java虚拟机规范。那么如何才能让Java的语法规范适应Java虚拟机的语法规则呢?这个任务就由Javac编译器来完成,它的任务就是将Java语言规范转换成Java虚拟机语言规范,完成翻译工作。
4.1 Javac是什么
Java是一种编译器,能将一种语言规范转化为另一种语言规范。编译器人类与机器沟通的一个纽带,通常编译器都是将便于人理解的语言规范转化成机器容易理解的语言规范,如C、C++或者汇编语言都是将源码直接编译成目标机器码。
而Java为了实现跨平台,想要将Java源代码编译成各种机器(如在Windows、Linux)都能识别的机器码,那么就需要分为几个步骤。首先,通过Javac将Java源代码语言先转化成JVM能够识别的一种语言(.class字节码),再由JVM将JVM语言转化成当前这个机器能够识别的机器语言。
4.2 Javac编译器的基本结构
要搞清楚Javac编译器有哪些工作模块或者基本结构,首先必须知道一个编译器要完成一个语言规范到另一个语言规范的转化需要哪些步骤。
- 读取源代码
- 词法分析:找出定义的语法关键字(如if、else)
- 语法分析:检查关键词的组合是否符合Java语言规范(if后面是否跟着布尔表达式)
- 语义分析:将复杂的语法转化成最简单的语法(foreach转为标准for循环)
- 通过字节码生成器生成字节码