java语言基础知识_第1页
java语言基础知识_第2页
java语言基础知识_第3页
java语言基础知识_第4页
java语言基础知识_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1Java 语言程序设计第一章第一章Java 语言基础知识语言基础知识计算机科学与工程学院计算机科学与工程学院 蒋社想蒋社想E-mail:E-mail:Telel:139664816052Java 语言程序设计学习学习Java前的前的准备工作准备工作JAVA语言程序设计计算机科学与工程学院 蒋社想3Java的起源的起源 Java来自于来自于Sun公司的一个叫公司的一个叫Green的的项目,其原先的目的是为家用消费电子产项目,其原先的目的是为家用消费电子产品开发一个分布式代码系统,这样我们可品开发一个分布式代码系统,这样我们可以把以把E-mail发给电冰箱、电视机等家用

2、电发给电冰箱、电视机等家用电器,对它们进行控制,和它们进行信息交器,对它们进行控制,和它们进行信息交流。开始,准备采用流。开始,准备采用C+,但,但C+太复杂,太复杂,安全性差,最后基于安全性差,最后基于C+开发了一种新的开发了一种新的语言语言Oak(Java的前身),的前身),JAVA语言程序设计计算机科学与工程学院 蒋社想4Java的起源的起源 Oak是一种用于网络的精巧而安全的是一种用于网络的精巧而安全的语言,语言,Sun公司曾以此投标一个交互公司曾以此投标一个交互式电视项目,但结果被式电视项目,但结果被SGI打败。可打败。可怜的怜的Oak几乎无家可归,恰巧这时几乎无家可归,恰巧这时Ma

3、rk Ardreesen开发的开发的Mosaic和和Netscape启发了启发了Oak项目组成员,项目组成员,他们用他们用Java编编 制制 了了HotJava浏浏 览器览器JAVA语言程序设计计算机科学与工程学院 蒋社想5Java的起源的起源 得到了Sun公司首席执行官Scott McNealy的支持,触发了Java进 军Internet。 Java的取名也有一则趣闻,有一天,几 位Java成员组的会员正在讨论给这个新的语言取什么名字,当时他们正在咖啡馆喝着Java(爪哇)咖 啡,有一个人灵机一动说就叫Java怎 样,得到了其他人的赞赏,于是,Java这个名字就这样传开了。JAVA语言程序设

4、计计算机科学与工程学院 蒋社想6什么是什么是JDK?上课讲的是上课讲的是Java1还是还是 Java2?什么是什么是JRE?Java的相关概念的相关概念 JDK就是Java的开发工具包 1998年12月,SUN公司发布了JDK1.2,开始使用“Java 2” 这一名称,目前我们已经很少使用JDK1.1版本,所以我们所说的Java都是指Java2。J2SDK当然就是Java 2 Software Develop Kit。JRE(Java Runtime Environment),即Java运行环境,通常已包含在J2SDK中了。 JAVA语言程序设计计算机科学与工程学院 蒋社想7lJ2SE(Jav

5、a 2 Platform, Standard Edition)lJ2EE(Java 2 Platform, Enterprise Edition)lJ2ME(Java 2 Platform, Micro Edition)Java的开发工具包(的开发工具包(JDK)JAVA语言程序设计计算机科学与工程学院 蒋社想8目录目录1.1 Java语言与面向对象的程序设计语言与面向对象的程序设计1.2 Java程序概述程序概述1.3 基本数据类型与表达式基本数据类型与表达式1.4 数组的概念数组的概念1.5 数组的创建和引用数组的创建和引用1.6 本章小结本章小结JAVA语言程序设计计算机科学与工程学院

6、蒋社想91.1 Java语言与面向对象的程序设计语言与面向对象的程序设计lJava语言是一个面向对象的程序设计语言是一个面向对象的程序设计语言。语言。l除了面向对象的特点以外,除了面向对象的特点以外,Java语言语言还在安全性、平台无关性、支持多线还在安全性、平台无关性、支持多线程、内存管理等许多方面具有卓越的程、内存管理等许多方面具有卓越的优点。优点。JAVA语言程序设计计算机科学与工程学院 蒋社想101.1.1 面向对象的程序设计思想面向对象的程序设计思想l计算机程序设计计算机程序设计 对问题进行抽象 用计算机语言表述,利用机器求解Java语言与面向对象的程序设计JAVA语言程序设计计算机

7、科学与工程学院 蒋社想111.1.1 面向对象的程序设计思想面向对象的程序设计思想(续续)l程序设计语言发展的历程程序设计语言发展的历程 机器语言 汇编语言 高级语言 面向对象的语言Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想121.1.1 面向对象的程序设计思想面向对象的程序设计思想(续续)l面向对象的思想面向对象的思想 将客观事物看作具有状态和行为的对象,通过抽象找出同一类对象的共同状态和行为,构成类。Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想131.1.1 面向对象的程序设计思想面向对象的程序设计思想(续续)l例:

8、例: 构建一个汽车类,需要提取所有汽车对象的共有的状态和行为。将状态用变量表示,行为用方法表示。class Car int color_number; int door_number; int speed; void brake() void speedUp() ; void slowDown() ; Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想141.1.1 面向对象的程序设计思想面向对象的程序设计思想(续续)l面向对象技术给软件发展带来的益处面向对象技术给软件发展带来的益处 可重用性 可靠性 l面向对象语言的基本特征面向对象语言的基本特征 抽象和封装 继

9、承性 多态性Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想151.1.2 Java语言的特点语言的特点l面向对象面向对象l安全性安全性 Java不支持指针 Java的内部安全措施l平台无关性平台无关性 编译后的字节码对应于Java虚拟机,因此可在不同平台上运行l多线程多线程 Java是第一个在语言级提供内至多线程支持的高级语言l内存管理内存管理 Java对内存自动进行管理并进行垃圾回收Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想161.1.2 Java语言的特点语言的特点(续续)lJava 语言的优点语言的优点 易于学习 代

10、码效率高 代码质量高 开发程序快 体系结构中立,纯Java程序不依赖于平台 一处编写,各处运行 软件易于发布Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想171.1.2 Java语言的特点语言的特点(续续)lJava与与C+的区别的区别 Java中没有#include 和#define 等预处理功能,用import语来句包含其它类和包; Java中没有structure,union及typedef; Java中没有不属于类成员的函数,没有指针和多重继承,Java只支持单重继承; Java中禁用goto,但goto还是保留的关键字; Java中没有操作符重载;

11、Java中没有全局变量,可以在类中定义公用、静态的数据成员实现相同功能;.Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想181.1.3 Java类库类库l组成组成Java程序的最小单位是类,类封程序的最小单位是类,类封装了数据与处理数据的方法。装了数据与处理数据的方法。l对于大多数常用的功能,有大量已经对于大多数常用的功能,有大量已经编译好、经过测试的类,这些类的集编译好、经过测试的类,这些类的集合就是合就是Java类库。类库。lJava类库主要是随编译器一起提供,类库主要是随编译器一起提供,也有些类库是由独立软件开发商提供也有些类库是由独立软件开发商提供的。

12、的。Java语言与面向对象的程序设计JAVA语言程序设计计算机科学与工程学院 蒋社想191.2 Java程序概述程序概述lJava 开发环境开发环境lApplication 举例举例lApplet举例举例lServlet举例举例lJSP举例举例JAVA语言程序设计计算机科学与工程学院 蒋社想201.2.1 Java开发环境开发环境Java程序概述Java程序编译执行的过程JAVA语言程序设计计算机科学与工程学院 蒋社想211.2.1 Java开发环境开发环境(续续)一次编写,各处运行一次编写,各处运行Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想22编译编译,没有绝对地址没有

13、绝对地址将将.class文件装载文件装载到内存到内存Java源程序源程序(.java文件文件)Java编译器编译器Java Bytecode(.class文件文件)系统执行平台系统执行平台Bytecode 解释器解释器Bytecode 载入器载入器字节码校验器字节码校验器不存在伪造的指针不存在伪造的指针不违反访问权限不违反访问权限不非法访问对象不非法访问对象不导致操作栈溢出不导致操作栈溢出Java的编译与执行Java程序概述 1.2.1 Java开发环境开发环境 (续续)JAVA语言程序设计计算机科学与工程学院 蒋社想23 1.2.1 Java开发环境开发环境 (续续)lJava APIs (

14、应用应用程序接口程序接口) 经过编译的,可在程序中使用的Java代码标准库。lJava VM(虚拟(虚拟机)机) Java 程序由Java虚拟机程序执行(或解释执行)。Java 程序Java APIsJava 虚拟机计算机系统Java 平台Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想241.2.1 Java开发环境开发环境(续续)Java2 SDK(Software Development Kit) Standard Edition (J2SE) Enterprise Edition (J2EE) Mobile Edition (J2ME)Java程序概述JAVA语言程序设

15、计计算机科学与工程学院 蒋社想251.2.1 Java开发环境开发环境(续续)J2SEJ2SDK的核心部分的核心部分l开发工具开发工具 编译器 调试器 文档制作工具l运行环境运行环境 Java 虚拟机 组成Java 2 平台API的类。 帮助文档l附加库附加库 lJava程序(程序(Applets 和和 Applications) 的演示的演示 Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想26Java开发工具包括开发工具包括lJavac: Java编译器,用来将java程序编译成 Bytecode。l Java: Java解释器,执行已经转换成Bytecode的java应用

16、程序。l Jdb: Java调试器, 用来调试java程序。l Javap: 反编译,将类文件还原回方法和变量。l Javadoc: 文档生成器,创建HTML文件。l Appletviwer: Applet解释器, 用来解释已经转换成Bytecode的java小应用程序。1.2.1 Java开发环境开发环境(续续)Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想271.2.1 Java开发环境开发环境(续续)环境安装环境安装以以j2sdk1.6.0为例为例l下载地址 http:/l下载文件 jdk-6u13-windows-i586-p.exe j2sdk-1_6_0-doc.

17、zipl安装安装 直接运行“jdk-6u13-windows-i586-p.exe” 。l文档文档 解开“j2sdk-1_6_0-doc.zip” 。Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想281.2.1 Java开发环境开发环境(续续)安装安装JDK后产生如下目录:后产生如下目录:lbin目录:目录:Java开发工具,包括开发工具,包括Java编译器、解释器等编译器、解释器等l demo目录:一些实例程序目录:一些实例程序l lib目录:目录:Java开发类库开发类库l jre目录:目录: Java运行环境,包括运行环境,包括Java虚拟机、运行类库等虚拟机、运行类库

18、等l Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想291.2.1 Java开发环境开发环境(续续)配置环境变量:配置环境变量:lSDK平台提供的平台提供的Java编译器(编译器(javac.exe)和)和Java解释器(解释器(java.exe)位于)位于Java安装目录的安装目录的bin文件夹中,为了能在任何目录中使用编译器和解文件夹中,为了能在任何目录中使用编译器和解释器,应在系统特性中设置释器,应在系统特性中设置Path。对于。对于Windows2000、Windows2003、Windows XP,用鼠标右键点击用鼠标右键点击“我的电脑我的电脑”,弹出菜单,然后,弹

19、出菜单,然后选择属性,弹出选择属性,弹出“系统特性系统特性”对话框,再单击该对话框,再单击该对话框中的高级选项,然后点击按钮对话框中的高级选项,然后点击按钮“环境变环境变量量”,添加如下的系统环境变量,添加如下的系统环境变量Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想301.2.1 Java开发环境开发环境(续续)Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想311.2.1 Java开发环境开发环境(续续)系统环境系统环境ClassPath 值的设置值的设置 :lSDK的安装目录的的安装目录的jre文件夹中包含着文件夹中包含着Java应用程序运行时所需要的

20、应用程序运行时所需要的Java类类库,这些类库被包含在库,这些类库被包含在jrelib目录下目录下的压缩文件的压缩文件rt.jar中中 Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想321.2.1 Java开发环境开发环境(续续)Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想331.2.1 Java开发环境开发环境(续续)几种集成开发环境几种集成开发环境lnetBeanslJcreator LElBorland JBuilderlMicrosoft Visual J+lIBM : Visual Age for JavalSun ONE StudioJava程

21、序概述JAVA语言程序设计计算机科学与工程学院 蒋社想341.2.2 Application举例举例Application运行在客户端Java虚拟机上的Java程序可在客户端机器中读写可使用自己的主窗口、标题栏和菜单程序可大可小能够以命令行方式运行主类必须有一个主方法main(),作为程序运行的入口。Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想351.2.3 Application举例举例(续续) 例例1-1Java程序概述public class Hello public static void main (String args ) System.out.println

22、(你好,很高兴学习你好,很高兴学习Java); JAVA语言程序设计计算机科学与工程学院 蒋社想36l保存保存 将源文件保存到将源文件保存到D:1000中,并命中,并命名为名为Hello.java。注意不可写成。注意不可写成hello.java,因为,因为Java语言是区分大小语言是区分大小写的。源文件的命名规则是这样的,如写的。源文件的命名规则是这样的,如果源文件中有多个类,那么只能有一个果源文件中有多个类,那么只能有一个类是类是public类。如果有一个类是类。如果有一个类是public类,那么源文件的名字必须与这个类的类,那么源文件的名字必须与这个类的名字完全相同,扩展名是名字完全相同,

23、扩展名是.java。如果源。如果源文件没有文件没有public类,那么源文件的名字类,那么源文件的名字只要和某个类的名字相同,并且扩展名只要和某个类的名字相同,并且扩展名是是.java就可以了。就可以了。 JAVA语言程序设计计算机科学与工程学院 蒋社想37l编译编译 当创建了当创建了Hello.java这个源文件后,就这个源文件后,就要使用要使用Java编译器(编译器(javac.exe)对其进行编)对其进行编译译 D:1000javac Hello.javal运行运行 Java应用程序必须通过应用程序必须通过Java虚拟机中虚拟机中的的Java解释器(解释器(java.exe)来解释执行其

24、字)来解释执行其字节码文件。节码文件。Java应用程序总是从主类的应用程序总是从主类的main方法开始执行。因此,必须如下运行方法开始执行。因此,必须如下运行Java应应用程序:用程序: D:1000java HelloJAVA语言程序设计计算机科学与工程学院 蒋社想38public class MyClass private int val1,val2 ;public void myFun(int x,int y) val1=x ; val2=y ; System.out.println(The sum is: +(val1+val2) ; public static void main(S

25、tring arg) MyClass MyObj=new MyClass(); MyObj.myFun(1,2);1.2.3 Application举例举例(续续) 例例1-2Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想391.2.3 Application举例举例(续续) 例例1-2 运行结果运行结果使用如下命令编译并运行程序:使用如下命令编译并运行程序:javac MyClass.javajava MyClass运行结果如下:运行结果如下:The sum is: 3Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想40lApplet小应用程序小应用程序运行

26、于支持Java的Web浏览器中浏览器的解释器把字节码转换成和机器匹配的指令,在网页中执行小程序。Applet和Application的差别:运行环境的不同,小应用程序总是放在Web浏览器的图形用户界面中1.2.3 Applet举例举例Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想41lApplet的优点的优点Web 浏览器软件包括很多小应用程序运行所需的功能lApplet的局限性的局限性在客户端主机的文件系统中读/写受限不能运行客户端主机的任何程序仅能在服务器和客户端之间建立联系1.2.3 Applet举例举例(续续)Java程序概述JAVA语言程序设计计算机科学与工程学院

27、蒋社想42JAVA Applet:import java.awt.Graphics;import java.applet.Applet;public class MyApplet extends Appletpublic String s;public void init() s=new String(Hello World !); public void paint(Graphics g) g.drawString(s,25,25); HTML:applet code= .class width=400 height=4001.2.3 Applet举例举例(续续) 例例1-3Java程序概述

28、JAVA语言程序设计计算机科学与工程学院 蒋社想431.2.3 Applet举例举例(续续) 例例1-3注释注释lGraphics类类 使得applet绘制直线、矩形、椭圆形、字符串等l方法方法init() 初始化,实现了字符串的创建l方法方法paint() 中中 g为Graphics类的对象。调用了Graphics的drawString方法绘制字符串。 此方法执行的结果就是从坐标(60,40)开始绘制出字符串Hello World! 。Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想441.2.3 Applet举例举例(续续) 例例1-3运行运行l用支持用支持Java的浏览器

29、,比如的浏览器,比如IE6.0,打开打开Applet1.htmlJava程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想451.2.3 Applet举例举例(续续) 例例1-3运行运行l用用Java自带的自带的appletviewer浏览浏览 输入:appletviewer Applet1.htmlJava程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想46ServletServlet运行在服务器端,响应客户端请求,扩展了服务器的功能 运行Servlet需要服务器的支持,需要在服务器中进行部署Servlet用到的包在J2EE的API中能找到所有的servlet都必须实现Serv

30、let接口1.2.4 Servlet举例举例Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想47程序首先构建程序首先构建HttpServletRequestHttpServletRequest,并建立一个数据,并建立一个数据表单;点击表单;点击submitsubmit按钮后,按钮后,servletservlet再次被调用,并产再次被调用,并产生一个含有表单的网页。生一个含有表单的网页。public class EchoForm extends HttpServletpublic class EchoForm extends HttpServlet public void ser

31、vice(HttpServletRequest req, public void service(HttpServletRequest req, HttpServletResponse res) throws HttpServletResponse res) throws IOException IOException res.setContentType(text/html); res.setContentType(text/html); PrintWriter out = res.getWriter(); PrintWriter out = res.getWriter(); Enumera

32、tion flds = req.getParameterNames(); Enumeration flds = req.getParameterNames(); 1.2.5 Servlet举例举例(续续) 例例1-3Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想481.2.5 Servlet举例举例(续续) 例例1-3 if(!flds.hasMoreElements() if(!flds.hasMoreElements() out.print(); out.print(); out.print(form method=POST out.print(); +action=Ec

33、hoForm); for(int i = 0; i 10; i+) for(int i = 0; i 10; i+) out.print(Field + i + + out.print(Field + i + + input type=text+ ); + i + value=Value + i + ); out.print(INPUT TYPE=submit name=submit out.print(); Value=Submit); Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想49elseelse out.print(Your form contained:); ou

34、t.print(Your form contained:); while(flds.hasMoreElements() while(flds.hasMoreElements() String field= (String)flds.nextElement(); String field= (String)flds.nextElement(); String value= req.getParameter(field); String value= req.getParameter(field); out.print(field + = + value+ ); out.print(field +

35、 = + value+ ); out.close(); out.close(); 1.2.5 Servlet举例举例(续续) 例例1-3Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想50lJSP就是嵌入了就是嵌入了Java代码的代码的HTML lJSP和和servlet同是服务器端的技术。同是服务器端的技术。实际上,实际上,JSP文档在后台被自动转换文档在后台被自动转换成成servlet l使用使用JSP便于实现网页的动静分离便于实现网页的动静分离l相对于相对于Servlet,JSP在服务器的部署在服务器的部署简单简单1.2.6 JSP举例举例Java程序概述JAVA语言程序

36、设计计算机科学与工程学院 蒋社想51The time in second is:The time in second is: 1.2.6 JSP举例举例(续续)Java程序概述JAVA语言程序设计计算机科学与工程学院 蒋社想521.3 基本数据类型与表达式基本数据类型与表达式l变量与常量变量与常量l基本数据类型基本数据类型l表达式与运算符表达式与运算符l类型转换类型转换JAVA语言程序设计计算机科学与工程学院 蒋社想531.3.1 变量与常量变量与常量 l变量变量 一个由标识符命名的项 每个变量都有类型, 例如 int 类型或 Object类型, 变量还有作用域. 变量的值可以被改变. l常量

37、常量 常量一旦被初始化以后就不可改变。基本数据类型与表达式JAVA语言程序设计计算机科学与工程学院 蒋社想54l标识符标识符 标识符是一个名称,与内存中的某个位置(地址)相对应 标识符的第一个字符必须是下列字符之一: l大写字母大写字母 (A-Z) l小写字母小写字母 (a-z) l下划线(_) l美元符号 ($) 标识符的第二个字符及后继字符必须是: l上述列表中的任意字符 l数字字符 (0-9) 基本数据类型与表达式1.3.1 变量与常量变量与常量(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想55l整数整数 byte 8 bits -128 +127 short 16 bits

38、 -32768 + 32767 int 32 bits 231(231-1) long 64 bits 263(263-1) char 8 bits 0 65535 基本数据类型与表达式1.3.2 基本数据类型基本数据类型 JAVA语言程序设计计算机科学与工程学院 蒋社想56l整数运算整数运算 比较运算符(关系运算符)l算术比较运算符 , , and = l算术相等比较运算符 = and != 算术运算符l一元运算符 + 和 -l+,- *, /, 和 % (取余 )l自增/自减运算符 +/-l移位运算符 , and l位运算符 , &, |, and 条件运算符 ? : 类型转换运算

39、符 字符串连接运算符 + 基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想57l浮点数浮点数 floatl单精度浮点数l32-bitl- m2e m2e m 是一个小于 224的正整数 e 是一个介于 -149和104之间(含)的整数 doublel双精度浮点数l64-bitl- m2e m2e m是一个小于 253的正整数 e是一个介于 -1045 和 1000之间(含)的整数基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想58l浮点运算浮点运算 比较运算符(关

40、系运算符)l算术比较运算符 , , and = l算术相等比较运算符 = and != 算术运算符l一元运算符 + 和 -l+,- *, /, 和 % (取余 )l自增/自减运算符 +/-l移位运算符 , and l位运算符 , &, |, and 条件运算符 ? : 类型转换运算符 字符串连接运算符 + 基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想59l布尔类型和布尔值布尔类型和布尔值 布尔类型表示一个逻辑量, 有两个取值: true和false 例如:boolean is_salaried;boolean is_

41、hourly;is_salaried = true; /将 is_salaried设置为trueis_hourly = false; /将is_hourly设置为false 基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想60l布尔运算符布尔运算符 关系运算符 = and != 逻辑“非”运算符 ! 逻辑运算符 &, , 和 | 条件“与” 和条件“或”运算符 & 和 | 条件运算符 ? : 字符串连接运算符 +基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程

42、学院 蒋社想61lString字符串字符串 String 是一个类 String类JDK标准类集合中的一部分String animal = walrus;基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想62l文字量文字量 直接出现在程序中并被编译器直接使用的值. 整数文字量l十进制如: 15l十六进制如: 0 xffl八进制如: 0377基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想63基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) 浮点文字量

43、l一个浮点文字量包括以下几个部分 整数部分 小数点 小数部分 指数 (e or E) 类型后缀 (f or F for float, d or D for double)lfloat 类型文字量举例: 1e 1f 2.f .3f 0f 3.1 4f 6.022137e+23f ldouble 类型文字量举例: 1e1 2. .3 0.0 3.1 4 1e-9d 1e137 布尔文字量l布尔类型只有两个值,由文字量 true 和 false表示JAVA语言程序设计计算机科学与工程学院 蒋社想64 字符文字量l一个字符文字量表示为一个字符或者一个转义序列,用单引号括起 例如 a Z l格式字符 b

44、 backspace BS t horizontal tab HT n linefeed LF f form feed FF r carriage return CR double quote single quote backslash 基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想65 字符串文字量l由零个或多个字符组成,以双引号括起l每一个字符都可以用转义序列来表示 l例如: / 空字符串 / 只包含 的字符串 This is a string / 有16个字符的字符串 This is a + string /字符串常量

45、表达式,由两个字符串常量组成 基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想66public class ex1_1 public static void main(String args ) final int PRICE=30; final double PI = 3.141592654; int num,total; double v,r,h; num=10; total=num*PRICE; System.out.println(total); r=2.5; h=3.2; v=PI*r*r*h; System.out.

46、println(v); 变量声明变量声明变量变量文字量文字量常量声明常量声明基本数据类型与表达式1.3.2 基本数据类型基本数据类型(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想67l表达式是由一系列变量、运算符、方法调表达式是由一系列变量、运算符、方法调用构成的,表达式可以计算出一个值来用构成的,表达式可以计算出一个值来l程序中的很多工作是通过计算表达式的值程序中的很多工作是通过计算表达式的值来完成的。来完成的。 有时需要的是表达式的副作用,例如赋值表达式将数值赋给变量 更多时候起作用的是表达式的值,这个值可以用作方法的参数,或更大的表达式的操作数,或者影响语句的执行顺序基本数据

47、类型与表达式1.3.3 表达式与运算符表达式与运算符 JAVA语言程序设计计算机科学与工程学院 蒋社想68l算术运算符算术运算符运算符 + 和 -例如: i+; -j; 一元运算符 + 和 加法运算符 + 和 - 乘法运算符 *, /, 和 % 基本数据类型与表达式1.3.3 表达式与运算符表达式与运算符(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想69l赋值运算符赋值运算符简单赋值运算符 =复合赋值运算符*= /= %= += -= = = &= = |= E1 op= E2 等效于 E1 = (T)(E1) op (E2), 其中T 是 E1的类型基本数据类型与表达式1

48、.3.3 表达式与运算符表达式与运算符(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想70l举例举例a=5表达式的值为 5a=b=c=5 表达式的值以及 a,b,c 的值都是 5 a=5+(c=6) 表达式的值是 11, a 是 11, c 是 6a=(b=4)+(c=6) 表达式的值是 10, a是10,b是4,c是6a=(b=10)/(c=2)表达式的值是 5, a是5,b是10,c是2a+=a-=a*a 等效于 a=a+(a=a-a*a)基本数据类型与表达式1.3.3 表达式与运算符表达式与运算符(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想71l关系运算符关系运算

49、符 关系表达式的类型永远是布尔类型(bool). 算术比较运算符 , , and = 类型比较运算符 instanceofl例如: e instanceof Point /Point 是一个类基本数据类型与表达式1.3.3 表达式与运算符表达式与运算符(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想72l相等关系运算符相等关系运算符 数字相等运算符 = , != 布尔相等运算符 = , != 引用相等运算符 = , !=基本数据类型与表达式1.3.3 表达式与运算符表达式与运算符(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想73l逻辑运算符逻辑运算符 “与”运算 &

50、;l如果两个操作数的值都为true运算结果为true; 否则,结果为false. “或”运算 |l如果两个操作数的值都为false运算结果为false;否则,结果true “非”运算符!l操作数的类型必须是布尔类型l如果操作数的结果为 false,则表达式的结果为 true ,如果操作数的结果为 true则表达式的结果为 false基本数据类型与表达式1.3.3 表达式与运算符表达式与运算符(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想74条件运算符条件运算符 ( (表达式表达式1 1?表达式?表达式2 2:表达式:表达式3)3)首先计算表达式1如果表达式1的值为 true, 则选

51、择表达式2的值如果表达式1的值为 false,则选择表达式3的值基本数据类型与表达式1.3.3 表达式与运算符表达式与运算符(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想75l每个表达式都有类型每个表达式都有类型l如果表达式的类型对于上下文不合适如果表达式的类型对于上下文不合适 有时可能会导致编译错误 有时语言会进行隐含类型转换基本数据类型与表达式1.3.4 类型转换类型转换 JAVA语言程序设计计算机科学与工程学院 蒋社想76l扩展转换扩展转换 byte, short, int, long, float, double char 从一种整数类型到另一种整数类型,或者从float到

52、double的转换不损失任何信息 从整数类形向float或double转换,会损失精度l窄化转换窄化转换 double, float, long, int, short, byte,char 窄化转换可能会丢失信息基本数据类型与表达式1.3.4 类型转换类型转换(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想77l字符串转换字符串转换 任何类型(包括null类型)都可以转换为字符串类型基本数据类型与表达式1.3.4 类型转换类型转换(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想78l赋值转换赋值转换 将表达式类型转换为制定变量的类型l方法调用转换方法调用转换 适用于方法或

53、构造方法调用中的每一个参数l强制转换强制转换 将一个表达式转换为指定的类型 例如 (float)5.0l字符串转换字符串转换 只当一个操作数是String类型时,适用于+运算符的操作数基本数据类型与表达式1.3.4 类型转换类型转换(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想79l 数字提升数字提升 将算术运算符的操作数转换为共同类型 一元数字提升一元数字提升l如果一个操作数是 byte, short, 或 char类型, 一元数字提升通过扩展转换将它转换为int类型 二元数字提升二元数字提升l二元数字提升作用在特定操作符的操作数上*, /, %, +, -, , , =, =,

54、 !=, &, , | and?:l在必要时使用扩展转换来转换操作数类型基本数据类型与表达式1.3.4 类型转换类型转换(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想80l标准输入输出简介标准输入输出简介 标准输入流 System.in 标准输出流 System.out 例如 System.out.println(Hello world!);基本数据类型与表达式1.3.4 类型转换类型转换(续续) JAVA语言程序设计计算机科学与工程学院 蒋社想81l数组由同一类型的一连串对象或数组由同一类型的一连串对象或者基本数据组成,并封装在同一者基本数据组成,并封装在同一个标识符(数

55、组名称)下。个标识符(数组名称)下。l数组是对象数组是对象 动态初始化 可以赋值给Object类型的变量 在数组中可以调用类Object 的所有方法1.4 数组的概念数组的概念JAVA语言程序设计计算机科学与工程学院 蒋社想82l数组元素数组元素 数组中的变量被称作数组的元素 元素没有名字,通过数组名字和非负整数下标值引用数组元素。 每个数组都有一个由 public final 修饰的成员变量:length ,即数组含有元素的个数(length可以是正数或零)数组的概念1.4 数组的概念数组的概念(续续)JAVA语言程序设计计算机科学与工程学院 蒋社想831.5 数组的创建和引用数组的创建和引

56、用l数组的声明数组的声明l数组的创建数组的创建l数组元素的初始化数组元素的初始化l数组的引用数组的引用l多维数组多维数组JAVA语言程序设计计算机科学与工程学院 蒋社想84数组的创建和引用1.5.1 数组的声明数组的声明 l声明(声明(Declaration) 声明数组时无需指明数组元素的个数,也不为数组元素分配内存空间 不能直接使用,必须经过初始化分配内存后才能使用JAVA语言程序设计计算机科学与工程学院 蒋社想85Type arrayName; 例如:int intArray; String stringArray; Type arrayName ; 例如:int intArray; St

57、ring stringArray;1.5.1 数组的声明数组的声明(续续) 数组的创建和引用JAVA语言程序设计计算机科学与工程学院 蒋社想86l用关键字用关键字new构成数组的创建表达式,可构成数组的创建表达式,可以指定数组的类型和数组元素的个数。元以指定数组的类型和数组元素的个数。元素个数可以是常量也可以是变量素个数可以是常量也可以是变量 l基本类型数组的每个元素都是一个基本类基本类型数组的每个元素都是一个基本类型的变量;引用类型数组的每个元素都是型的变量;引用类型数组的每个元素都是对象的的引用对象的的引用 1.5.2 数组的创建数组的创建 数组的创建和引用JAVA语言程序设计计算机科学与

58、工程学院 蒋社想87arryName=new Typecomponets number; 例如:int ai; ai=new int10;String s; s=new String3; 或者可以将数组的声明和创建一并执行int ai=new int10;可以在一条声明语句中创建多个数组 String s1=new String3, s2=new String8;1.5.2 数组的创建数组的创建(续续) 数组的创建和引用JAVA语言程序设计计算机科学与工程学院 蒋社想88l声明数组名时,给出了数组的初始值,程序便会利声明数组名时,给出了数组的初始值,程序便会利用数组初始值创建数组并对它的各个元

59、素进行初始用数组初始值创建数组并对它的各个元素进行初始化化 int a=22, 33, 44, 55; l创建数组的时,如果没有指定初始值,数组便被赋创建数组的时,如果没有指定初始值,数组便被赋予默认值初始值。予默认值初始值。 基本类型数值数据,默认的初始值为0; boolean类型数据,默认值为false; 引用类型元素的默认值为null。 l程序也可以在数组被构造之后改变数组元素值程序也可以在数组被构造之后改变数组元素值数组的创建和引用1.5.3 数组元素的初始化数组元素的初始化 JAVA语言程序设计计算机科学与工程学院 蒋社想89l通过下面的表达式引用数组的一个元素:通过下面的表达式引用

60、数组的一个元素:arrayNameindexl数组下标必须是数组下标必须是 intint , shortshort, bytebyte, 或者或者 charchar.l下标从零开始计数下标从零开始计数. l元素的个数即为数组的长度,可以通过元素的个数即为数组的长度,可以通过 arryName.length引用引用l元素下标最大值为元素下标最大值为 length 1,如果超过最大值,将会产生数组越界异常(ArrayIndexOutOfBoundsException) 数组的创建和引用1.5.4 数组的引用数组的引用 JAVA语言程序设计计算机科学与工程学院 蒋社想90int data = new int10;int data = new int1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论