本次课程所有的编译程序下载地址:
链接:https://pan.baidu.com/s/1iidu1AefS4b_K25uV5k8jA
提取码:wcda
复制这段内容后打开百度网盘手机App,操作更方便哦
一、作业
1、请写出Java程序执行过程与编译原理。
Java程序执行过程:
.java-->>编译器-->>.class(字节码文件)-->>Java虚拟机---(01011011)-->>计算机
编译原理:
编译器是将源码编译成目标机器码,即计算机可以识别的二级制码,也即cpu执行的指令集合。而javac编译器和c c++ 汇编语言等不太一样的地方,是javac是将java这种高级语言编译成java虚拟机(Jvm)能够识别的一种语言,然后再由jvm将jvm语言转换当前机器能够识别的机器语言,这就是java可以跨平台的最根本原因。javac的任务是将java源码编译成java字节码,也是通常说的将.java文件转化成.class文件。
javac编译的基本流程:
1、词法分析
读取源代码,一个字节一个字节的读取,找出其中我们定义好的关键字(如java中的if else for等关键字,识别哪些if是合法的关键字,哪些不是),这就是词法分析器进行词法分析的过程,其结果是从源代码中找出规范化的Token流。
2、语法分析
通过语法分析器对词法分析后Token流进行语法分析,这一步检查这些关键字组合再一次是否符合java语言规范(如在if后面是不是紧跟着一个布尔判断表达式),词法分析的结果是形成一个符合java语言规范的抽象语法树。
3、语义分析
通过语义分析器进行语义分析。语音分析主要是将一些难懂的、复杂的语法转化成更加简单的语法,结果形成最简单的语法(如将foreach转换成for循环 ,注解等),最后形成一个注解过后的抽象语法树,这个语法树更为接近目标语言的语法规则。
4、生成字节码
通过字节码生产器将经过注解的抽象语法树转化成符合jvm规范的字节码。
javac的主要模块有4个,分别是词法分析器、语法分析器、语义分析器、代码生成器。
2.在记事本中编写Plan.java程序,输出你本周的学习计划。
编写内容如下:
public class Plan{
public static void main(String[] args){
System.out.println("本周学习计划:");
System.out.println("1、周一到周五早上上课,下午预习和复习,晚上再自习两小时。");
System.out.println("2、学习时间:早上8:30-12:30,下午14:00-18:00,晚上19:00-21:00。");
System.out.println("3、本周将学习第一章java初体验,第二章数据类型与运算符。");
}
}
3、在MyEclipse中编写项目schedule,输出你本周的课程表。
编写代码如下:
public class Schedule {
public static void main(String[] args) {
System.out.println("\t*课程表*");
System.out.println("----------------------------------------------");
System.out.println("星期\t早上\t\t下午\t\t晚上");
System.out.println("----------------------------------------------");
System.out.println("周一\t预科03\t\t实践操作课\t\t实践操作课");
System.out.println("周二\t预科04\t\t实践操作课\t\t实践操作课");
System.out.println("周三\t实践操作课\t\t实践操作课\t\t实践操作课");
System.out.println("周四\t预科05\t\t实践操作课\t\t实践操作课");
System.out.println("周五\t实践操作课\t\t预科06\t\t预科06");
System.out.println("----------------------------------------------");
}
}
输出情况如下:
二、课堂笔记
三、课程总结
通过今天的课程学习了JDK安装及配置环境变量,通过记事本开发简单的Java程序,理解Jvava编译原理,并利用集成开发环境STS开发程序,本次课程
容易理解,不过在使用记事本编写代码是容易出错,需要注意类名大小写及{和}一起等等,需要多加练习几遍才能减少错误,并要注意在编译和执行过程的文件后缀是否添加等。