《Java第1章Java语言概述.ppt》由会员分享,可在线阅读,更多相关《Java第1章Java语言概述.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章Java语言概述高荣 2015年3月11日内容提要Java语言是目前十分流行的面向对象程序设计语言。它具有简单性、平台无关性、安全性、分布性等许多优点,使它不但确立了在网络编程和面向对象编程中的主导地位,而且在移动设备和企业应用的开发中也有广泛应用。2014年CSDN编程语言调查主要的开发软件类型是:互联网后端、企业应用及移动应用客户端开发者面向的主要操作系统开发者面向的系统主要是Windows、Linux和Windows Server开发者的第一编程语言榜首是Java 第二语言榜首JavaScript调查结果显示,第一编程语言排名前三的是Java、C#、C+。其中Java使用者比例最高
2、,为42.82,是C#的两倍还要多。紧跟其后的是C#,比例为17.33,而排名第三的C+则有14.35的比例。在第二编程语言中,Java也有很好的表现,不过使用最多的语言却是JavaScript,比例为27.81,Java排名第二,为16.97,经典的C+比例则为15.90。不论是第一编程语言,还是第二编程,PHP和Objectiver-C也都有较稳定的使用者。两大阵营动态语言强类型语言(静态类型语言)是指需要进行变量/对象类型声明的语言,一般情况下需要编译执行。例如C/C+/Java/C#静态语言弱类型语言(动态类型语言)是指不需要进行变量/对象类型声明的语言,一般情况下不需要编译(但也有编
3、译型的)。例如PHP/ASP/Ruby/Python/Perl/ABAP/SQL/JavaScript/Unix Shell等等。三大编程流派面向过程面向对象函数式编程本章要点本章首先介绍Java语言的起源和发展历程,然后介绍面向对象编程的产生和优势,接下来讲解如何开发Java程序以及字节码和虚拟机,最后介绍Java语言的关键字和标识符。1.1 Java起源与发展1.1.1 Java1.1.1 Java的起源的起源1.1.2 Java1.1.2 Java的的发发展展历历程程1.1.3 Java1.1.3 Java语语言的特点言的特点1.1.1 Java的起源的起源Java语言最初是由美国Sun
4、 Microsystems公司的James Gosling等人开发的一种面向对象程序设计语言。Java语言于1995年5月23日正式发布。Java语言具有小巧、安全、平台无关以及可以开发一种称为Applet的程序的特点,该语言的发布立即引起巨大轰动。IBM、Novell、Oracle、Borland以及Microsoft公司纷纷购买了Java的使用许可。1.1.2 Java的发展历程的发展历程多年来,Java语言不断发展、演化和修订,使它一直站在计算机程序设计语言的前沿。Java 2的标准版称为J2SE(Java 2 Platform Standard Edition)。Java的下一个升级是
5、J2SE 1.3,它是Java 2版本首次较大的升级。它增强了一些已有的功能。J2SE 1.4进一步增强了Java,该版本包括一些重要的新功能,如链式异常、基于通道的I/O,以及assert关键字。1.1.2 Java的发展历程的发展历程J2SE 5,它是Java的又一次大的变革。该版本中的新功能有:枚举类型静态导入增强的for循环自动装箱/自动拆箱可变参数的方法泛型注解1.1.2 Java的发展历程的发展历程Java的最新版本是Java SE 8,对应的Java开发工具包是JDK8,其内部版本号是1.8。本课程将主要介绍Java SE 7中增加的新功能:二进制整数字面量在数值字面量中使用下划
6、线用String对象控制switch语句创建泛型实例使用菱形运算符使用一个catch捕获多个异常使用try-with-resources的try语句实现自动资源管理1.1.3 Java语言的特点语言的特点Java是简单的Java模仿了C+,但进行了一定的简化和改进。Java语言实现了内存空间的自动分配和回收。在语法方面,Java语言的概念要少于C+。清晰的语法使得Java程序容易编写和阅读。Java是面向对象的Java的核心是面向对象程序设计(OOP)。Java语言可以说是纯面向对象的语言,也支持面向对象的主要特征,如封装性、继承性以及多态性等。Java是分布的Java语言提供了强大的网络编程
7、的支持,它比C+更适合于网络编程。Java是一种适合Internet和分布式环境的技术,所以有人说Java就是网络编程语言。Java是解释型的所谓解释执行是指Java程序并不是将源程序编译成机器码,而是编译成一种称为字节码的中间代码,然后这种中间代码只有在Java虚拟机上才能运行。Java是平台独立的用Java编写的程序编译成字节码后不依赖于任何平台,无需修改就可在任何平台上运行,只要这种平台上安装了Java虚拟机即可。Java是可移植的Java程序不用重新编译就能在任何平台上运行,从而具有很强的可移植性。在一个平台上编写的程序可以不用修改就能在各种平台上运行,真正实现“一次编写,到处运行”(
8、Write Once,Run Everywhere)。Java是健壮的Java语言是强类型语言,它不但在编译时检查代码,而且在运行时也检查代码。这就需要程序员编写异常处理的代码,从而可以进一步提高程序的健壮性。Java是安全的Java不支持指针数据类型,不允许直接对内存操作。Java还提供了内存管理机制,即通过自动的“垃圾回收”功能清除内存垃圾。Java语言除语言本身加强了安全性外,其运行环境也提供了安全性保障机制。Java是高性能的Java语言的字节码经过仔细设计,很容易使用即时编译技术(Just In Time,JIT)将字节码直接转换成高性能的本机代码。Java是多线程的多线程是程序同时
9、执行多个任务的能力。Java内在支持多线程编程,因而用Java编写的应用程序可以同时执行多个任务。多线程技术在图形用户界面(GUI)和网络程序设计中非常有用。Java是动态的Java程序带有多种运行时类型信息,用于运行时校验和解决对象访问问题。这使得在一种安全的、有效的方式下动态地连接代码成为可能,类仅在需要时才被链接。对Java小应用程序来说,在运行时系统中,字节码内的小段程序可以动态地更新。1.2 面向对象编程概述1.2.1 OOP1.2.1 OOP的的产产生生1.2.2 OOP1.2.2 OOP的的优势优势1.2.3 OO1.2.3 OO的主要的主要应应用用1.2.1 OOP的产生的产生
10、面向对象程序设计(Object Oriented Programming,OOP)是一种功能强大的设计方法。广义上讲,一个程序可以用下面两种方法组织:一是围绕代码,二是围绕数据。面向对象围绕数据来组织程序。在面向对象语言中,需要定义数据和作用于数据的例程。所有OOP语言,包括Java在内,都支持三个特性:封装、多态性和继承。1.2.2 OOP的优势的优势易维护(maintainability)现代软件规模往往都十分巨大,一个系统有上百万行的代码已是很平常的,这样就会给开发者带来很多问题。采用OOP方法就可以很容易地使程序模块化,模块是可以继承的,因为类本身就是一个模块。好的设计应该允许类包含类
11、似的功能性和有关数据。OOP中经常用到的一个术语是耦合,它表示两个模块之间的关联程度。不同部分之间的松耦合会使代码更容易实现重用,这是OOP的另一个优势。可重用(resusability)可重用是指之前写好的代码可以被代码的创建者或需要该代码功能的其他人重用。因此,OOP语言通常提供一些预先设计好的类库供开发员使用。Java就提供了几百个类库或API(应用编程接口),可以大大缩短开发时间。可重用性不仅适用于重用类和其他类型的代码,在OOP系统中设计应用程序时,针对OOP设计问题的解决方案也可以重用,这些解决方案称为设计模式,为了便于使用,每种设计模式都有一个名字。1.2.2 OOP的优势的优势
12、可扩展(extensibility)可扩展是指一种软件在投入使用之后,其功能可以被扩展或增强。在OOP中,可扩展性主要通过继承来实现。可以扩展现有的类,对它添加一些方法和数据,或者修改不适当的方法的行为。如果某个基本功能需要多次使用,但又不想让类提供太具体的功能,就可以设计一个泛型类,以后可以对它进行扩展,使它能够提供特定于某个应用程序的功能。1.2.2 OOP的优势的优势1.2.3 OO的主要应用的主要应用面向对象分析(Object Oriented Analysis,OOA):是指了解和分析问题域所涉及的对象、对象间的关系和作用。面向对象设计(Object Oriented Design,
13、OOD):设计各个对象应做些什么。面向对象编程(Object Oriented Programming,OOP):是指软件功能的编码实现,实现在OOD阶段所规定的各个对象所应完成的任务。1.3 简单的Java程序用Java可开发下面类型的程序:控制台和窗口应用程序。在浏览器中执行的Java小应用程序。在服务器上运行的Servlet、JSP、JSF以及其他Java EE标准支持的基于Web的应用程序。嵌入式应用程序,如在Android系统下运行的程序。本课程只讨论控制台和窗口应用程序。1.3 简单的Java程序1.3.1 JDK的下载与安装1.3.2 第一个简单的程序1.3.3 第一个程序分析
14、1.3.4 集成开发环境1.3.1 JDK的下载与安装的下载与安装在编写和运行Java程序之前,必须在计算机上安装Java开发包(Java Development Kit,JDK)。JDK可以从Oracle官方网站免费下载。JDK可从免费下载。找到下载页,根据计算机的系统不同下载相应的文件,按照指示安装即可。1.3.1 JDK的下载与安装的下载与安装JDK中包含两个主要工具,一是Java编译器javac,第二个是Java解释器java。JDK是命令行工具。Java编程需要从文档中查看有关的类库。从下面地址下载Java API文档并安装:在线API文档:1.3.2 第一个简单的程序第一个简单的程
15、序 程序Welcome.java/*文件名必须为:Welcome.java*/public class Welcome public static void main(String args)/打印输出一行文本 System.out.println(Welcome to Java World!);1.3.2 第一个简单的程序第一个简单的程序程序1.1 Welcome.java1.3.2 第一个简单的程序第一个简单的程序开发Java程序通常分三步:编辑源程序;编译源程序;执行程序。编辑器Java编译器Java解释器Java调试器程序输出源代码.java字节码.class1.3.2 第一个简单的程
16、序第一个简单的程序1.编辑源程序编辑Java源程序可以使用任何文本编辑器,也可以使用专门的集成开发工具。这里使用Windows的记事本编写源程序源程序输入后,选择【文件】|【保存】命令,打开“另存为”对话框,在“保存在”列表框中选择文件的保存位置,如存在D:study目录中,在“文件名”文本框中输入源程序文件名,如“Welcome.java”。启动命令行窗口,进入D:study,用DIR命令,查看到文件Welcome.java被保存到磁盘上1.3.2 第一个简单的程序第一个简单的程序2.编译生成字节码需要将Welcome.java源文件编译成字节码(byte code)文件。编译源文件需要使用
17、JDK的javac命令,如下所示:D:studyjavac javac Welcome.java若源程序没有语法错误,该命令执行后返回到命令提示符,编译成功。在当前目录下产生一个Welcome.class字节码文件,该文件的扩展名为.class,主文件名与程序中的类名相同,该文件也称为类文件。可以使用DIR命令查看生成的类文件。1.3.2 第一个简单的程序第一个简单的程序3.执行字节码源程序编译成功生成字节码文件后可以使用Java解释器执行该程序。注意,这里不要加上扩展名.class,运行结果如图所示。D:studyjavajava Welcome1.3.3 第一个程序分析第一个程序分析1.类
18、定义Java程序的任何代码都必须放到一个类的定义中。public class Welcome就是定义一个名为Welcome的类。public为类的访问修饰符,class为关键字,Welcome为类名,其后用一对大括号括起来,称为类体。1.3.3 第一个程序分析第一个程序分析2.main()方法Java程序的标志是类体中定义一个main()方法,main()方法是程序执行的入口点。main()方法的格式如下:public static void main(String args)public是方法的访问修饰符,static说明该方法为类方法,void说明该方法的返回值为空。main()方法必须带
19、有一个字符串数组的参数String args,可以通过命令行向程序中传递参数。方法的定义括在一对大括号中。1.3.3 第一个程序分析第一个程序分析3.输出语句System.out.println(Welcome to Java World!);该语句的功能是在标准输出设备上打印输出一个字符串,字符串字面值用双引号定界。Java语言的语句要以分号(;)结束。System为系统类,out为System类中定义的静态成员变量,它是标准输出设备,通常指显示器。println()是输出流out中定义的方法,功能是打印输出字符串并换行。若不带参数,仅起到换行的作用。另一个常用的方法是print(),该方法
20、输出后不换行。1.3.3 第一个程序分析第一个程序分析4.源程序命名在Java语言中,一个源程序文件被称为一个编译单元。它是包含一个或多个类定义的文本文件。Java编译器要求源程序文件必须以.java为扩展名。当编译单元中有public 类时,主文件名必须与public类的类名相同(包括大小写),如本例的源程序文件名应该是Welcome.java。若编译单元中没有public类,源程序的主文件名可以任意。注意:Java语言在任何地方都区分大小写。1.3.3 第一个程序分析第一个程序分析5.程序注释注释是对程序功能的解释或说明。注释内容都被编译器忽略。Java支持3种类型的注释。(1)多行注释,
21、以/*开始,以*/结束的一行或多行文字,如:/*文件名必须为:Welcome.java*/(2)单行注释,以双斜杠/开头,在该行的末尾结束,如:/这里是注释内容(3)文档注释,以/*开始,以*/结束的多行。文档注释是Java特有的,主要用来生成类定义的API文档。1.3.4 集成开发环境集成开发环境为了加快程序的开发,可以使用集成开发环境(Integrated Development Enviroment,IDE)。对于初学者,建议使用JDK命令行工具编译和运行程序,等真正理解了Java程序运行机制或需开发大型程序时再使用IDE。最常用的两个Java IDE是Eclipse()和NetBean
22、s(http:/netbeans.org/downloads/),这两个IDE都是免费和开源的。1.4 Java字节码与虚拟机在传统的编程中,源代码是要编译成可执行代码的。这种可执行代码只能在所设计的平台上运行。换句话说,为Windows编写和编译的代码只能在Windows上运行,在Linux中编写的代码就只能在Linux上运行。而Java程序则编译成字节码(bytecode)。字节码不能直接运行,因为它不是本机代码(native code)。字节码只能在Java虚拟机(Java Virtual Machine,JVM)上运行。JVM是一种解释字节码的本机应用程序。Sun公司使JVM在众多平台
23、上都可用,从而使Java成为一种跨平台的语言。每一个字节码都可以在任何一种操作系统上运行。1.4.1 Java平台与平台与Java虚拟机虚拟机平台(platform)是指程序运行的软件或硬件环境。大多数平台是指操作系统和硬件的组合,如Windows平台、Linux平台等。Java平台与其他平台不同,它仅是一种运行在其他硬件平台之上的软件平台,Java平台包括两个部分。(1)Java虚拟机(JVM)(2)Java应用程序接口(Java API)1.4 Java字节码与虚拟机JVM是在一台计算机上用软件也可以用硬件实现的模拟的计算机,它定义了自己的指令集合、寄存器集、类文件格式、栈、垃圾收集堆和存
24、储区等。JVM是Java平台的基础,它是构建于其他硬件平台基础上的。目前,JVM适用于Windows、UNIX、Linux、Free BSD,以及世界上在用的其他的所有主流操作系统。Java 平台Java 虚拟机基于硬件的平台Welcome.class Java API图1.4 Java虚拟机与Java平台1.4 Java字节码与虚拟机Java API 是现成的软件组件,它提供各种功能,如图形用户界面等。Java API被组织成称为包的类库。Java字节码不是针对具体的硬件的编码,只要硬件平台上安装了JVM,字节码无需修改就可以在其上运行。作为一种平台独立的环境,在JVM上运行程序要比本地代码
25、慢一些。然而可以通过使用智能编译器、即时编译(Just In Time,JIT)技术,加快程序解释运行的速度,甚至可以达到本地代码的运行速度。1.4.2 Java程序的运行机制程序的运行机制当执行Java程序时,我们使用Java解释器java.exe。假设执行Welcome.class,使用下面命令:D:studyjavajava WelcomeJava解释器首先将JVM加载到内存,字节码程序在JVM上运行要经过下面三个步骤:1.4 Java字节码与虚拟机加载代码。加载代码由类加载器(class loader)完成,它为程序的执行加载所需要的全部类,包括被程序代码中的类所继承的类和被其调用的类
26、。校验代码。接下来,JVM将类的字节码输入字节码校验器(bytecode verifier)以检测代码段格式并进行规则检查,同时对字节码进行安全性校验。执行代码。最后,通过校验的字节码由运行时解释器(runtime interpreter)翻译和执行。1.4 Java字节码与虚拟机JVM对字节码的解释执行通常采取两种方式来实现。一种是解释型工作方式:通过解释器将字节码翻译成机器码,然后由即时运行部件立即将机器码送硬件执行。另一种是编译型工作方式:通过代码生成器先将字节码翻译成适用于本系统的机器码,然后再送硬件执行。1.5 Java关键字和标识符1.5.1 Java关键字1.5.2 Java标识
27、符1.5.3 Java编码规范1.5.1 Java关键字每种语言都定义了自己的关键字。所谓关键字(keywords)是该语言事先定义的一组词汇,这些词汇具有特殊的用途,用户不能将它们定义为标识符。Java语言定义了50个关键字,如下所示。1.5.1 Java关键字abstractcontinuefornewswitchassertdefaultgotopackagesynchronizedbooleandoifprivatethisbreakdoubleimplementsprotectedthrowbyteelseimportpublicthrowscaseenuminstanceofret
28、urntransientcatchextendsintshorttrycharfinalinterfacestaticvoidclassfinallylongstrictfpvolatileconstfloatnativesuperwhile1.5.2 Java标识符标识符在程序设计语言中,标识符(identifier)用来为变量、方法、对象和类进行命名。Java语言规定,标识符必须以字母、下划线(_)或美元符($)开头,其后可以是字母、下划线、美元符或数字,长度没有限制。如:intTest,M_Name,_var,$VarJava标识符是区分大小写的,下面两个标识符是不同的。myName,M
29、yName1.5.3 Java编码规范编码规范采用统一的编码规范是使代码易于阅读的方法之一。编码规范包括文件名、文件的组织、缩进、注释、声明、语句、空格以及命名规范等。首先是缩进的问题,程序代码的不同部分应有一定的缩进。如类体中代码应缩进。Java规范建议的缩进为4个字符,有的学者也建议缩进2个字符,这可根据你自己的习惯决定,但只要一致即可。1.5.3 Java编码规范编码规范Java程序的代码块都是用一对大括号定界,如类体、方法体、初始化块等。关于大括号有两种写法,一是行末格式,即左大括号写在上一行的末尾,右大括号写在下一行,另一种格式称为次行格式,即将左大括号单独写在下一行。这两种格式没有
30、好坏之分,但Sun的文档规范推荐使用行末格式,这样使代码更紧凑,且占据较少空间,本课程使用行末格式。1.5.3 Java编码规范编码规范在编写Java程序中通常还要指定各种名称,常见的包括类名、方法名、变量名,这些名称的确定也应遵循一定的规范。在Java中,不推荐使用无意义的单个字母命名,应该使用有意义的单词或单词组合为对象命名。有两种命名方法:PascalCase和camelCase。PascalCase称为帕斯卡拼写法,即将命名的所有单词的首字母大写,然后直接连接起来,单词之间没有连接符,例如:NumberOfStudent,AccountBook等。1.5.3 Java编码规范编码规范c
31、amelCase称为骆驼拼写法,它与PascalCase拼写法的不同之处是将第一个单词的首字母小写,例如:firstName,currentValue等。在Java程序中类名和接口名一般使用PascalCase拼写法,且应该用名词命名。,例如:Student,AccountBook,ArrayIndexOutOfBoundsException1.5.3 Java编码规范编码规范变量名和方法名一般应用camelCase拼写法。例如:balanceAccount,setName(),getTheNumberOfStudent()常量的命名应该全部大写并用下划线将词分隔开,例如:MAX_ARRAY_SIZE,MY_NAME1.6 小结编译和运行Java程序需要使用Java开发工具JDK,可以从Oracle的官方网站下载,也可以使用Eclipse、NetBeans等图形用户界面的开发工具。开发Java程序主要步骤是编辑源程序、将源程序编译成字节码文件(类文件),最后使用解释器运行程序。1.6 小结Java程序运行在Java虚拟机上,它是一种通过软件实现的运行平台。正是由于Java虚拟机,才使Java程序具有平台独立性和可移植性。每种语言都有保留字,它们具有特殊意义,不能作为他用。标识符用来为类、方法、变量和语句块等命名,应该遵循一定规则。预习第2章 数据类型和运算符
限制150内