第1章 Java 概述.docx
- 文档编号:5016477
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:13
- 大小:246.88KB
第1章 Java 概述.docx
《第1章 Java 概述.docx》由会员分享,可在线阅读,更多相关《第1章 Java 概述.docx(13页珍藏版)》请在冰豆网上搜索。
第1章Java概述
第一章Java概述
写在这章开始部分:
1、本章的一、二、三、四、五部分都是让你了解的,你阅读一下就可以了;如果你在获得这个文档之前已经对Java有了一定的了解,就跳过这部分吧;
2、本章的六、七、八部分是要做的,也是这章的重点,你一定要试着去完成它,不论遇到什么问题都要去完成。
万事开头难!
你无法回避!
下面我们就开始从头说吧:
一、计算机语言发展概述
计算机语言的发展是一个不断演化的过程,其根本的推动力就是抽象机制更高的要求,以及对程序设计思想的更好的支持。
具体的说,就是把机器能够理解的语言提升到也能够很好的模仿人类思考问题的形式。
计算机语言的演化从最开始的机器语言到汇编语言到各种结构化高级语言,最后到支持面向对象技术的面向对象语言。
1、计算机语言的发展历史:
二十世纪四十年代当计算机刚刚问世的时候,程序员必须手动控制计算机。
当时的计算机十分昂贵,唯一想到利用程序设计语言来解决问题的人是德国工程师楚泽(konradzuse)。
几十年后,计算机的价格大幅度下跌,而计算机程序也越来越复杂。
也就是说,开发时间已经远比运行时间来得宝贵。
于是,新的集成、可视的开发环境越来越流行。
它们减少了所付出的时间、金钱(以及脑细胞)。
只要轻敲几个键,一整段代码就可以使用了。
这也得益于可以重用的程序代码库。
随着c,pascal,fortran,等结构化高级语言的诞生,使程序员可以离开机器层次,在更抽象的层次上表达意图。
由此诞生的三种重要控制结构,以及一些基本数据类型都能够很好的开始让程序员以接近问题本质的方式去思考和描述问题。
随着程序规模的不断扩大,在60年代末期出现了软件危机,在当时的程序设计模型中都无法克服错误随着代码的扩大而级数般的扩大,以至到了无法控制的地步,这个时候就出现了一种新的思考程序设计方式和程序设计模型-----面向对象程序设计,由此也诞生了一批支持此技术的程序设计语言,比如eiffel,c++,java,这些语言都以新的观点去看待问题,即问题就是由各种不同属性的对象以及对象之间的消息传递构成。
面向对象语言由此必须支持新的程序设计技术,例如:
数据隐藏,数据抽象,用户定义类型,继承,多态等等。
2、计算机语言的发展现状:
目前通用的编程语言有两种形式:
汇编语言和高级语言。
汇编语言的实质和机器语言是相同的,都是直接对硬件操作,只不过指令采用了英文缩写的标识符,更容易识别和记忆。
用汇编语言所能完成的操作不是一般高级语言所能实现的,而且源程序经汇编生成的可执行文件不仅比较小,而且执行速度很快。
高级语言是目前绝大多数编程者的选择。
和汇编语言相比,它不但将许多相关的机器指令合成为单条指令,并且去掉了与具体操作有关但与完成工作无关的细节,例如使用堆栈、寄存器等,这样就大大简化了程序中的指令。
同时,由于省略了很多细节,编程者也就不需要有太多的专业知识。
高级语言主要是相对于汇编语言而言,它并不是特指某一种具体的语言,而是包括了很多编程语言,如目前流行的vb、vc、foxpro、delphi等,这些语言的语法、命令格式都各不相同。
高级语言所编制的程序不能直接被计算机识别,必须经过转换才能被执行,按转换方式可将它们分为两类:
解释类和编译类。
3、计算机语言的发展趋势:
面向对象程序设计以及数据抽象在现代程序设计思想中占有很重要的地位,未来语言的发展将不在是一种单纯的语言标准,将会以一种完全面向对象,更易表达现实世界,更易为人编写,其使用将不再只是专业的编程人员,人们完全可以用订制真实生活中一项工作流程的简单方式来完成编程。
下面是一张计算机语言发展图表,从中不难得出计算机语言发展的特性:
简单性
提供最基本的方法来完成指定的任务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序
面向对象
提供简单的类机制以及动态的接口模型。
对象中封装状态变量以及相应的方法,实现了模块化和信息隐藏;提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的方法,实现了代码的复用
安全性
用于网络、分布环境下有安全机制保证。
平台无关性
与平台无关的特性使程序可以方便地被移植到网络上的不同机器、不同平台。
4、计算机语言之父——尼盖德
尼盖德帮助因特网奠下了基础,为计算机业做出了巨大贡献。
尼盖德是奥斯陆大学的教授,因为发展了simula编程语言,为ms-dos和因特网打下了基础而享誉国际。
克里斯汀·尼盖德于1926年在奥斯陆出生,1956年毕业于奥斯陆大学并取得数学硕士学位,此后致力于计算机计算与编程研究。
1961年~1967年,尼盖德在挪威计算机中心工作,参与开发了面向对象的编程语言。
因为表现出色,2001年,尼盖德和同事奥尔·约安·达尔获得了2001年a.m.图灵机奖及其它多个奖项。
当时为尼盖德颁奖的计算机协会认为他们的工作为java,c++等编程语言在个人电脑和家庭娱乐装置的广泛应用扫清了道路,“他们的工作使软件系统的设计和编程发生了基本改变,可循环使用的、可靠的、可升级的软件也因此得以面世。
”
尼盖德因其卓越的贡献,而被誉为“计算机语言之父”,其对计算机语言发展趋势的掌握和认识,以及投身于计算机语言事业发展的精神都将激励我们向着计算机语言无比灿烂的明天前进。
二、Java发展历史
Java,是一种可以编写跨平台应用软件的面向对象的程序设计语言,由Sun(太阳微电子,SunMicrosystems)公司的JamesGosling等人于1990年代初开发。
它最初被命名为Oak,作为一种小家用电器的编程语言,来解决诸如电视机、电话、闹钟、烤面包机等家用电器的控制和通讯问题。
由于这些智能化家电的市场需求没有预期的高,Sun放弃了该项计划。
就在Oak几近夭折之时,随着Internet的发展,Sun看到了Oak在计算机网络上的广阔应用前景,于是改造了Oak,在1995年5月以"Java"的名称正式发布了。
Java伴随着Internet的迅猛发展而发展,逐渐成为重要的Internet编程语言。
Java编程语言的风格十分接近C++语言。
Java继承了C++语言面向对象技术的核心,舍弃了C++语言中的指针(以引用取代)、运算符重载、多重继承(以接口取代)等成分,增加了自动垃圾收集功能用于回收不再被引用的对象所占据的内存空间。
在J2SE1.5版本中Java又引入了泛型编程、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。
Java不同于一般的编译执行计算机语言和解释执行计算机语言。
它首先将源代码编译成字节码,然后依赖各种不同平台上的虚拟机来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台特性。
不过,这同时也在一定程度上降低了Java程序的运行效率。
Sun公司对Java编程语言的解释是:
Java编程语言是个简单、面向对象、分布式、解释性、健壮、安全与系统无关、可移植、高性能、多线程和动态的语言。
Java平台是基于Java语言的平台。
这样的平台目前非常流行,因此微软公司推出了与之竞争的.NET平台以及模仿Java的C#语言。
目前Java提供以下三个版本:
J2ME(Java2Platform,MicroEdition):
微型版的Java平台
J2SE(Java2Platform,StandardEdition):
标准版的Java平台,(必须先学这个)
J2EE(Java2Platform,EnterpriseEdition):
企业版的Java平台(之后学习这个平台)
了解一下Java的历史:
(不用记,估计连Java之父都不记得了,你记它有何用啊?
如果有人问你java什么时候有的,你别回答1840年就可以了!
)
1995年5月23日,Java语言诞生
1996年1月,第一个JDK-JDK1.0诞生
1996年4月,10个最主要的操作系统供应商申明将在其产品中嵌入JAVA技术
1996年9月,约8.3万个网页应用了JAVA技术来制作
1997年2月18日,JDK1.1发布
1997年4月2日,JavaOne会议召开,参与者逾一万人,创当时全球同类会议规模之纪录
1997年9月,JavaDeveloperConnection社区成员超过十万
1998年2月,JDK1.1被下载超过2,000,000次
1998年12月8日,JAVA2企业平台J2EE发布
1999年6月,SUN公司发布Java的三个版本:
标准版、企业版和微型版(J2SE、J2EE、J2ME)
2000年5月8日,JDK1.3发布
2000年5月29日,JDK1.4发布
2001年6月5日,NOKIA宣布,到2003年将出售1亿部支持Java的手机
2001年9月24日,J2EE1.3发布
2002年2月26日,J2SE1.4发布,自此Java的计算能力有了大幅提升
2004年9月30日18:
00PM,J2SE1.5发布,是Java语言的发展史上的又一里程碑事件。
为了表示这个版本的重要性,J2SE1.5更名为J2SE5.0
三、Java语言的特点
Java是一种简单的面象对象的分布式的解释的健壮的安全的结构中立的可移植的性能很优异的多线程的动态的语言。
1.简单
Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。
Java语言的简单性主要体现在以下三个方面:
1) Java的风格类似于C++,因而C++程序员是非常熟悉的。
从某种意义上讲,Java语言是C及C++语言的一个变种,因此,C++程序员可以很快就掌握Java编程技术。
2) Java摒弃了C++中容易引发程序错误的地方,如指针和内存管理。
3) Java提供了丰富的类库。
2.面向对象
面向对象可以说是Java最重要的特性。
Java语言的设计完全是面向对象的,它不支持类似C语言那样的面向过程的程序设计技术。
Java支持静态和动态风格的代码继承及重用。
单从面向对象的特性来看,Java类似于Small Talk,但其它特性、尤其是适用于分布式计算环境的特性远远超越了Small Talk。
3.分布式
Java包括一个支持HTTP和FTP等基于TCP/IP协议的子库。
因此,Java应用程序可凭借URL打开并访问网络上的对象,其访问方式与访问本地文件系统几乎完全相同。
为分布环境尤其是Internet提供的动态内容无疑是一项非常宏伟的任务,但Java的语法特性却使我们很容易地实现这项目标。
4.健壮
Java致力于检查程序在编译和运行时的错误。
类型检查帮助检查出许多开发早期出现的错误。
Java自已操纵内存减少了内存出错的可能性。
Java还实现了真数组,避免了覆盖数据的可能。
这些功能特征大大缩短了开发Java应用程序的周期。
Java提供Null指针检测数组边界检测异常出口字节代码校验。
5.结构中立
另外,为了建立Java作为网络的一个整体,Java将它的程序编译成一种结构中立的中间文件格式。
只要有Java运行系统的机器都能执行这种中间代码。
现在,Java运行系统有Solaris2.4(SPARC),Win32系统(Windows95和WindowsNT)等.Java源程序被编译成一种高层次的与机器无关的byte-code格式语言,这种语言被设计在虚拟机上运行,由机器相关的运行调试器实现执行。
6.安全
Java的安全性可从两个方面得到保证。
一方面,在Java语言里,象指针和释放内存等C++功能被删除,避免了非法内存操作。
另一方面,当Java用来创建浏览器时,语言功能和浏览器本身提供的功能结合起来,使它更安全。
Java语言在你的机器上执行前,要经过很多次的测试。
它经过代码校验,检查代码段的格式,检测指针操作,对象操作是否过分以及试图改变一个对象的类型。
7.可移植的
这句话一直是Java程序设计师们的精神指标,也是Java之所以能够受到程序设计师们喜爱的原因之一,最大的功臣就是JVM的技术。
大多数编译器产生的目标代码只能运行在一 种CPU上(如Intel的x86系列),即使那些能支持多种CPU的编译器也不能同时产生适合多 种CPU的目标代码。
如果你需要在三种CPU( 如x86、SPARC 和MIPS)上运行同一程序, 就必须编译三次。
但JAVA编译器就不同了。
JAVA编译器产生的目标代码(J-Code) 是针对一种并不 存在的CPU--JAVA虚拟机(JAVA Virtual Machine),而不是某一实际的CPU。
JAVA虚拟机能掩盖不同CPU之间的差别,使J-Code能运行于任何具有JAVA虚拟机的机器上。
作为一种虚拟的CPU,JAVA 虚拟机对于源代码(Source Code) 来说是独立的。
我们不仅可以用JAVA语言来生成J-Code,也可以用Ada95来生成。
事实上,已经有了针对若干种源代码的J-Code 编译器,包括Basic、Lisp 和Forth。
源代码一经转换成J-Code以后,JAVA虚拟机就能够执行而不区分它是由哪种源代码生成的。
这样做的结果就是CPU可移植性。
将源程序编译为J-Code的好处在于可运行于各种机器上,而缺点是它不如本机代码运行的速度快。
四、Java语言的平台划分
Java平台由Java虚拟机(JavaVirtualMachine)和Java应用编程接口(ApplicationProgrammingInterface、简称API)构成。
Java应用编程接口为Java应用提供了一个独立于操作系统的标准接口,可分为基本部分和扩展部分。
在硬件或操作系统平台上安装一个Java平台之后,Java应用程序就可运行。
现在Java平台已经嵌入了几乎所有的操作系统。
这样Java程序可以只编译一次,就可以在各种系统中运行。
Java应用编程接口已经从1.1x版发展到1.2版。
目前常用的Java平台基于Java1.5,最近版本为Java1.7。
Java分为三个体系JavaSE(Java2PlatformStandardEdition,java平台标准版),JavaEE(Java2Platform,EnterpriseEdition,java平台企业版),JavaME(Java2PlatformMicroEdition,java平台微型版)。
*JavaSE(JavaPlatform,StandardEdition)。
JavaSE以前称为J2SE。
它允许开发和部署在桌面、服务器、嵌入式环境和实时环境中使用的Java应用程序。
JavaSE包含了支持JavaWeb服务开发的类,并为JavaPlatform,EnterpriseEdition(JavaEE)提供基础。
*JavaEE(JavaPlatform,EnterpriseEdition)。
这个版本以前称为J2EE。
企业版本帮助开发和部署可移植、健壮、可伸缩且安全的服务器端Java应用程序。
JavaEE是在JavaSE的基础上构建的,它提供Web服务、组件模型、管理和通信API,可以用来实现企业级的面向服务体系结构(service-orientedarchitecture,SOA)和Web2.0应用程序。
*JavaME(JavaPlatform,MicroEdition)。
这个版本以前称为J2ME。
JavaME为在移动设备和嵌入式设备(比如手机、PDA、电视机顶盒和打印机)上运行的应用程序提供一个健壮且灵活的环境。
JavaME包括灵活的用户界面、健壮的安全模型、许多内置的网络协议以及对可以动态下载的连网和离线应用程序的丰富支持。
基于JavaME规范的应用程序只需编写一次,就可以用于许多设备,而且可以利用每个设备的本机功能。
2009年04月20日,oracle(甲骨文)宣布收购sun,之后以74亿美金成功收购。
五、Java虚拟机:
(JavaVirtualMachine)简称JVM
Java虚拟机是一个想象中的机器,在实际的计算机上通过软件模拟来实现。
Java虚拟机有自己想象中的硬件,如处理器、堆栈、寄存器等,还具有相应的指令系统。
Java语言的一个非常重要的特点就是与平台的无关性。
而使用Java虚拟机是实现这一特点的关键。
一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。
而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。
Java语言使用模式Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。
Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。
JVM执行过程图
六、Java开发环境的搭建
1、JDK的安装与配置
在进行Java开发之前,必须先要安装JDK。
如果没有JDK的话,可以到SUN的官方网站
图1-84 SUN公司官方网站上的下载页面
我们进入DevelopmentKits)”链接进入JDK的下载页面。
我们选择Java2PlatformStandardEdition(J2SE)forwindows,单击右边的“download”按钮即可下载,如图1-85所示。
图1-85 JDK下载页面
下载到了我们本地计算机之后就可以安装了。
单击这个文件我们就可以进入安装界面了,如图1-86所示。
图1-86 J2SDK的安装界面
接下来就是要选择安装在机器硬盘中的目录,单击“Change…”按钮就可以改变安装目录,这里我们不需要更改目录,用默认的安装路径即可。
当我们单击“安装”按钮后,会显示“下一步”按钮,当安装完成之后,就会显示如图1-87所示的对话框,单击“完成”按钮就可以结束JDK的安装了。
图1-87 JDK完成安装
这样JDK就算是安装完成了,不过对JDK有很多要设置的地方,在后面会详细讲解。
2、环境变量的设置
现在,我们已经把JDK环境搭建所用到的软件安装完了。
不过这个时候仍然不可以使用,必须要设定一些环境变量之后才能够使用Java环境。
首先,我们点击“我的电脑”的右键,选择“属性”。
就进入了“系统属性”的页面,然后选择“高级”按钮,如图1-96所示。
图1-96进入系统属性的“高级”页面
点击“高级”我们就进入了系统属性的高级设置页面了,进入之后,我们点击该页面下方的“环境变量”设置按钮,如图1-96所示。
点击“环境变量”就可以对当前我们的电脑的环境变量设置了,如图1-97所示。
不过这里设置环境变量有两个地方,一个是“Administrator的用户变量”,另一个是“系统变量”。
这里我们只需要对“系统变量”进行设置就可以了。
图1-97设置“系统变量”
下面进入最关键的时候了,我们需要对系统变量进行设置,设置的过程分为四个步骤,他们分别是:
(1)、点击“环境变量”中的“新建”按钮,新建一个环境变量。
在“变量名”中我们填入“CLASSPATH”;而在“变量值”中我们填入“.;C:
\ProgramFiles\Java\jdk1.5.0_04\lib\tools.jar;如图1-98所示,最后点击“确定”按钮既可。
图1-98设置CLASSPATH环境变量
设置Path环境变量,path环境变量的值:
C:
\ProgramFiles\Java\jdk1.5.0_04\bin,根据你的Java安装目录与这个值可能有所差别。
图1-100 选择Path环境变量
图1-101修改Path环境变量
这样,我们就把环境变量给设置完了。
之后,我们在点击“环境变量”的“确定”按钮,最后在点击“系统属性”的“确定”按钮就全部完成了。
七、我的第一个Java程序
1、使用文本编辑器(比如:
/* HelloWorld.java */
public class HelloWorld {
public static void main(String arg[]) {
System.out.println("Hello, World!
");
}
}
说明:
以上是6行代码,对于初学者尤其要注意大小写!
!
!
无论是文件名“HelloWorld.java”、类名“HelloWorld”、命令行“javac HelloWorld.java”与“java HelloWorld”都要注意。
Java的语法与C语言类似。
2、开启一个DOS窗口,CD(就是跳转/Change Directory)到HelloWorld.java所在的目录中
c:
\>cd \test
c:
\test>_
说明:
“开启DOS窗口”的方法是:
用鼠标依次单击屏幕左下角的“开始”按钮->程序->附件->“MS DOS窗口”或“命令提示符”,就会出现DOS命令行的黑窗口,在这个黑的DOS窗口与全屏的DOS界面相互切换使用组合键“Alt+Enter”,退出此窗口使用“exit”命令或按窗口右上角的“×”
3、编译HelloWorld.java为HelloWorld.class
c:
\test>javac HelloWorld.java
说明:
如果成功执行,Java编译程序javac.exe就会读取Java源文件“C:
\test\HelloWorld.java”,进行分析后生成类文件“C:
\test\HelloWorld.class”,所以此时在c:
\test下就会有“HelloWorld.java”和刚刚编译生成的“HelloWorld.class”这两个文件。
4、运行HelloWorld.class
c:
\test>java HelloWorld
Hello, World!
c:
\test>_
如果看到显示:
Hello, World!
恭喜你,第一个java程序运行成功了!
记住这个日子,因为此时真正开启了你的Java之旅。
对以上六行程序做一个简单的解释,当然,即使解释之后也许你还是一头雾水,这个没关系,因为只是个开始,之后的一段时间我们会逐步地熟悉他们。
:
)
❑符号/**/指示中间的语句是该程序中的注释。
多行注释以/*开始,以*/结束。
单行注释以//开始,以行末结束
java文档注释使用/***/
❑关键字class声明类的定义,还帮助编译器理解它是一个类的声明
❑整个类及其所有成员都是在一对大括号中(即{和}之间)定义的。
它们标志着类定义块的开始和结束
❑程序从main()方法开始执行,是所有Java应用程序的起始点
❑关键字public是一个访问说明符,控制类成员的可见
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第1章 Java 概述