Java常用类(API)

上传人:汽*** 文档编号:473026530 上传时间:2023-06-03 格式:DOC 页数:21 大小:149.51KB
返回 下载 相关 举报
Java常用类(API)_第1页
第1页 / 共21页
Java常用类(API)_第2页
第2页 / 共21页
Java常用类(API)_第3页
第3页 / 共21页
Java常用类(API)_第4页
第4页 / 共21页
Java常用类(API)_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《Java常用类(API)》由会员分享,可在线阅读,更多相关《Java常用类(API)(21页珍藏版)》请在金锄头文库上搜索。

1、Java常用类(API) 石凤贵【知识点】理解Java API的概念,了解Object类,基本类型的封装类,熟悉String类和StringBuffer类,Hashtable与Properties类,System类与Runtime类,Date类、Calendar类、Math类、BigInteger类,Math与Random类。提示:查阅JDK API【内容】一、Object类类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。Object类的常用方法:equals()、getClass()、hashCode()、notify()、

2、notifyAll()、toString()、wait();当用户自定义类时,要覆盖从父类Object继承过来的toString()方法,否则将得不到用户可理解的运行结果。 二、基本类型的封装类1、基本类型Java基本类型,或者叫做内置类型,是JAVA中不同于类的特殊类型。它们是我们编程中使用最频繁的类型。基本类型共有九种,它们分别都有相对应的包装类。对于基本类型void以及它的包装类java.lang.Void,我们都无法直接进行操作。基本类型可以分为三类,字符类型char,布尔类型boolean以及数值类型byte、short、int、long、float、double。数值类型又可以分为

3、整数类型byte、short、int、long和浮点数类型float、double。JAVA中的数值类型不存在无符号的,它们的取值范围是固定的,不会随着机器硬件环境或者操作系统的改变而改变。对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了 基本类型存储在栈中,因此它们的存取速度要快于存储在堆中的对应包装类的实例对象。从Java5.0(1.5)开始,JAVA虚拟机(Java Virtual Machine)可以完成基本类型和它们对应包装类之间的自动转换。因此我们在赋值、参数传递以及数学运算的时候像使用基本类型一样使用它们的包装类,但这并不

4、意味着你可以通过基本类型调用它们的包装类才具有的方法。另外,所有基本类型(包括void)的包装类都使用了final修饰,因此我们无法继承它们扩展新的类,也无法重写它们的任何方法。下图显示了几种基本类型之间的默认逻辑转换关系: 图中的实线表示无精度损失的转换,而虚线则表示这样的转换可能会损失一定的精度。如果我们想把一个能表示更大范围或者更高精度的类型,转换为一个范围更小或者精度更低的类型时,就需要使用强制类型转换(Cast)了。不过我们要尽量避免这种用法,因为它常常引发错误。运算符对基本类型的影响 :当使用+、-、*、/、%运算符对基本类型进行运算时,遵循如下规则:只要两个操作数中有一个是dou

5、ble类型的,另一个将会被转换成double类型,并且结果也是double类型;只要两个操作数中有一个是float类型的,另一个将会被转换成float类型,并且结果也是float类型;只要两个操作数中有一个是long类型的,另一个将会被转换成long类型,并且结果也是long类型;两个操作数(包括byte、short、int、char)都将会被转换成int类型,并且结果也是int类型。当使用+=、-=、*=、/=、%=、运算符对基本类型进行运算时,遵循如下规则:运算符右边的数值将首先被强制转换成与运算符左边数值相同的类型,然后再执行运算,且运算结果与运算符左边数值类型相同。 2、封装类(包装类

6、)(1)Java中的包装类、装箱和拆箱在Java中,数据类型总共可分为两大种,基本数据类型(值类型)和类类型(引用数据类型)。基本类型的数据不是对象,不能作为对象调用其toString()、hashCode()、getClass()、equals()等等方法。所以在java中,针对8种基本数据类型,提供了针对每个基本数据类型的包装类。如下:INDEX基本数据类型包装类1intInteger2charCharacter3floatFloat4doubleDouble5byteByte6shortShort7longLong8booleanBoolean所谓装箱,就是把基本类型用它们相对应的引用类

7、型包起来,使它们可以具有对象的特质,如我们可以把int型包装成Integer类的对象,或者把double包装成Double,等等。所谓拆箱,就是跟装箱的方向相反,将Integer及Double这样的引用类型的对象重新简化为值类型的数据。/JDK1.5 之前使用手动方式进行装箱 和拆箱的 操作public class IntegerDemopublic static void main (String agrs)int i=10;Integer j=new Integer(i); /手动装箱操作 int i1=j.intValue();/手动拆箱操作System.out.println(i1*i

8、1); /output:100/JDK1.5之后可自动进行的装箱和拆箱的操作,比较方便public class IntegerDemo02public static void main (String agrs)int i=10Integer j=i;int k=j;System.out.println(+k); /output:11包装类的另外一个比较有用的是可以将String 字符串类型转换为相应的基本数据类型。下面以将String转为int为例:public class IntegerDemo04public static void main (String args)String st

9、r=1500;tryint i=Integer.parseInt(str);System.out.println(+i);catch (Exception e)e.printStackTrace(); /打印异常信息;/ output: 1501如果在上述方法中str=15er00;则在调用parseInt方法时候会产生NumberFormatException异常,总结在包装类中将String转换为包装类所对应的基本数据类型的方法如下,所有的方法都将抛出NumberFormatException异常,需要在调用时候使用try.catch 进行捕获index包装类返回的基本数据类型方法名1In

10、tegerintstatic int Integer.parseInt(Sting s)2Charactercharstatic char Character.parseChar(String s)3Floatfloatstatic float Float.parseFloat(String s)4Dobuledoublestatic double Double.parseDouble(String s)5Bytebytestatic byte Byte.parseByte(String s)6Shortshortstatic short Short.parseShort(String s)7

11、Longlongstatic long Long.parseLong(String s)8Booleanbooleanstatic boolean Boolean.parseBoolean(String s)类似的一个方法为 parseXXX(String s,int radix),对于Integer包装类,这个radix表示进制. parseInt(String s)默认为十进制。 其他包装类的radix参数意义,请参见API文档可以自动装包,也可以自动解包。三、String和StringBufferjava.lang.StringBuffer线程安全的可变字符序列。一个类似于 String

12、 的字符串缓冲区,但不能修改。虽然在任意时间点上它都包含某种特定的字符序列,但通过某些方法调用可以改变该序列的长度和内容。可将字符串缓冲区安全地用于多个线程。可以在必要时对这些方法进行同步,因此任意特定实例上的所有操作就好像是以串行顺序发生的,该顺序与所涉及的每个线程进行的方法调用顺序一致。StringBuffer 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串缓冲区中。append 方法始终将这些字符添加到缓冲区的末端;而 insert 方法则在指定的点添加字符。例

13、如,如果 z 引用一个当前内容是“start”的字符串缓冲区对象,则此方法调用 z.append(le) 会使字符串缓冲区包含“startle”,而 z.insert(4, le) 将更改字符串缓冲区,使之包含“starlet”。通常,如果 sb 引用 StringBuilder 的一个实例,则 sb.append(x) 和 sb.insert(sb.length(), x) 具有相同的效果。只要发生有关源序列(如在源序列中追加或插入)的操作,该类就只在执行此操作的字符串缓冲区上而不是在源上实现同步。每个字符串缓冲区都有一定的容量。只要字符串缓冲区所包含的字符序列的长度没有超出此容量,就无需分

14、配新的内部缓冲区数组。如果内部缓冲区溢出,则此容量 自动增大。从 JDK 5 开始,为该类补充了一个单个线程使用的等价类,即 StringBuilder。与该类相比,通常应该优先使用 StringBuilder 类,因为它支持所有相同的操作,但由于它不执行同步,所以速度更快。 java.lang.StringBuilder一个可变的字符序列。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBu

15、ffer 要快。 在 StringBuilder 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据。每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符追加或插入到字符串生成器中。 append 方法始终将这些字符添加到生成器的末端;而 insert 方法则在指定的点添加字符。 例如,如果 z 引用一个当前内容为“start”的字符串生成器对象,则该方法调用 z.append(le) 将使字符串生成器包含“startle”,而 z.insert(4, le) 将更改字符串生成器,使之包含“starlet”。 通常,如果 sb 引用 StringBuilder 的实例,则 sb.append(x) 和 sb.insert(sb.length(), x) 具有相

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 汽车技术

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号