文章目录
Java中的常用类
一、Object
1.1Object的介绍
Object是所有类的父类,也就是任何一个类在定义时如果没有明确地继承一个父类,那它就是Object类的子类,也就是以下两种类定义的最终效果是完全相同的。
1.2Object的常用方法
public String toString() //默认是返回当前对象在堆内存中的地址信息:类的全限名@内存地址
public Boolean equal(Object o) //默认是比较当前对象与另一个对象的地址是否相同,相同返回true,不相同返回false
toString存在的意义就是默认是打印当前对象的地址。让子类重写,以便返回子类对象的内容。父类toString()方法存在的意义就是为了被子类重写,以便返回对象的内容信息,而不是地址信息!
equals存在的意义是默认是与另一个对象比较地址是否一样,然后让子类重写,以便比较2个子类对象的内容是否相同。父类equals方法存在的意义就是为了被子类重写,以便子类自己来定制比较规则。
void finalize() //当垃圾回收器确定不存在对该对象的更多引用时,对象的圾回收器调用该方法
Class getClass() //默认就是返回一个对象运行时的实例类(为.class文件)
int hashCode() //返回该对象的散列码值
void notify() //激活等待在该对象的监视器上的一个线程
void notifyAll() //激活等待在该对象的监视器上的全部线程
String toString() //返回该对象的字符串表示,默认返回运行时类名+@+对象的hashCode的16进制数
void wait() //在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待
二、String
2.1String的介绍
String为字符串,字符串就是一个类,字符串变量是引用数据类型,用" "引起来的内容就是字符串,只要是字符串就能调用字符串中的方法。Java程序中的所有字符串字面值(如 “abc”)都作为String类的实例实现。
2.2String的主要方法
2.2.1构建方法
String() //创建一个空的字符串
String(byte[] bys) //通过字节数组来创建字符串
String(char[] chs) //通过字符数组来创建字符串
String(byte[] bys,int offset,int length) //通过字节数组一部分来创建字符串
String(char[] chs,int offset,int length) //通过字符数组一部分来创建字符串
String(String original) //通过字符串常量值来创建字符串
2.2.2成员方法
1.判断功能
equals(Object obj) //比较两个字符串是否相等
equalsIngnoreCase(Object obj) //忽略大小写比较两个字符串是否相等
contains(String str) //是否包含指定字符串
startsWith(String str) //是否以指定的字符串开头
endWith(String str) //是否以指定的字符串结尾
isEmpty() //是否为空
matches(String regex) //判断字符串是否匹配给定的正则表达式。
2.获取功能
length() //获取长度
charAt(int index) //获取指定索引位置处的字符
indexOf(int ch) //获取指定字符第一次出现的索引值(从0开始)
indexOf(int ch,int fromIndex) //获取从指定索引位置开始,获取指定字符第一次出现的索引值
indexOf(String s) //获取指定字符串第一次出现的索引值
indexOf(String s,int fromIndex) //获取从指定索引位置开始,获取指定字符串第一次出现的索引值
lastIndexOf(int ch) //获取指定字符最后一次出现的索引值
substring(int start) //从指定位置开始一直截取到末尾
substring(int start,int end) //截取[start,end-1]范围
3.转换功能
byte[] getBytes() //将字符串转成字节数组
char[] toCharArray() //将字符串转成字符数组
static valueOf(char[] chs) //将char[]转成字符串
static valueOf(int num) //将int类型转成字符串
static valueOf(Object obj) //将任意类型转成字符串
toLowerCase() //转成小写
toUpcase() //转成大写
concat(String str) //字符连接
三、StringBuilder
3.1StringBuilder的介绍
StringBuilder是一个可变的字符序列,这里的可变指的是StringBuilder对象中的内容是可变的。此类提供一个与StringBuffer 兼容的 API,但不保证同步(StringBuilder 不是线程安全的)。该类被设计用StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比StringBuffer要快。
如果在编程中单线程建议使用StringBuilder,多线程用StringBuffer。
3.2StringBuilder的主要方法
StringBuilder sb = new StringBuilder();
System.out.println(sb.length()); // 对象名.length() 序列长度
sb.append("hello"); // 对象名.append() 追加到序列
System.out.println(sb); // hello
sb.appendCodePoint(97); // 97代表的是是'a'
System.out.println(sb); // helloa
sb.append(1).append("world").append(2); // 链式编程
System.out.println(sb); // helloa1world2
sb.setCharAt(5, ' '); // 索引是5的位置替换成空格
System.out.println(sb); // hello 1world2
sb.insert(0, 0); // 指定位置0前插入0
System.out.println(sb); // 0hello 1world2
sb.delete(6, 14); // 删除索引6(包含)至索引14(不包含)的字符串
System.out.println(sb); // 0hello
// StringBuilder类型转换成String类型
String s = sb.toString();
System.out.println(s); // 0hello
// 以及还有截取、反转、替换等方法
3.3StringBuilder与String的区别
在Java中String内容是不可变的,而StringBuilder内容是可变的。
StringBuilder在处理字符串的性能上是比String要好的。
四、StringBuffer
4.1StringBuffer的介绍
在Java中,StringBuffer 类能比 String 类更高效地处理字符串。而StringBuffer 类和 String 类最大的区别就在于它的内容和长度都是可以改变的(String类是不能改变的)。StringBuffer就好比一个字符容器,当想要在其中添加或删除字符时,所操作的对象都是这个字符容器,因此并不会产生新的StringBuffer对象。
4.2StringBuffer的主要方法
1.获取长度和容量的方法:
public int length() //可以获取字符串长度数
public int capacity() //可以获取当前字符串缓冲区的容量
2.StringBuffer的添加方法:
public StringBuffer append(int/String/char/boolean/double/float....) //这个方法追加,给缓冲中追加数据,返回字符串缓冲区本身,是常使用到的
public StringBuffer insert(int offset,String str) //这个是在某一个位置处插入str字符串,返回字符串缓冲区本身
3.StringBuffer的删除方法:
public StringBuffer deleteCharAt(int index) //通过删除指定位置处的字符,返回字符串缓冲区本身
public StringBuffer delete(int start,int end) //通过删除从指定位置开始到指定位置结束的字符,返回字符串缓冲区本身
4.StringBuffer的反转功能:
public StringBuffer reverse() //将此字符串中的字符序列直接反转
5.StringBuffer的替换功能:
public StringBuffer replace(int start, int end,String str) //从指定位置开始到指定位置结束的字符可以用str子字符串去替代
6.StringBuffer的截取功能:
public String substring(int start) //在指定位置默认截取到末尾,则返回值是一个新的字符串
public String substring(int start,int end) //在指定位置开始截取到指定位置结束,包前不包后,返回一个新的字符串
五、System
5.1System的介绍
System同样是一个类,System类主要是一些与系统相关的属性和方法的集合,而且其内部的方法全部是静态的,所以我们在使用System的时候可以直接调用。
5.2System的主要方法
1.用System获取系统时间:
public class SystemTest {
public static void main(String[] args) {
System.out.println(System.currentTimeMillis());
System.out.println(System.nanoTime());
}
}
2.启动垃圾回收的操作(System.gc):
public class SystemTest {
public static void main(String[] args) {
User user = new User();//新建一个对象
System.out.println(user.toString());
user=null;//将引用置为空
System.gc();//垃圾回收
System.out.println(user.toString());
}
}
3.获取当前的系统属性:
static Properties getProperties()
4.获取指定键描述的系统属性:
static String getProperty(String Key)
5.终止当前正在运行的虚拟机方法:
static void exit(int status) //其中参数status表示的是状态码,若状态码非0,则表示异常终止
6.System的拷贝功能:
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) //从src引用的指定源数组拷贝到dest引用的数组,拷贝是从指定的位置开始,到目标数组的指定位置结束
六、Data
6.1Data的介绍
在Java中,我们通常使用Data类来处理日期和时间。在这里介绍Data()类和Date(long Date)类。
Date()类,就是生成一个代表当前日期时间的Date对象,该方法实际是调用System类的currentTimeMillis()的方法来获取long型的整数作为日期参数。
Date(long Date)类,就是根据指定的long型整数来生成一个Date对象。创建的对象是从1970年01月01日00时(格林威治时间)开始以毫秒计算时间。
6.2Data的主要方法
boolean after(Date when) //测试该日期是否在指定日期when之后
boolean before(Date when) //测试该日期是否在指定日期when之前
int compareTo(Date anotherDate) //比较两个日期的大小,后面的时间大于前面的时间时返回-1,否则返回1
boolean equals(Object obj) //比较两个时间是否相同,当表示同一时刻时返回true
long getTime() //返回该时间对应的long型整数,一个毫秒值
void setDate(long time) //设置Date对象的时间