第一章 Java概览
1.1 基本简介
Java是一种理想的面向对象的网络编程语言。
1991年,出现了Oak语言,旨在解决编程语言的选择和跨平台的问题。
1994年,随着Internet的迅猛发展,Sun Microsystems公司发现Oak语言所具有的跨平台、面向对象、高安全性等特点非常适合于互联网的需要,于是就改进了该语言的设计且命名为“Java”,并于1995年正式向IT业界推出。
1.2 Java的应用范畴
随着Java2一系列新技术(如JAVA2D、JAVA3D、SWING、JAVA SOUND、EJB、SERVLET、JSP、 CORBA、XML、JNDI等等)的引入,使得它在电子商务、金融、证券、邮电、电信、娱乐等行业有着广泛的应用,使用Java技术实现网络应用系统也正在成为系统开发者的首要选择。
1.3 Java的特点
1)简单、安全可靠
2)面向对象
3)分布式计算
4)平台的无关性(跨不同的操作系统)
5) 多线程
6) 动态的
7) 可扩充的
正如SUN Micro Systems所述:Java是简单的、面向对象的、分布式的、解释的、有活力的、安全的、结构中立的、可移动的、高性能的、多线程和动态的语言。
1.4 Java的三个平台
Java不仅仅是一种网络编程语言,还是一个不断扩展的开发平台。Sun公司针对不同的市场目标和设备进行定位,把Java划分为如下三个平台:
1)J2SE(Java2 Standard Edition)是Java2 的标准版,主要用于桌面应用软件的编程。它包含了构成Java语言基础和核心的类。我们在学习Java的过程中,主要是在该平台上进行的。
2)J2EE(Java2 Enterprise Edition)是Java2的企业版,主要是为企业应用提供一个服务器的运行和开发平台。J2EE 不仅包含J2SE 中的类,还包含了诸如EJB、servlet、JSP、XML等许多用于开发企业级应用的类包。J2EE本身是一个开放的标准,任何软件厂商都可以推出自己符合J2EE标准的产品,J2EE将逐步发展成为强大的网络计算平台。
3)J2ME(Java2 Micro Edition)是Java2的微缩版,主要为消费电子产品提供一个Java的运行平台,使得能够在手机、机顶盒、PDA等消费电子产品上运行Java程序。
1.5 Java开发的步骤
1)使用文本编辑工具编写Java的源程序,Java源程序的扩展名必须是.java。
2)使用Java编译器Javac.exe编译Java的源程序
Javac用于将扩展名为.java的源程序代码文件编译成扩展名为.class字节码文件。
使用格式: javac FileName.java
例:编译java源程序myProg.java
Javac myProg.java
执行该命令将在当前目录下生成字节码文件myProg.class。
注意:在编译文件时,源文件的扩展名.java必须带上,否则会出现编译错误,不能生成字节码文件。
3)使用解释器Java.exe(JVM)解释执行Java的字节码程序
解释执行编译后的字节码文件程序。
使用格式: java classFileName
例:解释执行字节码文件myProg.class
Java myProg
注意: 运行的类文件名不需要带.class扩展名。
Java.exe 是执行Java编译后的.class字节码文件的主要程序,所有的java程序均由此程序来加载执行,Java的跨平台技术也是由此程序实现,Sun公司在不同的操作系统中开发了不同的字节码解释器,这些解释器统称为Java Virtual Machine(JVM)Java虚拟机。Windows下的JVM就是java.exe,使用虚拟机加载一个Java的字节码文件后,Java虚拟机就开始寻找一个叫main的入口方法,开始执行字节码程序。
我们应该注意以下几点:
(1) Java程序总是由一些类组成。在每个Java程序中可以包含有多个类,但至少必须有一个类;
(2) 可以把每个类的程序代码放入一个单独的程序文件中,一般情况下程序文件名和其中定义的类名取名相一致;
(3) 源程序文件必须使用扩展名.java。
面向对象的特点:
Java是一种纯面向对象的程序设计语言,面向对象的程序程序设计有如下的特点:
1)程序中所有东西都是对象,可将对象看成是一种新型变量;它保存着数据,且能对自身进行操作。
2)程序是一些对象的组合,通过消息传递进行相关的处理,各对象知道自己该做些什么。
3)每个对象都有自己的存储空间并可容纳其他对象。也就是说通过封装现有的对象,可以创建出新的对象。对象的概念看似简单,其实却可达到任意高的复杂程度。
4)如前所述,每个对象都属于某一类型,因此每个对象都是某个类的一个实例。类的最重要的特征就是能将什么消息发给它,同一类所有对象都能接收相同的消息。
1.6 Java的开发环境的搭建
1)下载并安装JDK文件
红色箭头指定的必须选中,红框线内就是提供的不同操作系统的JDK开发环境安装包,把安装包下载后,根据系统提示的步骤安装即可,一般都遵循默认的选择。
2)设置系统环境
在运行Java程序或进行一些相关处理时,用到了工具箱(JDK)中的工具和资源,这就需要设置两个环境变量PATH和CLASSPATH,以获取运行工具和资源的路径。1.7后的版本可以不设置ClassPath环境变量
(1) 右击“我的电脑”图标;
(2) 在出现的快捷菜单中单击“属性”选项;
(3) 在出现的“系统属性”对话框窗口上单击“高级”选项;
(4) 单击对话框上的“环境变量”按钮;
(5) 在出现的“环境变量”对话框上,单击系统或用户变量框内的“新建”按钮;
新建一个名为“JAVA_HOME”的系统环境变量。其变量的值为JDK安装根目录,我的JDK安装到了C:\Program Files\Java\jdk1.8.0_101。
添加JAVA_HOME环境变量
4、“新建”(或编辑)一个名为“path”的环境变量,如果Path变量已经存在,则在变量值的最后面追加“;%JAVA_HOME%\bin;”。
注意不同的系统可能会有所不同,但是原理上一样;
5、“新建”一个名为“ClassPath”的环境变量,其值为“.;”
6、在控制台中输入“javac”如果出现Java的拽住信息,则表示JDK安装成功。
1.7 JDK和JRE
JDK(Java Development Kit),Java开发环境,要开发Java必须使用此环境。
JRE(Java Runtime Environment),Java运行时环境,运行Java程序时的必须环境。
JDK中包含了JRE。
1.8 第一个程序HelloWorld
用文本编辑器编写一个HelloWorld.java的文本文件(Java源程序)
/**
* 这是一个简单而经典的例子程序,在初级的Java编程书籍中,几乎都使用它。
* 它的功能是在屏幕上输出:Hello World!
* 程序的名字为:HelloWorld.Java
*/
import java.lang.*;
public class HelloWorld {
public static void main(String[] argc) {
System.out.println("Hello World!");
}
}
然后保存到一个文件夹中如”D:\JavaCode”中。
然后打开命令提示符(Win+R cmd)
红色的部分就是程序的输出部分
1.8.1 对HelloWorld的解释
/**
*/
这部分内容是注释内容,用来描述对程序的描述,主要功能、作者、文件信息等内容,此部分内容也可以出现在代码的行间,用以描述以下代码的主要功能。
Import java.util.; import是Java的关键字,说明该单词后跟的一个导入的包名(java.util.)
; Java代码,一个完成语句后一般以分号”;”作标识,以便系统可以识别每条语句。
Public Java的关键字,修改一段代码是什么访问权限的(以后会仔细讲)
Class Java关键字 说明后边跟的字符代表了一个类
HelloWorld 用户标识符(以后讲标识符——代号),类的名字,Java源代码的文件名以类名+“.java”命名,Java的文件名必须同Public限定的类名严格一致(区分大小写)。
public static void main(String[] argc) 这名话中,static Java关键字,静态的,void Java关键字 main Java虚拟机(JVM java.exe)所要调用的方法入口,()中的代码是执行这个main方法所使用的参数其中String
是引用类型的数据类型名称, argc 是用户数据标识符。 [] 代表的是数组的意思
在方法声明完成后 要接 “{“ 相当于流程图中的开始的意思,在方法的结尾要以 “}”结尾,相当于流程图的结束。
System.out.println(“Hello World!”);//这名话的意思调用System.out.println方法,在屏幕上打印“Hello World!”,相当于流程图中的平行四边形。System是一个类,out也是一个类,做为System类的一个变量出现,println是out类的一个方法。方法的调用,直接使用方法名+(),在()中把方法中所要使用的参数进行传入。
1.9 延伸阅读:
1.9.1 什么是环境变量
windows下面的环境变量有系统级变量和用户级变量,系统级变量是指所有用户都可使用,不管你用哪个用户登录,这些变量都是可以访问的。
用户级变量则是针对特定用户设置的变量,其他用户不可访问。
环境变量指的是当前用户或系统所使用的一些基本配置信息。
比如说你要执行 java 命令,你不设置环境变量path包括你的jdk安装路径,那系统去哪找你的java.exe文件。
如果执行某个命令,系统无法在当前文件夹里找到对应的.exe,那么系统就会去path包含的路径找挨个找看是否能知道对应的.exe,一旦找到第一个对应的.exe就运行命令,其他的路径下就不找了。如果找不到你就会看到“系统找不到某某命令”的提示。
其他的环境变量也一样的用途,只不过是用来存储一些信息用的,这些信息可以被系统使用,也可以被你的应用程序使用。
在我们设置的环境变量中曾设定了一个JAVA_HOME= C:\Program Files\Java\jdk1.8.0_101,当系统解析PATH中的%JAVA_HOME%\bin时,会用C:\Program Files\Java\jdk1.8.0_101代替JAVA_HOME,从而得到C:\Program Files\Java\jdk1.8.0_101\bin的一个路径,而我们要使用的javac.exe、java.exe等Java的一些程序,都在C:\Program Files\Java\jdk1.8.0_101\bin下。
1.9.2 命令提示符常用命令
cmd 是command的缩略格式,即命令控制台,Windows下称之为命令提示符,在这个窗口中键入命令,相当于在双击鼠标,系统会执行相关的操作,并将结果打印到控制台上,完成人机交互。
切换驱动器使用驱动器的字符+:enter来完成
如:D:会将当前使用的驱动器更改为D:盘
Help 所有常用的内部命令的提示
CD 进入目录(文件夹) 也可以使用CD 来完成目录的浏览
Md 新建目录
Rd 删除为空的目录
Dir 列出当前目录的内容
Dir *.java 列出所有扩展名为.java的文件名
Dir /? 此命令的帮助信息
Del 删除文件
Cd .. 返回上一级目录
Cd / 返回根目录
. 代表当前路径
.. 代表当前路径的父路径,即上一级路径。
1.9.3 PATH 与CLASSPATH
在Windows操作系统中,如果执行某个命令,系统无法在当前文件夹里找到对应的.exe,那么系统就会去path包含的路径找挨个找看是否能知道对应的.exe,一旦找到第一个对应的.exe就运行命令,其他的路径下就不找了。如果找不到你就会看到“系统找不到某某命令”的提示。
同理,当JVM执行某个类的字节码文件(.class)时,一般会需要其它的类的字节码文件来支持,如执行System.out.println()这个方法进行屏幕输出,这时就需要Java系统中的System类,这个类并不在当前的运行目录中,系统会按照CLASSPATH中设定的路径寻找相关的.class文件来寻找可用的类的字节码文件来支持当前程序的运行。(CLASSPATH这个环境变量对于1.6以后的JVM基本很少使用)。