Java概述及开发环境搭建精.docx
《Java概述及开发环境搭建精.docx》由会员分享,可在线阅读,更多相关《Java概述及开发环境搭建精.docx(17页珍藏版)》请在冰豆网上搜索。
Java概述及开发环境搭建精
第1章Java概述及开发环境搭建
通过本章的学习可以达到以下目标:
☑认识Java并了解其发展历史。
☑可以安装并配置Java开发环境。
☑掌握Java中Path及classpath属性的作用。
☑可以编写并运行一个简单的Java程序。
☑可以掌握Java的开发流程。
Java是一门程序设计语言,其本身的发展经过了一系列的过程。
本章将首先介绍Java的发展历程,让读者对Java有一个基本的认识,了解Java的主要作用,接着详细讲解Java开发环境的搭建,包括Java开发中一些基本的注意事项。
本章视频录像讲解时间为35分钟,源代码在光盘对应的章节下。
1.1认识Java
1.1.1什么是Java
Java是Sun(全称为StanfordUniversityNetwork,1982年成立,Sun公司的Logo如图1-1所示公司开发出来的一套编程语言,主设计者是JamesGosling(如图1-2所示,最早来源于一个叫Green的项目,这个项目原来的目的是为家用电子消费产品开发一个分布式代码系统,这样就可以通过网络对家用电器进行控制。
开始Sun的工程师们准备采用C++,但由于C++过于复杂,安全性差,最后决定基于C++开发一种新语言Oak(Java的前身,1991年出现,Oak是一种用于网络的、精巧而安全的语言,Sun公司曾以此投标过一个交互式电视项目,但结果被SGI打败。
于是当时的Oak几乎“无家可归”,恰巧这时MarkArdreesen开发的Mosaic和Netscape启发了Oak项目组成员,Sun的工程师们用Java编制了HotJava浏览器,得到了Sun公司首席执行官ScottMcNealy的支持,触发了Java进军Internet。
第1章Java概述及开发环境搭建
3
图1-1Sun公司Logo图1-2JamesGosling
Java语言发展到今天经历了一系列的过程,Java在1995年5月23日推出了JDK1.0版本,此版本标志着Java正式进军Internet的开始,在1998年对之前的JDK进行了升级并推出了JDK1.2的开发包,该版本加入了大量的轻量级组件包,从此之后Java被正式命名为Java2。
Java语言发展到今天经历了以下3个发展方向。
↘J2SE:
Java2PlatformStandardEdition。
包含构成Java语言核心的类,如数据库连
接、接口定义、输入/输出和网络编程。
↘J2ME:
Java2PlatformMicroEdition。
包含J2SE中一部分类,用于消费类电子产
品的软件开发,如呼机、智能卡、手机、PDA和机顶盒。
↘J2EE:
Java2PlatformEnterpriseEdition。
EnterpriseEdition(企业版包含J2SE中
的所有类,并且还包含用于开发企业级应用的类,如EJB、Servlet、JSP、XML和
事务控制,也是现在Java应用的主要方向。
虽然Java语言的发展方向有3个,但是这3门技术中最核心的部分是J2SE,而J2ME和J2EE是在J2SE基础之上发展起来的,3种技术的关系如图1-3所示。
另外要提醒读者的是,在2005年Java十周年大会之后这3门技术又重新更名:
↘J2SE更名为JAVASE。
↘J2ME更名为JAVAME。
↘J2EE更名为JAVAEE。
图1-33种技术的关系
1.1.2Java语言的特点
Java语言的许多有效的特性吸引着程序员们,下面介绍最主要的几个。
1.简洁有效
Java语言是一种相当简洁的“面向对象”程序设计语言,它省略了C++语言中所有的难以理解、容易混淆的特性,如头文件、指针、结构、单元、运算符重载和虚拟基础类等,更加严谨、简洁。
2.可移植性
对于一个程序员而言,写出来的程序如果不需要修改就能够同时在Windows、MacOS、UNIX等平台上运行,简直就是美梦成真,而Java语言就让这个原本遥不可及的事已经越来越近了。
使用Java语言编写的程序,只要做较少的修改,甚至有时根本不需修改即可在
Java开发实战经典
不同平台上运行。
4
第1章Java概述及开发环境搭建
3.面向对象
可以这么说,“面向对象”是软件工程学的一次革命,大大提升了人类的软件开发能力,是一个伟大的进步,是软件发展的一个重大的里程碑。
在过去的30年间,“面向对象”有了长足的发展,充分体现了其自身的价值,到现在已经形成了一个包含“面向对象的系统分析”、“面向对象的系统设计”和“面向对象的程序设计”的完整体系。
所以作为一种现代编程语言,是不能够偏离“面向对象”这一方向的,Java语言也不例外。
4.解释型
Java语言是一种解释型语言,相对于C/C++语言来说,用Java语言写出来的程序效率低,执行速度慢。
但它可以通过在不同平台上运行Java解释器,对Java代码进行解释,来实现“一次编写,到处运行”的目标。
为了达到目标,牺牲效率还是值得的,而且,现在的计算机技术日新月异,运算速度也越来越快,用户不会感到太慢。
5.适合分布式计算
Java语言具有强大的、易于使用的联网能力,非常适合开发分布式计算的程序。
Java应用程序可以像访问本地文件系统那样通过URL访问远程对象。
使用Java语言编写Socket通信程序比使用任何其他语言都简单。
而且它还十分适用于公共网关接口(CGI脚本的开发,另外还可以使用Java小应用程序(Applet、Java服务器页面(JavaServerPage,JSP、Servlet等手段来构建更丰富的网页。
6.拥有较好的性能
由于Java是一种解释型语言,所以它的执行效率相对就会慢一些,但由于Java语言采用了下面两种手段,使其拥有较好的性能。
↘Java语言源程序编写完成后,先使用Java伪编译器进行伪编译,将其转换为中间码(也称为字节码再解释。
↘提供了一种“准实时”(Just-in-Time,JIT编译器,当需要更快的速度时,可以使用JIT编译器将字节码转换成机器码,然后将其缓冲下来,这样速度就会更快。
7.健壮、防患于未然的特征
Java语言在伪编译时,做了许多早期潜在问题的检查,并且在运行时又做了一些相应的检查,可以说是一种最严格的“编译器”。
它的这种“防患于未然”的手段将许多程序中的错误都扼杀在“摇篮”之中,经常有许多在其他语言中必须通过运行才会暴露出来的错误,在编译阶段就被发现了。
另外,在Java语言中还具备了许多保证程序稳定、健壮的特性,有效地减少了错误,也使Java应用程序更加健壮。
8.具有多线程处理能力
线程是一种轻量级进程,是现代程序设计中必不可少的一种特性。
多线程处理能力使
5
Java开发实战经典
6程序具有更好的交互性、实时性。
Java在多线程处理方面性能超群,具有让设计者惊喜的强大功能,而且在Java语言中进行多线程处理也很简单。
9.具有较高的安全性
Java语言在设计时在安全性方面考虑得很仔细,做了许多探究,使Java语言成为目前最安全的一种程序设计语言。
尽管Sun公司曾经许诺过:
“通过Java可以轻松构建出防病毒、防黑客的系统”,但就在JDK(JavaDevelopmentKit1.0发布不久后,美国Princeton(普林斯顿大学的一组安全专家发现了Java1.0安全特性中的第一例错误。
从此,Java安全方面的问题开始被关注。
不过至今所发现的安全隐患都很微不足道,而且Java开发组还宣称,他们对系统安全方面的Bugs非常重视,会对这些被发现的Bugs立即进行修复。
另外,由于Sun公司开放了Java解释器的细节,所以有助于通过各界力量共同发现、防范、制止这些安全隐患。
10.是一种动态语言
Java是一种动态的语言,这表现在以下两个方面:
↘在Java语言中,可以简单、直观地查询运行时的信息。
↘可以将新代码加入到一个正在运行的程序中。
11.是一种中性结构
Java编译器生成的是一种中性的对象文件格式,也就是说,Java编译器通过伪编译后,将生成一个与任何计算机体系统无关的“中性”的字节码。
这种中性结构其实并不是Java首创的,在Java出现之前UCSDPascal系统就已在一种商业产品中做到了这一点,另外,在UCSDPascal之前也有这种方式的先例,如在NiklausWirth实现的Pascal语言中就采用了这种结构降低一些性能,以换取更好的可移植性和通用性的方法。
Java的这种字节码经过了许多精心的设计,使其能够很好地兼容于当今大多数流行的计算机系统,在任何机器上都易于解释,易于动态翻译成为机器代码。
1.1.3Java程序的运行机制和Java虚拟机
计算机高级语言类型主要有编译型和解释型两种,Java是两种类型的集合,在Java中处理代码的过程如图1-4所示。
图1-4Java程序的运行机制
第1章Java概述及开发环境搭建
7
从图1-4中可以看出,在Java中源文件名称的后缀为.java,之后通过编译使*.java的文件生成一个*.class文件,在计算机上执行*.class文件,但是此时执行*.class的计算机并不是一个物理上可以看到的计算机,而是Java自己设计的一个计算机——JVM,Java也是通过JVM进行可移植性操作的。
在Java中所有的程序都是在JVM(JavaVirtualMachine上运行的。
JVM是在一台计算机上由软件或硬件模拟的计算机。
Java虚拟机(JVM读取并处理经编译过的、与平台无关的字节码class文件。
Java解释器负责将Java虚拟机的代码在特定的平台上运行。
JVM的基本原理如图1-5所示。
从图1-5中可以发现,所有的*.class文件都是在JVM上运行的,即*.class
文件只需要认识JVM,由JVM再去适
应各个操作系统。
如果不同的操作系统
安装上符合其类型的JVM,那么以后程序无论到哪个操作系统上都是可以正确执行的。
提示:
关于Java可移植性的简单理解。
有些读者可能很难理解以上的解释,其实这个过程就类似于下面的一种情景:
现在有一个中国富商,他同时要和美国、韩国、俄罗斯、日本、法国、德国等几个国家洽谈生意,可是他不懂这些国家的语言,所以他针对于每个国家请了一个翻译,他说的话就只对翻译说,不同的翻译会将他说的话翻译给不同国家的客户,这样富商只需要说一句话给翻译,那么就可以同几个国家的客户沟通了。
1.2Java开发环境搭建
Java的开发环境主要使用JDK,本书中使用的JDK版本是JDK1.6
版本。
读者可以直接从Sun公司的官方网站(如图1-6所示中下载此版本,网址为。
图1-6Sun公司网站首页
图1-5JVM基本原理
Java开发实战经典
8
1.2.1JDK的安装与配置
安装JDK分为以下两个步骤:
(1首先要准备好JDK的安装文件jdk-6u11-windows-i586-p.exe。
(2配置环境变量Path。
在安装JDK时会让用户选择JDK和JRE的安装目录,本次安装目录使用的是默认的安装目录,如图1-7~图1-10所示。
JDK安装完成之后,即可看到如图1-10所示的安装文件夹,其中的bin文件夹是将来要使用的各种Java命令,但是这些命令本身并不在Windows环境之中,所以如果要想使用这些命令,则首先必须在Windows中注册此命令。
图1-7选择JDK的安装目录图1-8选择JRE的安装目录
图1-9JDK和JRE安装完成图1-10JDK安装后目录设置Path的流程为:
选择【我的电脑】→【属性】命令,打开【系统属性】对话框,如图1-11所示,选择【高级】选项卡,单击【环境变量】按钮,打开【环境变量】对话框,在其中可以编辑Path信息,如图1-12所示。
在编辑Path时,可以直接设置Java的安装路径。
即在【环境变量】对话框中单击【系统变量】栏中的【编辑】按钮,弹出【编辑系统变量】对话框,在【变量值】文本框的最后加上路径,在加之前使用“;”将之前的路径分隔开,如加入内容“;D:
\Java\jdk1.6.0_11\bin”,如图1-13所示。
设置完后单击【确定】按钮即可保存设置,然后启动cmd命令行方式,输入javac,如
第1章Java概述及开发环境搭建
9
果出现如图1-14所示的内容,则表示JDK配置成功。
图1-11【系统属性】对话框图1-12【环境变量】对话框
图1-13设置path路径图1-14JDK配置成功演示注意1:
Path修改之后要重新启动命令行方式。
有些读者在进行环境设置时可能会出现此命令不是系统内部命令的提示,有可能造成这种问题的原因是,在配置环境属性之前命令行方式已经启动,之后再配置的Path路径,则此环境肯定是无法立即生效的,此时可以重新启动命令行方式,即可把新的设置读取进来。
注意2:
javac命令的作用。
javac.exe是Java本身提供的编译命令,主要目的是用来将*.java文件编译成*.class文件,此命令本身不属于Windows,所以在使用时需要单独配置,此命令的具体用法将在后面介绍。
1.2.2编写第1个Java程序
Java程序分为两种类型,一种是Application程序,另外一种是Applet程序,其中有main方法的程序主要都是Application程序,本书也主要使用Application程序进行讲解,Applet程序主要应用在网页编程上,现在已经基本上不再使用,所以本书不再作任何介绍。
本书还是以输出“HelloWorld!
!
”字符串为第1个程序,代码如下所示。
范例:
Hello.java
publicclassHello{
publicstaticvoidmain(Stringargs[]{
Java开发实战经典
10
System.out.println("HelloWorld!
!
";
}
}
将上面的程序保存为Hello.java,然后按照以下步骤进行操作:
(1在命令行方式下,进入到程序所在的目录,执行javacHello.java命令,对程序进行编译,编译完成之后可以发现在目录之中多了一个Hello.class的文件,此文件就是最终要使用的文件。
(2程序编译之后,输入javaHello,执行程序,
即可得到程序的输出结果。
具体的操作过程可以参考图1-15完成。
程序输出结果:
HelloWorld!
!
程序说明:
在所有的JavaApplication中,所有程序都是从publicstaticvoidmain(Stringargs[]开始运行的,刚接触的读者可能会觉得有些难记,在后面的章节中将会详细讲解main方法的各个组成部分。
此时读者如果对上面的程序不明白也没有关系,只要将程序在电脑中输入,然后按照步骤编译、执行即可,在这里只是让读者对JavaApplication程序有一个初步印象,因为以后所有的内容讲解的都将围绕JavaApplication程序进行。
提示:
注意程序中的大小写。
读者在编写以上程序时一定要注意字母的大小写问题,因为在Java中是严格区分大小写的。
另外,为了方便代码的运行,建议在此处按照本书所提供的代码样式进行编写。
1.2.3classpath属性的作用
在Java中可以使用setclasspath命令指定Java类的执行路径。
下面通过一个例子来了解classpath的作用,假设这里的Hello.class类位于f:
\test目录下。
在D盘的命令行窗口执行下面的指令:
setclasspath=f:
\test
然后在D盘根目录下执行javaHello命令,如图1-16所示。
由上面的输出结果可以发现,虽然在D盘中并
没有Hello.class文件,但是也可以用javaHello执行
Hello.class文件,之所以会有这种结果,就是因为
在操作中使用了setclasspath命令将类的查找路径
指向了f:
\test目录,所以在运行时,会从f:
\test
目录
查找所需要的类。
图1-15
运行Hello.java程序
图1-16classpath设置
第1章Java概述及开发环境搭建
提示:
classpath与JVM的关系。
classpath主要指的是类的运行路径,实际上在读者执行Java命令时,对于本地的操作系统来说就意味着启动了一个JVM,那么JVM在运行时需要通过classpath加载所需要的类,而默认情况下classpath是指向当前目录(当前命令行窗口所在的目录的,所以会从此目录下直接查找。
可能有些读者在按照上述的方法操作时发现并不好用,这里要告诉读者的是,在设置classpath时,最好将classpath指向当前目录,即所有的class文件都从当前文件夹中开始查找。
✆提问:
能否通过classpath在不同的文件夹中编译Java程序?
现在要编译一个*.java的程序,能不能通过设置classpath在不同的目录中进行呢?
例如,在E盘下建立一个Hello.java,然后在C下编译。
回答:
classpath在编译时不起作用。
classpath属性只在Java运行时起作用,而在Java编译时,如果命令行所在的目录不是*.java所在的目录,则应该输入完整的路径名称,即“javace:
\Hello.java”。
1.3本章要点
1.Java实现可移植性靠的是JVM,JVM就是一台虚拟的计算机,只要在不同的操作系统上植入不同版本的JVM,Java程序就可以在各个平台上移植,做到“一次编写,处处运行”。
2.Java中程序的执行步骤为:
①使用javac将一个*.java文件编译成*.class文件。
②使用Java可以执行一个*.class文件。
3.每次使用Java命令执行一个class时,都会启动JVM,JVM通过classpath给出的路径加载所需要的类文件,可以通过setclasspath设置类的加载路径。
4.Java程序主要分为两种,即JavaApplication和JavaApplet程序,JavaApplet主要是在网页中嵌入的Java程序,基本上已经不再使用了,而Application是指有main方法的程序,本书主要讲解Application程序。
1.4习题
1.在屏幕上输出“我喜欢学习Java”的信息。
2.在屏幕上打印出以下图形:
*************************************
*********Java程序设计*********
*************************************
11