第二篇:JAVA之基础语言概述
本篇要点:
- Java语言的发展史
- 编译型语言和解释型语言
- Java语言的编译、解释运行机制
- Java通过JVM虚拟机实现跨平台
- 安装JDK,设置Path环境变量
- Java程序的组织形式
- Java程序的命名规则
- Java的垃圾回收机制
- 常用的DOS命令
- 常见问题及解决方法
一、Java语言的发展史
- 1991年Sun公司的James Gosling(詹姆斯·高斯林)等人开始开发名称为 Oak 的语言,希望用于控制嵌入在有线电视交换盒、PDA等的微处理器;
- 1994年将Oak语言更名为Java;
- 1996年发布JDK1.0,这个版本包括两部分:运行环境(JRE)和开发环境(JDK);
- 1998年发布JDK1.2,将Java分成了J2EE(企业版)、J2SE(标准版)和J2ME(智能设备版,已被Android取代)三个版本;
- 2009年Oracle公司收购Sun公司;
二、编译型语言和解释型语言
- 计算机高级语言按程序的执行方式分为:编译型和解释型;
- 编译型语言:指使用专门的编译器,针对特定平台(操作系统)将某种高级语言源代码一次性“翻译”成可以被该平台硬件执行的机器码(包括机器指令和操作数),并包装成该平台所能识别的可执行性程序的格式;
- 编译型语言特点:编译生成的可执行性程序可以脱离开发环境,在特定的平台上独立运行(效率高);
- 解释型语言:指使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行的语言;
- 解释型语言特点:通常不会进行整体性的编译,每次执行解释型语言的程序都需要进行一次编译,不能脱离解释器独立运行(效率低);
三、Java语言的编译、解释运行机制
- Java语言编写的程序需要经过先编译、后解释两个步骤。编译步骤不会生成特定平台的机器码,而是生成一种与平台无关的字节码.class文件;
四、Java通过JVM虚拟机实现跨平台
- JVM(Java Virtual Machine)Java虚拟机,负责解释执行.class字节码文件;
- Java编译器编译源程序时,生成的是与平台无关的字节码,这些字节码不面向任何具体的平台,只面向JVM,不同平台上的JVM都是不同的,但都提供了相同的接口;
- JVM规定的统一标准:指令集、寄存器、类文件的格式、栈、垃圾回收堆、存储区
五、安装JDK,设置Path环境变量
- JDK的全称是Java SE Development Kit,即Java标准版开发包,它提供了编译、运行Java程序所需的各种工具和资源,包括Java编译器、Java运行时环境,以及常用的Java类库等;
- JRE的全称是Java Runtime Environment,即Java运行时环境,JRE包含了JVM和基础类库;
- 配置环境变量:让java jdk\bin目录下的工具,可以在任意目录下运行,原因是,将该工具所在目录告诉了系统,当使用该工具时,由系统帮我们去找指定的目录。
环境变量的配置:
1):永久配置方式:JAVA_HOME=%安装路径%\Java\jdk
path=%JAVA_HOME%\bin
2):临时配置方式:set path=%path%;C:\Program Files\Java\jdk\bin
特点:系统默认先去当前路径下找要执行的程序,如果没有,再去path中设置的路径下找。
classpath的配置:
1):永久配置方式:classpath=.;c:\;e:\
2):临时配置方式:set classpath=.;c:\;e:\
注意:在定义classpath环境变量时,需要注意的情况
如果没有定义环境变量classpath,java启动jvm后,会在当前目录下查找要运行的类文件;
如果指定了classpath,那么会在指定的目录下查找要运行的类文件。
还会在当前目录找吗?两种情况:
1):如果classpath的值结尾处有分号,在具体路径中没有找到运行的类,会默认在当前目录再找一次。
2):如果classpath的值结果出没有分号,在具体的路径中没有找到运行的类,不会再当前目录找。
一般不指定分号,如果没有在指定目录下找到要运行的类文件,就报错,这样可以调试程序。
-
javac命令和java命令做什么事情呢?
要知道java是分两部分的:一个是编译,一个是运行。
javac:负责的是编译的部分,当执行javac时,会启动java的编译器程序。对指定扩展名的.java文件进行编译。 生成了jvm可以识别的字节码文件。也就是class文件,也就是java的运行程序。
java:负责运行的部分.会启动jvm.加载运行时所需的类库,并对class文件进行执行.
一个文件要被执行,必须要有一个执行的起始点,这个起始点就是main函数.
六、Java程序的组织形式
- Java程序以类的形式存在,类(class)是Java程序的最小程序单位;
- main方法是Java程序的入口,必须使用public static void 来修饰;
七、Java程序的命名规则
- Java程序源文件的后缀名必须是.java;
- Java程序源代码里定义了一个public类,则该源文件的主文件名必须与该public类的类名相同,一个Java源文件里最多只能定义一个public类;
- 包的命名:全部小写,由域名定义;例如:net.frontfree.javagroup
- 类的命名:单词首字母大写;例如:TestPage
- 方法的命名:首字母小写,字母开头大写;例如:drawImage
- 常量的命名:全部大写,常加下划线;例如:MAX_VALUE
八、Java的垃圾回收机制
- 内存泄露:分配的内存没有得到及时回收,积累过多引起程序瘫痪的现象;
- Java的堆内存的回收由垃圾回收来负责,所有的JVM实现都有一个由垃圾回收器管理的堆内存;
- 垃圾回收是一种动态存储管理技术,它自动释放不再被程序引用的对象,按照特定的垃圾回收算法来实现内存资源的自动回收功能;
- 垃圾回收的优点:a. 垃圾回收机制可以很好地提高编程效率; b. 垃圾回收机制保护程序的完整性;
- 垃圾回收的缺点:它的开销影响程序的性能;
- 任何一种垃圾回收算法要做两件基本的事情:a. 发现无用的对象; b. 回收被无用对象占用的内存空间,使该空间可被程序再次使用;
九、常用的DOS命令
十、常见问题及解决方法
1. 源文件名不存在或者写错,或者当前路径错误:
2. 类文件名写错,或者类文件不在当前路径下,或者不在classpath指定路径下
3. 声明为public的主类应与文件名一致,否则编译失败
4. 编译失败,注意错误出现的行数,再到源代码中指定位置改错