




已阅读5页,还剩302页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章 Java语言概述 Java 基础知识培训 主要内容提要 Java 基础培训 Java程序的开发环境 Java程序相关问题 Java语言的主要特性 Java语言的发展历史 Java程序的开发过程 Java语言的发展历史 Java 基础培训 Internet迅猛发展 Java语言正式问世 被美国著名杂志PC Magazine 评为1995年十大优 秀科技产品之一 James Gosling 领导的Green小 组开发了面向数 字家电的Oak语 言 推出了Java2平 台。性能上有所 提高,而且对 Java的基本模式 进行了完善,并 提供了更为丰富 的API 199119951998 Java2 的版本划分 Java 基础培训 Java 2Java 2 J2MEJ2ME J2SEJ2SE J2EEJ2EE Java语言的主要特性 Java 基础培训 平台无关性 简单性 面向对象 分布式、动态性、 可靠性、安全性 多线程 Java程序相关问题 Java虚拟机 Java虚拟拟机在真实实机器中用软软件模拟实拟实 现现的一种抽象的机器。(Java虚拟拟机规规范) Java虚拟拟机主要由五个部分组组成:指令系统统、 寄存器、栈栈、存储储区、碎片回收区 解释释和执执行Java程序编译编译 后产产生的字节码节码 Java 基础培训 Java程序相关问题 Java API Java API是Java系统统提供的预预先定义义好的软软件组组件的集合 ,它们们提供了许许多可供程序员调员调 用的常用功能 丰富的API为为程序员员提供了极大的方便,但也是学习习的难难点 要学会使用Java API手册(The Java 2 Platform API Specification ) /j2se/1.5/docs/api/index.html Java 基础培训 Java程序相关问题 Java程序的运行机制 Java 基础培训 操作系统操作系统 源代码可执行代码目标码 编 译 连 接 运 行 源代码字节码 编 译 解释执 行 J Javaava解释器解释器 传统语言的运行机制 Java语言的运行机制 Java程序相关问题 Java程序类型 Java应应用程序(Java Application) 是独立完整的程序 在命令行调调用独立的解释释器软软件即可运行 主类类必须须有main方法,这这也是程序的入口 Java小程序 Java Applet是指在客户户端运行的Java小程序,一 般来说说客户户端是指用户户所使用的浏览浏览 器 Java Servlet是在服务务器端执执行的Java小程序, 为为了能够够支持Servlet的运行,服务务器端必须须安装包含 Java虚拟拟机的服务务器软软件,这这种能够够支持服务务端小程 序的服务务器一般被称为应为应 用服务务器 Java 基础培训 Java开发环 境 JDK/J2SDK(Java Developer Kit) JDK1.02 JDK1.1.x JDK1.2/J2SDK1.3/J2SDK1.4/JDK5.0(J2SDK1.5) Java集成开发环发环 境(IDE) NetBeans JBuilder Eclipse JCreator Forte for Java Visual J+ WSAD Java 基础培训 JDK的安装与设置 从/可以下载载相关版 本的 JDK(本课课程采用J2SDK1.3以上版本) 在Windows平台上运行安装程序,以安装JDK 设设置PATH(文件路径)参数。由于JDK提供的实实 用程序都在安装目录录下的子目录录bin下,为为了能 在任何目录录下直接使用文件名调调用这这些程序,必 须设须设 置操作系统统的文件路径参数 Java 基础培训 环境设置 在Windows环境下,为了快速进入指定目录的命 令行窗口,可在注册表中增加项目: HKEY_CLASSES_ROOTDirectoryshell进入命令行 command 默认值设为 : cmd /k “cd %1“ Java 基础培训 JDK的目录结 构 Java 基础培训 bin目录中包含了所有JDK5.0提 供的实用程序 demo目录中包含了JDK5.0自带的 实例程序 inculde目录中包含了一些支持 Java native方法的CC+头文件 jre目录中包含了Java运行环境 所需的所有文件,这个目录中所包 含的java运行环境是JDK私有的, 它只为JDK的实用程序提供支持 lib目录中包含了Java开发环境 所需的库文件,它们以jar文件的 形式保存 sample目录中包含的是体现 JDK5.0新特性的一些例程 JDK实用程序简介 javac:Java编译编译 器,将Java源代码编译为码编译为 字节码节码 ; java:Java解释释器,用来解释执释执 行Java程序的字节码节码 文 件; appletviewer(小程序浏览浏览 器):一种执执行HTML文件上的 Java小程序类类的Java浏览浏览 器; javadoc:根据Java源代码码及其说说明语语句生成的HTML文档 ; jdb:Java调试调试 器,可以逐行地执执行程序、设设置断点和检检 查变查变 量; javah:产产生可以调调用Java过过程的C过过程,或建立能被 Java程序调调用的C过过程的头头文件; javap:Java反汇编汇编 器,显显示编译类编译类 文件中的可访问访问 功 能和数据,同时显时显 示字节节代码码含义义。 Java 基础培训 Java程序的开发过 程 编辑编辑 源代码码 编译编译 源代码码文件 运行程序 Java 基础培训 Java程序的开发过 程编辑 源代码 一般情况下,我们们可以使用系统统平台下的任何文本编辑编辑 器进进行源代码码的编辑编辑 ,在Windows平台下常用的是Window 系统统自带带的“记记事本”程序或“写字板”程序 Java源码码大小写敏感 Java源码码文件的扩扩展名:.java Java源程序文件也不能随意命名,其文件名必须须与程序 中主类类的类类名完全相同,包括大小写在内 Java 基础培训 public class MyFirstJavaApp public static void main(String args) System.out.println(“This is My First Java Application!”); Java程序的开发过 程编译 源代码 使用JDK实实用程序javac对对源代码码文件进进行编译编译 C:MyJavajavac MyFirstJavaApp.java 如果系统统提示符再次出现现并且没有任何消息产产生,那 么编译编译 便成功了 如果有系统报错统报错 消息产产生,则则表示程序编译编译 出错错, 程序员员必须阅读报错须阅读报错 信息,并根据这这些信息对对程序 进进行修改 程序成功编译编译 后,在与源代码码文件同一目录录下会 生成一个新的文件,其文件名与源代码码文件名相 同,扩扩展名为为“.class”。这这个文件就是源代码码 文件编译产编译产 生的程序字节码节码 文件 MyFirstJava.class Java 基础培训 Java程序的开发过 程运行程序 要执执行一个Java程 序非常简单简单 ,只需 在字节码节码 文件所在 目录录下输输入下列命 令就可以了: java 字节码节码 文件名 Java 基础培训 第2章 面向对象的编程概念 主要内容提要 Java 基础培训 什么是接口 什么是继承 什么是类 什么是消息 什么是对象 面向对象 vs. 面向过程 面向对对象(OOP)Object-Oriented Programming 用类类class封装数据以及与数据相关的操作 用类类的继继承性来实现类实现类 的重用性 多态态性 面向“对对象”,由对对象提供服务务 面向过过程(POP)Procedure-Oriented Programming 以功能为组织单为组织单 元 通过过数据结结构来描述具体的问题问题 数据在功能(函数)之间间以参数的形式被传传送 Java 基础培训 现实 世界中的对象 现实现实 世界是由对对象构成的 现实现实 世界中任何实实体都可以看作是对对象 现实现实 世界中的对对象有两个共同特征: 状态态 行为为 Java 基础培训 软件对象(Object) 软软件对对象是现实现实 世界对对象的抽象 软软件对对象同样样具有状态态和行为为 定义义:对对象是变变量和相关方法的软软件组组合 Java 基础培训 变量 方法 现实对 象软件对象 Java 基础培训 方法 叫 咬 吃 是否饿了 :否 名字:小 Q 颜色:黑 封装(Encapsulation) 封装性体现现了面向对对象程序设计设计 的一个特性,将 方法和数据组织组织 在一起,隐隐藏其具体实现实现 而对对外 体现现出公共的接口 模块块化 隐隐藏信息 Java 基础培训 变量 方法 消息(Message) 复杂杂的行为为必须须通过对过对 象之间间的交互来实现实现 软软件对对象与其它对对象进进行交互与通讯讯是通过过互 发发消息来实现实现 的 Java 基础培训 对象B对象 A 消息 消息的组成 消息的目的对对象 要执执行的方法的名称 方法所需参数 Java 基础培训 你的车 你 换档(低档) 消息的性质 同一对对象可接收不同形式的多个消息,产产生不同 的响应应 同一个消息可以发给发给 不同的对对象,所做出的响应应 可以截然不同 发发送方不需要知道接受方如何对请对请 求予以响应应的 Java 基础培训 类(Class) 定义义:类类是蓝图蓝图 或原型,它定义义了所有某种类类 的对对象的共有的变变量和方法 类类是具有共同属性和行为为的对对象的抽象与集合 Java 基础培训 私有的实现细节 公共API 实例(Instance) 定义义:特定类类所描述的一个具体对对象 Java 基础培训 对象、类与实体的关系 Java 基础培训 对象 类 计算机逻辑的实现 映射 计算机世界 实例化 抽象 实体 抽象数据类 现实世界 概念世界 抽象 继承(Inheritance) 广义义地说说,继继承是指能够够直接获获得已有的性质质和 特性,而不必重复定义义它们们。在面向对对象的软软件 技术术中,继继承是子类类自动动地共享父类类中定义义的数 据和方法的机制。 Java 基础培训 共性部分 继承部分 个性部分 父类 子类 单重继承与多重继承 单单重继继承:一个子类类只有一个唯一确定的父类类 单单重继继承所构成的类类的关系结结构是一棵树树 多重继继承:一个子类类可以有多个不同的父类类 多重继继承所构成的类类的关系结结构是一个格 Java语语言仅仅支持单单重继继承 Java 基础培训 继承的作用 使软软件系统统具有开放性 更好地进进行抽象与分类类 实现实现 代码码的复用 提高可维护维护 性 Java 基础培训 类型(Type) 在面向数值值的编编程中,类类型通常用作数据的表示 。在Java这样这样 的强类类型语语言中,在编译编译 期,每 一个变变量和表达式都有一个类类型与之相对应对应 Java中的类类型:基本类类型、类类、接口 Java 基础培训 接口(Interface) 接口和类类一样样也是一种类类型,也同样样包含一些方 法的定义义。但与类类不同的是:接口中所定义义的所 有方法都是抽象方法(即没有实现实现 的方法)。 接口中所定义义的方法由实现实现 (implement)该该接 口的类类来实现实现 ,一个类类可以同时实现时实现 多个接口 接口机制使Java的面向对对象编编程变变得更加灵活。 解决了单单重继继承带带来的问题问题 接口定义义了对对象的行为为模型,相当于一个协议协议 。实现实现 接口的各个类负责实现类负责实现 接口所定义义的行 为为。虽虽然实现细节实现细节 各不相同,但对对用户户来说说是 一样样的行为为。 Java 基础培训 面向对象的示例 本例中包含很多对对象:点、窗口、颜颜色、点击击事 件 代码码:ClickMeApp.java , ClickMe.java,Spot.java Java 基础培训 Spot类 Java 基础培训 public class Spot /instance variables private int size; public int x, y; /constructor public Spot() x = -1; y = -1; size = 1; /methods for access to the size instance variable public void setSize(int newSize) if (newSize = 0) size = newSize; public int getSize() return size; Spot对象 Java 基础培训 private Spot spot = null; . spot = new Spot(); 示例中的消息 Java 基础培训 g2d.setColor(Color.WHITE); g2d.fillRect(0, 0, getWidth() - 1, getHeight() - 1); 示例中的继承和接口 Java 基础培训 public class ClickMe extends JComponent implements MouseListener . public class ClickMe extends JComponent implements MouseListener . /Methods required by the MouseListener interface. public void mousePressed(MouseEvent event) if (spot = null) spot = new Spot(); spot.setSize(RADIUS); spot.x = event.getX(); spot.y = event.getY(); repaint(); public void mouseClicked(MouseEvent event) public void mouseReleased(MouseEvent event) public void mouseEntered(MouseEvent event) public void mouseExited(MouseEvent event) 欢迎提问 第三章 Java语言基础 变量(Variable) 对对象将它的状态态存储储在变变量中 定义义: 变变量是一个由标识标识 符命名的数据项项 变变量名必须须是一个合法的标识标识 符 -一个以字母 开头头的无限制的Unicode字符序列。 变变量的声明: 类类类类型型 名称名称 = = 初始初始值值值值 ; int i; double pi = 3.1415926; String name; Java 基础培训 数据类型 每个变变量都必须须有一个数据类类型. 一个变变量的数 据类类型决定了它能容纳纳的值值和在它上面可以进进行 什么操作。 Java编编程语语言有两大类类数据类类型: 原始类类型(primitive) 引用类类(reference) Java 基础培训 Java的数据类型 Java 基础培训 Java type system primitivereference charnumericbooleanclassinterfacearray integer floating-point byteshortintlongfloatdouble Java type system primitivereference charnumericbooleanclassinterfacearray integer floating-point byteshortintlongfloatdouble 原始类型 原始类类型变变量包含单单个值值,其大小和格式与它的 类类型匹配:数字、字符或布尔值值。 Java语语言没有unsigned类类型 0xFFFF和0xFF谁谁大? Java语语言必须须强制类类型转换转换 float f = 0.1; boolean b = 1; Java 基础培训 引用类型 数组组,类类和接口就是引用数据类类型.与原始类类型 变变量的值值不同的是,引用类类型变变量的值值是对应对应 变变量代表的一个值值或一组值组值 的引用(也就是其地 址) 在其他语语言里引用被称为为指针针或者内存地址。 Java不支持显显示地使用地址,而是使用变变量的名 称代替。 Java 基础培训 变量的引用 通过变过变 量名引用变变量的值值 简单简单 名称:由单单个标识标识 符组组成的名称 限定名称:通过类过类 名或对对象名引用该类类或对对象 中的成员变员变 量 System.out.println(i+spot.x); Java 基础培训 作用范围 变变量的作用范围围是可以通过简单过简单 名称引用该变该变 量的程序区域 作用范围围也决定了系统为该变统为该变 量创创建和释释放内 存的时间时间 Java 基础培训 例子 Java 基础培训 int i = 10; if ( i 0) int i = 20; System.out.println(“The value of i = ” + i); System.out.println(“The value of i = ” + i); 最终变量 你可以在任意范围围里将一个变变量定义为义为 最终变终变 量(final) 最终变终变 量的值值一经经初始化就不能改变变 类类似于C语语言中的常量(const) Java 基础培训 final int aFinalVar = 0; final int blankfinal; . . . blankfinal = 0; 操作符、表达式、语句和块 Java 基础培训 自学! 第四章 对象基础和简单 数据对象 主要内容 Java 基础培训 数组 数字 字符和字符串 对象的生存周期 对象的生命周期 Java 基础培训 CreateObjectDeom Java 基础培训 public class CreateObjectDemo public static void main(String args) /创建一个Point对象和两个Rectangle对象 Point origin_one = new Point(23, 94); Rectangle rect_one = new Rectangle(origin_one, 100, 200); Rectangle rect_two = new Rectangle(50, 100); / 显示rect_one的宽、高以及面积 System.out.println(“Width of rect_one: “ + rect_one.width); System.out.println(“Height of rect_one: “ + rect_one.height); System.out.println(“Area of rect_one: “ + rect_one.area(); rect_two.origin = origin_one; /设置rect_two的位置 / 显示rect_two的位置 System.out.println(“X Position of rect_two: “ + rect_two.origin.x); System.out.println(“Y Position of rect_two: “ + rect_two.origin.y); / 移动rect_two并且显示它的新位置 rect_two.move(40, 72); System.out.println(“X Position of rect_two: “ + rect_two.origin.x); System.out.println(“Y Position of rect_two: “ + rect_two.origin.y); 对象的创建 Java 基础培训 类型名 引用变量 = new 构造器(构造器的参数) 声明一个变量来引用对象 为为了声明一个变变量来引用对对象,你可以使用类类或 者接口的名字作为变为变 量的类类型 声明并没有创创建新对对象。在对该对该 引用变变量赋值赋值 前,该该引用为为空,称为为空引用(null) Java 基础培训 类型名 引用变量 = new 构造器(构造器的参数) Point origin_one 实例化对象 new操作符通过为过为 新对对象分配内存来实实例化一个 类类 new操作符需要一个后缀缀参数,即构造器的一个 调调用 new操作符返回一个对对它所创创建对对象的引用,通 常该该引用被赋值给赋值给 具有适当类类型的引用变变量 如果new操作符返回的引用没有被赋给赋给 任何变变量,那 么当new操作符所在的语语句执执行完后,将无法访问该访问该 对对象 Java 基础培训 类型名 引用变量 = new 构造器(构造器的参数) 初始化对象 构造器(Constructor):是一个用来创创建对对象 的特殊方法,用来初始化对对象的属性。 构造器的名字与类类名相同 构造器没有返回值值 构造器所包含的语语句用来对对所创创建的对对象进进行初始化 没有参数的构造器称为为“无参构造器” 每个Java类类都至少有一个构造器,如果该类该类 没有显显式 地声明任何构造器,系统统会默认认地为该类为该类 提供一个不 包含任何语语句的无参构造器 Java 基础培训 类型名 引用变量 = new 构造器(构造器的参数) 对象创建的实例 Java 基础培训 public class Point public int x = 0; public int y = 0; public Point(int x, int y) this.x = x; this.y = y; Point origin_one = new Point(23, 94); 问 题 Java 基础培训 Point origin_one = new Point(23, 94); Point origin_two = new Point(23, 94); oringin_one=oringin_two Point origin_one = new Point(23, 94); Point origin_two =origin_two; oringin_one=oringin_two 构造器的重载(Overload) 一个类类可以包含多个 构造器,这这种情况成 为为构造器的重载载 同一个类类中的多个构 造器通过过参数的数目 及类类型的不同来区分 Java 基础培训 public class Rectangle public int width = 0; public int height = 0; public Point origin; public Rectangle() origin = new Point(0, 0); public Rectangle(Point p) origin = p; public Rectangle(int w, int h) this(new Point(0, 0), w, h); public Rectangle(Point p, int w, int h) origin = p; width = w; height = h; . 对象的使用 对对象的使用有两种方式 操作或者检查检查 它的变变量 调调用它的方法 要使用对对象的实实例成员员,首先需要得到该对该对 象 的引用 Java 基础培训 变量 方法 实例成员与类成员 实实例成员员包括实实例变变量与实实例方法 实实例成员员依赖赖于实实例存在 同一个类类的不同实实例都拥拥有一份实实例变变量的拷贝贝,对对 某个实实例的实实例变变量的操作不影响到其它实实例 实实例变变量遵循对对象的生命周期,随着对对象的创创建而创创 建,随着对对象的消亡而消亡 必须须通过实过实 例的引用来调调用实实例方法 类类成员员包括类变类变 量与类类方法 类类成员员不依赖赖于实实例存在 同一个类类的不同实实例共享同一个类变类变 量,对类变对类变 量的 改变变会影响到所有实实例 类变类变 量的生存期不依赖赖于对对象,其它类类可以不用通过过 创创建该类该类 的实实例,直接通过类过类 名访问访问 它们们。同样样, 类类方法也可以直接通过类过类 名访问访问 。 Java 基础培训 实例成员与类成员 Java 基础培训 class ABCD char data; static int share_data; class Demo ABCD a,b,c,d; /实例化 实例变量的引用 简单简单 名称 当实实例变变量处处在作用域内(即对对象的类类的代码码 内) 的时时候 限定名称 objectReference.variableName 当实实例变变量处处在作用域外时时使用限定名称 Java 基础培训 System.out.println(“Width of rect_one: “ + rect_one.width); System.out.println(“Height of rect_one: “ + rect_one.height); int height=new Rectangle().height; 关于变量访问 的说明 建议议不要通过过其它对对象或类类直接操作对对象的变变 量,可能引起无效值值 理想情况下,类类会提供一些方法,其他对对象可以通 过过他们检查们检查 或修改变变量,确保值值有效,而且如 果变变量的类类型和名称发发生了变变化,不会影响它的 使用者 在某些情况下,可以允许对对许对对 象变变量的直接访访 问问,以使类类更小更简单简单 ,也可使变变量适用于更 广泛范围围; JAVA编编程语语言提供了一个访问访问 控制机制,通过过 这这种机制,类类可以决定那些其它的类类可以直接访访 问问它的变变量(第五章中介绍绍)。 Java 基础培训 调用对象的方法 使用限定名称来调调用对对象的方法 objectReference.methodName(argumentList); 或者 objectReference.methodName(); Java 基础培训 System.out.println(“Area of rect_one: “ + rect_one.area(); rect_two.move(40, 72); int areaOfRectangle = new Rectangle(100, 50).area(); 关于方法调用 方法被声明为为public,就可以被任何其它的类类所 访问访问 。有时时,类类需要限制对对它的方法的访问访问 类类可以使用与控制变变量访问访问 相同的机制来对对它 的方法进进行访问访问 控制(第五章中介绍绍) Java 基础培训 对象的清除 JAVA运行时环时环 境在当对对象不再被使用的时时候清除 它们们,这这个过过程就是所谓谓的“垃圾收集”( garbage collection) Java的垃圾收集器自动扫动扫 描对对象的动态动态 内存区 ,对对被引用的对对象加标记标记 ,然后把没有引用的 对对象作为为垃圾收集起来并释释放。 垃圾收集器作为为一个线线程运行。当系统统的内存用 尽或程序中调调用System.gc()要求进进行垃圾收集 时时,垃圾收集线线程与系统统同步运行。否则则垃圾收 集器在系统统空闲时闲时 异步地执执行。 Java 基础培训 无用对象的判定 当某个对对象不在被任何引用变变量引用时时,该对该对 象是无用对对象,将被清除。一般有如下两种情况 : Java 基础培训 引用变量超出了作用域 StringBuffer s = newStringBuffer(“thisisatest”); / 超出对象作用域 引用变量引用了其它对象或引用了空对象 StringBuffer s = new StringBuffer(“test1”); s = new StringBuffer(“test2”); / 引用了新的对象 s = null; / 引用为空 finalize()方法 在对对对对 象进进行垃圾收集前,Java运行时时系统统会 自动调动调 用对对象的finalize()方法来释释放系统资统资 源。 某些情况下,程序员员可能需要实现该实现该 方法来释释 放不由垃圾收集器所控制的资资源。但这这种情况非 常少见见 finalize()方法是在Object中有缺省实现实现 ,在用 户户自定义义的类类中,它可以被覆盖,但一般在最后 要调调用父类类的finalize()方法来清除对对象所使用 的所有资资源 Java 基础培训 问题 一 下列程序的运行结果? Java 基础培训 public class SomethingIsWrong public static void main(String args) Rectangle myRect; myRect.width = 40; myRect.height = 50; System.out.println(“myRects area is “ + myRect.area(); 问题 二 现现有一个Point和Rectangle对对象,代码执码执 行后有 多少引用指向它们们?有没有对对象需要垃圾收集? Java 基础培训 Point point = new Point(2,4); Rectangle rectangle = new Rectangle(point, 20, 20); point = null; 字符和字符串 Java API提供了三个处处理字符数据的类类: Character:这这个类类的实实例可以容纳单纳单 一的字符数 值值。该类还该类还 定义义了一些简洁简洁 的方法来操作或者检查检查 单单一字符数据。 String:这这个类类用于处处理由多个字符组组成的不可变变 数据。 StringBuffer:这这个类类用于存储储和操作由多个字符 组组成的可变变数据。 Java 基础培训 字符类(Character) 字符类类的对对象包含单单个字符值值 当需要使用对对象时时,可以用字符对对象替代原始的 char类类型的变变量 Java 基础培训 字符类构造器和方法 Character(char)Character类类唯一的构造器, 它创创建一个字符对对象,其中包含由参数提供的值值 ,一旦创创建了Character对对象,它包含的值值就不 能改变变。 compareTo(Character)这这个实实例方法比较较两个 字符对对象包含的值值,这这个方法返回一个整数值值, 表示当前对对象中的值值是大于、等于还还是小于参数 所包含的值值 Java 基础培训 字符类构造器和方法 equals(Object)这这个实实例方法比较较当前对对象包 含的值值与参数对对象包含的值值,如果两个对对象包含 的值值相等,那么这这个方法返回true toString()这这个实实例方法将此对对象转换为转换为 字 符串 charValue()这这个实实例方法以原始char值值的形 式返回此字符对对象包含的值值 isUpperCase()这这个实实例方法判断一个原始 char值值是否是大写字母 Java 基础培训 字符类例程 Java 基础培训 public class CharacterDemo public static void main(String args) Character a = new Character(a); Character a2 = new Character(a); Character b = new Character(b); int difference = pareTo(b); if (difference = 0) System.out.println(“a is equal to b.“); else if (difference 0) System.out.println(“a is greater than b.“); System.out.println(“a is “+ (a.equals(a2) ? “equal“ : “not equal“)+ “ to a2.“); System.out.println(“The character “ + a.toString() + “ is “ + (Character.isUpperCase(a.charValue() ? “upper“ : “lower“)+ “case.“); 程序的输出: a is less than b. a is equal to a2. The character a is lowercase. 字符类类方法 Java 基础培训 问题 Java 基础培训 Character a = new Character(a); Character b = new Character(a); 下列boolean表达式的值是true还是false? (1)pareTo(b)=0 (2)a.equals(b) (3)a=b 字符串和字符串缓冲区 Java平台提供两个类类String和StringBuffer,它 们们用于存储储和操作字符串由多个字符组组成的字 符数据。 String类类用于其值值不能改变变的字符串; StringBuffer类类用于被修改的字符串,通常用来 动态动态 的构造字符数据。 字符串是常量,比字符串缓缓冲区更高效,而且字 符串可以被共享。 Java 基础培训 字符串(String) 使用字符串常量时时,需要创创建String对对象,和其 它对对象不同,String对对象可以通过简单赋值语过简单赋值语 句创创建: String name = “Petter”; 此外,也可根据String类类的构造函数创创建String 对对象: String name = new String(“Petter”); 对对于程序任何位置出现现的双引号标记标记 的字符串, 系统统都会自动创动创 建一个String对对象。 可通过过String对对象的方法对对字符串进进行操作 Java 基础培训 字符串构造器 Java 基础培训 字符串的不可变性? String类类用于其值值不能改变变的字符串 观观察下列程序: Java 基础培训 public class StringTest public static void main(String args) String s=“abc“; s=s+“defg“; System.out.println(s); 程序运行结果是abc还是abcdefg? 字符串的不可变性? Java 基础培训 ab c s def g “defg” s+”defg” abcde fg s=s+”defg” 字符串缓冲区(StringBuffer) String对对象表示的是不可更改的字符串对对象,如 果需要修改String对对象所表示的内容,必须须重新 创创建一个对对象: String str = “Petter”; str = str + “ 当修改操作频频繁,或字符串的值值很大时时,会额额外 分配大量内存 因此,Java语语言引入了一个StringBuffer类类,用 来表示内容可以扩扩充和修改字符串对对象 Java 基础培训 StringBuffer构造器 必须须使用new操作符创创建字符串缓缓冲区 Java 基础培训 String s = “Dot saw I was Tod“; StringBuffer dest = new StringBuffer(s); 访问 器方法 用于获获取关于对对象的信息的方法被称为访问为访问 器 方法。 字符串和字符串缓缓冲区都可以使用的一个访问访问 器 方法就是length方法。 length方法返回字符串和字符串缓缓冲区中包含的 字符数。 Java 基础培训 String palindrome = “Dot saw I was Tod“; int len = palindrome.length(); 容量 在StringBuffer类类中还还有一个capacity()方法, 它返回分配给这给这 个字符串缓缓冲区的容量,而不是 使用量。使用量会改变变,但是容量始终终是不变变的 。 Java 基础培训 通过索引得到字符 charAt()访问访问 器方法,通过过索引从字符串或者字 符串缓缓冲区得到字符,索引值值从零开始。 Java 基础培训 String anotherPalindrome = “Niagara. O roar again!“; char aChar = anotherPalindrome.charAt(9); substring方法 如果要从字符串或者字符串缓缓冲区得到多个字符 ,可以使用substring方法。 String substring(int) String substring(int,int) Java 基础培训 String anotherPalindrome = “Niagara. O roar again!“; String roar = anotherPalindrome.substring(11, 15); search string类类提供两个访问访问 器方法,返回特定的字符 或者子字符串在字符串中的位置。 indexOf()方法从字符串的开头查头查 找; lastindexOf()方法从字符串的末尾查查找; stringBuffer类类不支持indexOf()和 lastindexOf()方法。 Java 基础培训 search Java 基础培训 search example public class Filename private String fullPath; private char pathSeparator, extensionSeparator; public Filename(String str, char sep, char ext) fullPath = str; pathSeparator = sep; extensionSeparator = ext; public String extension() int dot = fullPath.lastIndexOf(extensionSeparator); return fullPath.substring(dot + 1); public String filename() int dot = fullPath.lastIndexOf(extensionSeparator); int sep = fullPath.lastIndexOf(pathSeparator); return fullPath.substring(sep + 1, dot); public String path() int sep = fullPath.lastIndexOf(pathSeparator); return fullPath.substring(0, sep); Java 基础培训 search example Java 基础培训 public class FilenameDemo public static void main(String args) Filename myHomePage = new Filename(“/home/mem/index.html“,/, .); System.out.println(“Extension = “ + myHomePage.extension(); System.out.println(“Filename = “ + myHomePage.filename(); System.out.println(“Path = “ + myHomePage.path(); 程序输出: Extension = html Filename = index Path = /home/mem 比较字符串和字符串缓冲区 Java 基础培训 操作字符串 Java 基础培训 修改字符串缓冲区 Java 基础培训 数字类 Number类类及其子类类主要用于处处理数字 Number类类的对对象包含了原始类类型的数值值并且提 供了一些有用的变变量和方法,用于对对数值进值进 行 处处理 Java 基础培训 类型包装器类(Type-Wrapper class) 数字类类、Boolean、Character和void类统类统 称为为 类类型包装器类类 在需要对对象的地方,可将原始类类型的值值存储储在类类型包 装器对对象中 这这些类类定义义了一些有用的变变量,提供关于数据类类型的 一般信息 这这些类还类还 定义义了一些有用的方法,用于将值转换为值转换为 其他类类型、
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- JJF(石化)059-2023环氧乙烷气体检测报警器校准规范
- 2025新版部编人教版小学三年级数学上册全册教案
- 重庆直播红娘培训课件
- 暑假新课专项重点预习练:解答题(含解析)-2024-2025学年人教版一年级数学下学期
- 人教版八年级英语上册Unit7达标测试卷(含答案)
- 新解读《GB-T 5671-2014汽车通 用锂基润滑脂》
- 人教版Unit 3 Same or Different Section B -2025年新八年级英语暑期提升讲义(含答案)
- 重大手术知识培训课件
- 高空作业车、汽车起重机风险识别与安全使用管控要点
- 老年人讲文明课件
- 2025-2026学年人教版(2024)小学数学三年级上册(全册)教学设计(附目录P296)
- 碳中和技术概论全套教学课件
- 材料风险调差表
- 压力容器材料
- 招标投标法9个课件
- 100个最具争议的涉税经典稽查案例深度解析1增值税退税
- 高等数学上册ppt课件完整版
- 网店美工与视觉设计全书ppt完整版课件最全电子教案正本书教学教程
- 胸部检查(二)肺与胸膜检查
- 《中国古典舞》PPT课件
- 小学生个人简历WORD模板
评论
0/150
提交评论