Java常用类

SringBuffer类

由于String类声明后,于是有了StringBuffer类和StringBuilder类。
StringBuffer类和StringBuilder类都需要通过构造方法进行实例化对象,而后才能调用方法处理。

StringBuffer和StringBuilder的区别

StringBuffer从JDK1.0开始提供,StringBuilder从JDK1.5开始提供。这两个类的功能,都是可以修改的字符串类型,唯一的区别在于StringBuffer类中的方法使用了synchronize关键字进行修饰,适合用于多线程访问下的同步处理;而StringBuilder类中的方法没有使用synchronize关键字,属于非线程安全的方法。

方法类型描述
public StringBuffer()构造创建一个空的StringBuffer对象
public StringBuffer(String str)构造将收到的str内容变为StringBuffer类对象
public StringBuffer append(Object obj)普通内容连接,等价于String中的"+"
public StringBuffer insert(int office,Object obj)普通指定索引位置插入obj
:public StringBuffer delete(int start,int end)普通删除指定索引范围的数据
:public StringBuffer reverse()普通反转字符串

代码实现:

//无参构造方法
StringBuffer sb1 = new StringBuffer();
//有参构造
StringBuffer sb2 = new StringBuffer("123456798");
 //数据添加
sb1.append("abc").append("de");
System.out.println("sb1 = " + sb1);
System.out.println("sb2 = " + sb2);
//数据删除
System.out.println("删除后:" + sb1.delete(0,2));
//插入数据
System.out.println("插入数据后:" + sb1.insert(0,"ab"));
//内容反转
System.out.println("内容反转:" + sb2.reverse());

输出内容:

sb1 = abcde
sb2 = 123456798
删除后:cde
插入数据后:abcde
内容反转:897654321

CharSequence接口

JDK1.4之后提出的一个描述字符串标准的接口。

«interface» CharSequence String SrtingBuffer StringBuffer StringBuilder
方法类型描述
public char charAt(int index)普通获取指定索引字符
public int length()普通获取字符串的长度
public CharSequence subCharSequence(int start,int end)普通获取开始到结束位置字符串

代码实现:

	CharSequence c = "abcdefg";
    //charAt()方法
    System.out.println("第一个字符:" + c.charAt(0));
    System.out.println("第三个字符:" + c.charAt(2));
    //获取字符串的长度
    System.out.println("字符串的长度:"+c.length());
    //截取字符串
    System.out.println("截取3-6:"+c.subSequence(3,6));

运行结果:

第一个字符:a
第三个字符:c
字符串的长度:7
截取3-6:def

Runtime类

每一个JVM进程中都会产生一个Runtime类实例化对象,可以通过Runtime类获取与JVM有关的运行状态。

方法类型描述
public static Runtime getRuntime()普通获取Runtime实例化对象
public int availableProcessors()普通获取可用CPU数量
public long maxMemory()普通获取可用最大内存
public long totalMemory()普通获取总可用内存
public long freeMemory()普通获取空闲内存量
public void gc()普通垃圾回收

代码部分

	//public static Runtime getRuntime() 获取Runtime实例化对象
	Runtime runtime = Runtime.getRuntime();
	//public int availableProcessors() 获取可用的CPU处理器数量
	System.out.println("CPU处理器数量(availableProcessors):"+runtime.availableProcessors());   //8
	//public long maxMemory() 获取最大可用内存量
	System.out.println("最大可用内存(maxMemory):"+runtime.maxMemory());
	//public long totalMemory() 总共可运行的内存量
	System.out.println("总共可运行的内存量(totalMemory):"+runtime.totalMemory());
	//public long freeMemory() 空闲内存
	System.out.println("空闲内存(freeMemory):"+runtime.freeMemory());
	
	//public void gc() 清空垃圾收集器,释放垃圾空间
	runtime.gc();

运行结果

CPU处理器数量(availableProcessors):8
最大可用内存(maxMemory):3791650816
总共可运行的内存量(totalMemory):257425408
空闲内存(freeMemory):254741016

System类

System是一个系统类,主要是打印输出使用。

方法类型描述
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)普通数组复制
public long currentTimeMillis()普通获取当前时间,返会long类型

代码实现

	int[] arr1 = {1,2,3,4,5,6,7,8,9};
    int[] arr2 = {9,8,7,6,5,4,3,2,1};
    System.out.println("arr1 = " + Arrays.toString(arr1));
    System.out.println("arr2 = " + Arrays.toString(arr2));
    //数组复制,将arr2的0索引位置数据复制到arr1的2索引位置,长度为3.
    System.arraycopy(arr1,2,arr2,0,3);
    System.out.println("arr1 = " + Arrays.toString(arr1));
    System.out.println("arr2 = " + Arrays.toString(arr2));
    
    //获取当前时间的long类型值
    long l = System.currentTimeMillis();
    System.out.println(l);
    //通过Date(long date) 将long类型转为Date类型
    Date date = new Date(l);
    System.out.println(date);
    //通过SimpleDateFormat类实现日期格式化
    SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss:sss");
    System.out.println(simpleDateFormat.format(date));

运行结果

arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr2 = [9, 8, 7, 6, 5, 4, 3, 2, 1]
arr1 = [1, 2, 3, 4, 5, 6, 7, 8, 9]
arr2 = [3, 4, 5, 6, 5, 4, 3, 2, 1]
1606717623001
Mon Nov 30 14:27:03 CST 2020
2020年11月30日 14:27:03:003

对象克隆

Object类中提供的clone()方法

方法描述
public Object clone() throws CloneNotSupperortedException克隆对象

要实现克隆,克隆对象的类必须实现Cloneable接口。

代码实现

class Boy implements Cloneable{
  	private String name;
    private int age;
    public Boy(){
    }
    public Boy(String name,int age){
        this.name = name;
        this.age = age;
    }
    public void setName(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "Boy{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
    @Override
    protected Object clone() throws CloneNotSupportedException {
       return super.clone();
    }
}
public class Test {
    public static void main(String[] args) throws CloneNotSupportedException {
       Boy boy1 = new Boy("张三",20);
       Boy boy2 = (Boy)boy1.clone();
       boy2.setName("李四");
       System.out.println(boy1.toString());
       System.out.println(boy2.toString());
    }
}

运行结果

Boy{name='张三', age=20}
Boy{name='李四', age=20}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值