目录
01 简介
02 开发环境
03 程序示例
04 API文档
05 面向对象技术
01 简介
Java语言的前身是Oak语言,是美国Sun Microsystems公司于 1991年推出的,仅限于公司内部使用的语言。1995年,Sun公司将 Oak语言更名为Java语言,并正式向公众推出。
2009年美国Oracle公司收购Sun公司,从此,Java语言的更新版本改由Oracle公司发布。
Java是一种功能强大的程序设计语言,既是开发环境,又是应用环境,它代表一种新的计算模式。
Java语言的基本概念
Java语言 |
面向对象的程序设计语言 |
与机器无关的二进制格式的类文件 |
Java虚拟机(用来执行类文件) |
完整的软件程序包(跨平台的API和类库) |
JAVA语言的三种技术架构
J2EE(Java 2 Platform Enterprise Edition)企业版 |
是为开发企业环境下的应用程序提供的一套解决方案。
该技术体系中包含的技术如 Servlet Jsp等,主要针对于Web应用程序开发。 |
J2SEJava 2 Platform Standard Edition)标准版 |
是为开发普通桌面和商务应用程序提供的解决方案。
该技术体系是其他两者的基础,可以完成一些桌面应用程序的开发。
比如Java版的扫雷。 |
J2ME(Java 2 Platform Micro Edition)小型版 |
是为开发电子消费产品和嵌入式设备提供的解决方案。
该技术体系主要应用于小型电子消费类产品,如手机中的应用程序等。 |
Java5.0版本后,更名为 JAVAEE JAVASE JAVAME |
java语言的特点
1.语法简单,功能强大,安全可靠 |
Java没有指针、结构和类型定义等概念,不再有全局变量,没有#include和#define等预处理器,也没有多重继承的机制。Java语言具有自动无用内存回收机制,不需要程序员自己释放占用的内存空间,因此不会引发因内存混乱而导致的系统崩溃。Java是一种强类型语言,编写程序时必须严格遵守编程规范,编译程序能够检查出尽可能多的语法错误。
Java程序通过对象的封装、类的继承、方法的多态等机制,实现了代码的复用,信息隐藏、动态绑定等特性,可以开发出非常复杂的系统,但又不失程序的易读性。 |
2.与平台无关 |
Java语言一个非常重要的特点就是与平台的无关性,Java虚拟机(JVM)是实现这一特点的关键。JVM是一台虚拟机,类似于一个小巧而高效的CPU。
通过Java语言编写的应用程序在不同的系统平台上都可以运行,不需要重新编译。只要在需要运行java应用程序的操作系统上,先安装一个Java虚拟机(JVM Java Virtual Machine)即可,由JVM来负责Java程序在该系统中的运行。 |
3.解释编译两种运行方式 |
加入即时编译功能,编译器将字节码转换成本机的机器代码,然后能够以较高速度运行,即一次编译,到处运行,大大提高效率。 |
4.多线程 |
单线程一个时刻只能做一件事情,多线程允许在同一时刻同时做多件事情。Java提供的同步机制可保证各线程对共享数据的正确操作,完成各自的特定任务。 |
5.动态执行兼有丰富的API文档及类库 |
Java执行代码是在运行时动态载入的,程序可以自动进行版本升级。java为用户提供了详尽的API说明文档,减少工作量和开发难度。 |
02 开发环境
开发环境的安装
1.JDK
JDK是原Sun公司提供的软件包,其实含有编写和运行java程序的所有工具,安装过程中还要正确设置Path和ClassPath环境变量,这样系统才能找到javac.exe(编译器)和java.exe(解释器)所在的目录,并能正确执行相关命令。
2.文件下载
地址://www.oracle.com/technetwork/java/javase/downloads/index.html
*傻瓜式安装,下一步即可,安装路径不要有中文或者特殊符号如空格等。当提示安装JRE时,可以选择不安装
软件安装
\bin目录下主要的Java开发工具及其用途如下:
·javac : Java编译器,用来将Java程序编译成字节码。
·java: Java解释器,执行已经转换成字节码的Java程序。
·jdb: Java调试器,用来调试Java程序。
·javap:反编译,将类文件还原回方法和变量。
·javadoc:文档生成器,创建HTML文件。
设置环境变量
控制面板--系统--高级--环境变量,编辑path环境变量,在变量值开始处加上java工具所在目录,后面用 “;”和其他值分隔开即可。安装地址如图

用户变量:在变量值最后输入 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
系统变量:新建 CLASSPATH 变量,变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
结果显示
在命令行输入javac 系统给出帮助信息说明设置正确
03 程序示例
Java程序分两种,一种是Java应用程序,一种是Java小应用程序,我们这里讲的都是Java应用程序。
Java程序由类构成,含有一个main()方法,称为主函数或主方法,main方法结束,整个程序也结束,java程序文件的扩展名是.java,编译后生成的字节码文件的扩展名是.class,需要由JVM虚拟机载入并解释执行。
用记事本编写我们的第一个程序,写好把txt后缀改为.java

一个类中只能有一个公有类,类的名字就是该文件的名字,因为程序没有给出命令行参数所以args数组为空,main()方法作为程序的入口,找不到就不执行,main()方法前有三个参数,语法规定的不能缺少,也不能替换为其他内容顺序可以稍有变化,也可以写为 static public void 。
重点要素
public:该关键字说明方法main( )是公有方法,它可被任何方法访问,实际上,main( )方法只被java解释器调用。
static:该关键字告诉编译器main( )方法是静态方法,不需要通过该类的实例来调用,如果一个方法不是静态的,要先创建类的实例,然后才能调用实例的方法。
void:main( )方法不返回任何值。如果方法没有返回值,则必须说明为void,不可省略。如果方法有返回值,则以返回值类型替换void。
String args[ ]:表示命令行参数。
程序的最后两行是两个大括号,表示方法main( ) 和类HelloWorldApp的结束。注意程序中大括号的个数一定要匹配。
Java程序编写好后,如果要在计算机上运行,必须经过编译和解释执行两个阶段。
编译
输入时注意大小写,因为Java语言区分大小写。源文件是文本形式的文件,Java的执行系统是不能识别的,它必须经过编译,生成字节码的类文件后才能运行。类文件是二进制格式的,它有统一的格式,JVM可以识别类文件并执行它。创建HelloWorldApp.java源文件后,可以用下面的命令编译:
$ javac HelloWorldApp.java
编译一个程序的命令格式是:
javac [选项] 源文件名
如果编译器没有返回任何错误信息,则表示编译成功,源文件正确,此时系统在同一目录下生成了新文件HelloWorldApp.class。如果程序是由多个文件组成的,则需要分别编译各个文件,得到各个类文件。如果编译时出现错误,则需按照错误内容提示进一步修改程序,并重新进行编译,直到正确为止。
运行
编译正确后,就可以执行得到的类文件了。JVM通过解释器解释执行类文件。要运行
HelloWorldApp程序,输入如下的命令:
$
java HelloWorldApp
通常,运行一个Java程序的命令格式是:
java [选项] 程序名 [参数列表]
【注意】java.exe和javac.exe 一般存放在系统的$ JAVA_HOME\bin目录中,系统配置文件的Path变量中应包含该目录。在用户工作目录下使用java和javac命令时,系统自动到Path所含的目录中查找这些命令。
编译执行
在dos命令下进入文件所在的磁盘,javac 文件名.java 编译文件
java 文件名,执行文件,得到程序输出结果
IDE
IDE是集成开发环境的缩写,这是一个提供给开发人员使用的程序开发环境,通常包括了代码编辑器、编译器、调试器和图形用户界面等工具。
IDE通常提供一个图形用户界面,通过菜单项、图标或快捷键提供所需的功能,不需要在命令行模式下输入命令,方便了开发人员的使用,提高了程序开发的效率。目前已有多个开发Java程序的IDE,其中使用较多的有Eclipse和NetBeans。
Eclipse是一款开源免费的、基于Java的可扩展开发平台,具体来说,是一个框架和一组服务,通过插件可以构建开发环境。Eclipse附带了一个标准的插件集,包括Java开发工具JDK,所以可用来开发Java程序。当然,如果更换其他的插件,也可以用来开发其他编程语言的程序,包括 C/C++、JavaScript, Perl、PHP 和 Python 等。
NetBeans是一款用Java编写的开源IDE,既可用于Java开发,又支持其他语言,特别是 PHP、C/C ++ 和 HTML5 等。
04 API文档
Java核心API文档
JDK文档中有许多HTML文件,这些是JDK提供的应用程序编程接口(Application Programming Interface,API)文档,可使用浏览器查看,API是原Sun公司提供的使用Java语言发开的类集合,用来帮助程序员开发自己的类和程序,最基本的是Java核心API。
核心API文档是按层设计的,以主页方式提供给用户。Java核心API中共有43个包,每个包中都有若干的类和接口,其中又含有若干属性,如果选中了一个具体的包,则会在页面中列出作为包成员的所有内容。
05 面向对象技术
面向对象的编程思想
面向对象是一种软件开发的方法,现实世界中存在很多同类的对象,它们来自同一种原型,具有一样的共性,或者说它们来自同一个模板,这就是类的概念。
面向对象的方法学,通常包括3 个方面:面向对象的分析(OOA)、面向对象的设计(OOD)和面向对象的程序设计(OOP) 。面向对象技术包含的概念主要有抽象、对象、类、类型层次(子类)、封装、继承性、多态性等。
对象是类的一个具象,类是对象的一个抽象。
OOP技术把问题看成是相互作用的事物的集合,也就是对象的集合。
对象有两个特性:一是状态,二是行为,用属性来描述状态,把它的操作定义为方法,属性也称数据,这样对象就是数据加方法,可以将现实生活中的对象经过抽象、映射为程序中的对象。
OOP中采用了三大技术:封装、继承和多态。封装体现的特点是将对象的属性及实现细节隐藏起来,只给出如何使用的信息。将数据及对数据的操作捆绑在一起成为类,这就是封装技术。对象是类的实例,外界使用对象中的数据及可用的操作受到类定义的限制。
程序只有一种基本的结构,即类。将一个已有类中的数据和方法保留,并加上自己特殊的数据和方法,从而构成一个新类,这是OOP中的继承。原来的类是父类,也称为基类或超类。新类是子类,子类派生于父类,或说子类继承于父类。继承体现的是一种层次关系,下一层的类可从上一层的类继承定义,同时还可以改变和扩充一些特性。
在一个类或多个类中,可以让多个方法使用同一个名字,从而具有多态性。多态可以保证对不同类型的数据进行等同的操作,名字空间也更加宽松。多态还有一个重要的特点,即使用相同的操作名,能根据具体的对象自动选择对应的操作。
课后习题
1.若Java程序中公有类的名字是OneApp,则保存该程序的文件名是( )。
A.Oneapp.java B.Oneapp.class
C.OneApp.java D.OneApp.class
|
 |
 |
|
『正确答案』C
『答案解析』Java程序文件的扩展名是.java,编译后生成的字节码文件的扩展名是.class。参考教材P27。
|
2.Java程序OneApp.java编译后的类文件名是( )。
A.Oneapp.java B.Oneapp.class
C.OneApp.java D.OneApp.class
|
 |
 |
|
『正确答案』D
『答案解析』Java程序文件的扩展名是.java,编译后生成的字节码文件的扩展名是.class。参考教材P27。
|
3.Java语言的解释器是( )。
A.JVM B.javac.exe C.java.exe D.JDK
|
 |
 |
|
『正确答案』C
『答案解析』java:Java解释器,执行已经转换成字节码的Java程序。参考教材P25。
|
4.下列选项中,不属于Java语言特点的是( )。
A.类型定义
B.解释执行
C.与平台无关
D.多线程
|
 |
 |
|
『正确答案』A
『答案解析』Java中没有指针、结构和类型定义等概念。参考教材P23。
|
5.下列叙述中,正确的是( )。
A.Java程序必须配合HTML文件才能执行
B.JVM解释执行Java源程序
C.Java程序中可以使用指针
D.Java程序生成的字节码文件与平台无关
|
 |
 |
|
『正确答案』D
『答案解析』字节码就是虚拟机的机器指令,它与平台无关。参考教材P23。
|
6.下列选项中,不是java程序中的主函数main()前面的修饰符的是( )。
A.class B.static
C.void D.public
|
 |
 |
|
『正确答案』A
『答案解析』主方法main()的前面有3个修饰符:static 、public、void。参考教材P27。
|
7.下列概念中,属于面向对象语言重要概念和机制之一的是( )。
A.方法调用 B.模块
C.继承 D.结构化
|
 |
 |
|
『正确答案』C
『答案解析』面向对象技术包含的概念主要有抽象、对象、类、类型层次(子类)、封装、继承性、多态性等。参考教材P31。
|
填空题
1.假设Java程序保存在文件MyTest.java中,则编译这个程序的命令是 。
|
 |
 |
|
『正确答案』javac MyTest.java
『答案解析』javac:Java编译器,用来将Java程序编译成字节码。参考教材P25。
|
2.类Testll经Java编译程序编译后,产生的文件是 。
|
 |
 |
|
『正确答案』Testll.class
『答案解析』Java程序文件的扩展名是.java,编译后生成的字节码文件的扩展名是.class。参考教材P27。
|
3.JVM的全称是 。
|
 |
 |
|
『正确答案』Java虚拟机
『答案解析』参考教材P23。
|
4.Java程序中的主函数main()前面的修饰符是 。
|
 |
 |
|
『正确答案』public static void
『答案解析』主方法main()的前面有3个修饰符:static 、public、void。参考教材P27。
|
5.Java源文件经编译后生成的二进制文件称为 。
|
 |
 |
|
『正确答案』字节码文件
『答案解析』Java编译器将Java程序编译成虚拟机能够识别的二进制代码,这种代码称为字节码。参考教材P23。
|
6.编写好的Java源程序在计算机上运行需依次经历两个阶段,分别是 和解释执行。
|
 |
 |
|
『正确答案』编译
『答案解析』Java程序编写好后,如果要在计算机上运行,必须经过编译和解释执行两个阶段。参考教材P28。
|
7.公有类MyFirstTest所在的文件经Java编译程序编译后,产生的文件是 。
|
 |
 |
|
『正确答案』MyFirstTest.class
『答案解析』Java程序文件的扩展名是.java,编译后生成的字节码文件的扩展名是.class。参考教材P27。
|