Day9 Object类以及一些常用类

时光毁灭记忆、已成空白 提交于 2020-02-23 19:17:47

一、Object类

Object类是所有类、数组、枚举类的父类,也就是说,Java允许把任何类型的对象赋给Object类
型的变量。当定义一个类时没有使用extends关键字为它显式指定父类,则该类默认继承O^ect父类。
因为所有的Java类都是Object类的子类,所以任何Java对象都可以调用Object类的方法。Object
类提供了如下几个常用方法。

boolean equals(Object obj):判断指定对象与该对象是否相等。此处相等的标准是,两个对象是
同一个对象,因此该equals。方法通常没有太大的实用价值。
protected void finalizeO:当系统中没有引用变量引用到该对象时,垃圾回收器调用此方法来清理该对象的资源。
int hashCode():返回该对象的hashCode值。在默认情况下,Object类的hashCodeO方法根据该
对象的地址来计算(即与System.identityHashCode(Object x)方法的计算结果相同)。但很多类都重写了 Object类的hashCode方法,不再根据地址来计算其hashCode()方法值。
String toStringO:返回该对象的字符串表示,当程序使用System.out.printlnO方法输出一个对象,或者把某个对象和字符串进行连接运算时,系统会自动调用该对象的toStringO方法返回该对象的字符串表示。Obect类的toString()方法返回“运行时类名十六进制hashCode值”格式的字符串,但很多类都重写了 Object类的toStringO方法,用于返回可以表述该对象信息的字符串。
Java还提供了一个protected修饰的clone()方法,该方法用于帮助其他对象来实现"自我克隆”,所谓“自我克隆”就是得到一个当前对象的副本,而且二者之间完全隔离。由于obect类提供的clone()方法使用了 protected修饰,因此该方法只能被子类重写或调用。
自定义类实现"克隆”的步骤如下。
1、自定义类实现Cloneable接口。这是一个标记性的接口,实现该接口的对象可以实现“自我克隆”,接口里没有定义任何方法。
2、自定义类实现自己的clone()方法。
3、实现clone()方法时通过super.clone();调用Object实现的clone()方法来得到该对象的副本,并返回该副本。

二、System类

System类代表当前Java程序的运行平台,程序不能创建System类的对象,System类提供了一些类变量和类方法,允许直接通过System类来调用这些类变量和类方法。System类提供了代表标准输入、标准输出和错误输出的类变量,并提供了一些静态方法用于访问环境变量、系统属性的方法,还提供了加载文件和动态链接库的方法。
System类还有两个获取系统当前时间的方法:currentTimeMillis()和nanoTime(),它们都返回一个long型整数。实际上它们都返回当前时间与UTC 1970年1月1日午夜的时间差,前者以毫秒作为单位,后者以纳秒作为单位。必须指出的是,这两个方法返回的时间粒度取决于底层操作系统,可能所在的操作系统根本不支持以毫秒、纳秒作为计时单位。例如,许多操作系统以几十毫秒为单位测量时间,currentTimeMillis()方法不可能返回精确的亳秒数;而nanoTime()方法很少用,因为大部分操作系统都不支持使用纳秒作为计时单位。除此之外,System类的in、out和err分别代表系统的标准输入(通常是键盘)、标准输出(通常是显示器)和错误输出流。

三、String类

字符串就是一连串的字符序列,Java提供了 String和StringBufifer两个类来封装字符串,并提供了一系列方法来操作字符串对象。String类是不可变类,即一旦一个String对象被创建以后,包含在这个对象中的字符序列是不可改变的,直至这个对象被销毁。StringBufifer对象则代表一个字符序列可变的字符串,当一StringBuffer被创建以后,通过StringBuffer 提供的 append()、insert()、reverse()
setCharAt()、setLength()等方法可以改变这个字符串对象的字符序列。一旦通过StringBuffer生成了最终想要的字符串,就可以调用它的toString。方法将其转换为一个String对象。
JDK 1.5又新增了一个StringBuilder类,它也代表字符串对象。实际StringBuilder和StringBufifer基本相似,两个类的构造器和方法也基本相同。不同的是,StringBuffer是线程安全的,而StringBuilder则没有实现线程安全功能,所以性能略高。因此在通常情况下,如果需要创建一个内容可变的字符串对象,则应该优先考虑使用StringBuilder类。
以下是一些String类常用的一些方法。
public String()
无参构造方法
public String(byte[] bytes)
把字节数组转换成一个字符串
public String(byte[] bytes,int index,int length)
把字节数组从index下标开始到length个元素转换成字符串
public String(char[] value)
把一个字符数组转换成一个字符串
public String(char[] value,int index,int count)
把一个字符数组从index下标处开始的count个字符转换成字符串
public String(String original)
把一个字符串转换成一个字符串

public boolean equals(Object obj)
比较字符串是否相等,比较的是内容,区分大小写
public boolean equalsIgnoreCase(String str)
比较字符串是否相等,比较的是内容,不去分大小写
public boolean contains(String str)
判断一个字符串是否包含Str字符串
public boolean startsWith(String str)
判断一个字符串是否一Str这个字符串开始
public boolean endsWith(String str)
判断一个字符串是否以Str这个字符串结尾
public boolean isEmpty()
判断一个字符串是否是空串
public int length()
计算字符串的长度
public char charAt(int index)
获取字符串指定位置的字符
public int indexOf(int ch)
通过给定的字符ch来获取字符串中对应的索引(第一次出现的)
public int indexOf(String str)
通过给定的字符串str来获取字符串中对应的索引(第一次出现的)
public int indexOf(int ch,int fromIndex)
从formindex开始获取ch出现的位置
public int indexOf(String str,int fromIndex)
从formindex开始获取字符串str出现的位置
public String substring(int start)
从start开始截取字符串
public String substring(int start,int end)
从start开始到end结束截取字符串
public byte[] getBytes()
把字符串转换成字节数组
public char[] toCharArray()
把字符串转换成字符数组
public static String valueOf(char[] chs)
把字节数组转换成字符串
public static String valueOf(int i)
把基本类型数据转换成字符串
public String toLowerCase()
把字符串转换成小写

public String toUpperCase()
把字符串转换成大写

public String concat(String str)
与指定的字符串连接返回新的字符串

public String replace(char old,char new)
替换字符中的字符
public String replace(String old,String new)

替换字符串中的字符
public String trim()
去掉字符串前后的空格
public int compareTo(String str)
与指定的字符串比较,区分大小写

public int compareToIgnoreCase(String str)

与指定的字符串比较,不区分大小写

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!