常用类(上)

目录

一、StringBuffer常用方法

public class Dmeo01 {
    public static void main(String[] args) {
        StringBuffer buf = new StringBuffer();
        //添加链
        buf.append("hello ").append("world ").append("hello ").append("tx ").append("niHao ");
        //增加链
        buf.insert(0,"Hello ").insert(7,"world ");
        //删除链
        buf.delete(6,12).delete(6,12);
        //数据翻转
        buf.reverse();
        System.out.println(buf);
    }
}

二、StringBuffer、String、StringBuilder区别

  1. 都实现了一个接口CharSequence。
  2. StringBuffer、String在JDK1.0提出,StringBuilder在JDK1.5提出
  3. StringBuffer的方法采用了synchronized(同步),StringBuilder采用了异步(非同步),所以StringBuffer的性能较低,但线程安全,StringBuilder性能较高、但线程不安全。
  4. CharSequence接收字符串
    在这里插入图片描述

三、常用类库

AutoCloseable:
  1. 自动资源释放,资源回收的类要实现AutoCloseable
  2. 语法:
 try(AutoCloseable子类实例 对象 = new AutoCloseable子类实例()){
        方法
    }catch(Exception e){
        System.out.println("自动关闭");
    }
System:
  1. currentTimeMillis:可以利用这个获取程序运行的时间
  2. arraycopy:拷贝数组数据放到另一个数组内,可以指定替换的长度
Cleaner对象回收(JDK1.9):
class Member implements Runnable{
    public Member(){
        System.out.println("【Member开始】Hello !!!");
    }

    @Override
    public void run(){
        System.out.println("【Member结束】World!!!");
    }
}

class MemberClose implements AutoCloseable{
    private static final Cleaner close = Cleaner.create();  //创建回收对象
    private Cleaner.Cleanable closeable;    //可以被回收的对象

    public MemberClose(Member member){      //处理要回收的对象
        this.closeable = close.register(this,member);   //注册一个回收对象
    }
    @Override
    public void close() throws Exception {
        this.closeable.clean(); //回收对象
    }
}
public class Demo01 {
    public static void main(String[] args) {
        Member member = new Member();
        try(MemberClose close = new MemberClose(member)){   //进行对象回收的处理

        }catch (Exception e){
            e.printStackTrace();
        }
    }
}

结果:
【Member开始】Hello !!!
【Member结束】World!!!
clone:

克隆数据,存储的地址不一样,不常用,要实现clone要在克隆的类上实现Closeable接口

class Member implements Cloneable {
    private String name;
    private int age;

    public Member(String name, int age) {
        this.name = name;
        this.age = age;
    }

    @Override
    public String toString() {
        return "Member{" + super.toString() + "name='" + name + '\'' + ", age=" + age + '}';
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return super.clone();
    }
}

public class Demo01 {
    public static void main(String[] args) throws CloneNotSupportedException {
        Member memberA = new Member("tx", 19);
        Member memberB = (Member) memberA.clone();	//要强制转型
        System.out.println(memberA);
        System.out.println(memberB);
    }
}

结果:
Member{com.tx.clone.Member@2d98a335name='tx', age=19}
Member{com.tx.clone.Member@7eda2dbbname='tx', age=19}

四、Math常用类

round:
  1. 使用Math.round()会四舍五入直接舍弃掉小数位,并且数据为负数时小数不大于0.5时会直接舍弃掉,不进位。
public class Demo01 {
    public static void main(String[] args) {
        System.out.println("9.5使用Math.round()方法后:"+Math.round(9.5));
        System.out.println("9.51使用Math.round()方法后:"+Math.round(9.51));
        System.out.println("-9.5使用Math.round()方法后:"+Math.round(-9.5));
        System.out.println("-9.51使用Math.round()方法后:"+Math.round(-9.51));
    }
}
结果:
9.5使用Math.round()方法后:10
9.51使用Math.round()方法后:10
-9.5使用Math.round()方法后:-9
-9.51使用Math.round()方法后:-10
  1. 保留小数点的方法
 /**
     *保留小数位的四舍五入
     * @param num   要操作的数据
     * @param digit 保留的位数
     * @return  返回操作后的值
     */
    public static double Keep(double num, int digit) {
        return Math.round(num * Math.pow(10, digit)) / Math.pow(10, digit);
    }
Random:
随机类
Random ran = new Random();
int num = ran.nextInt(37);	//37表示范围在0到36之间的整数
//随机数类有很多数据类型
其他:

大数字使用 BigInteger和BigDecimal但只能进行基础的操作,最好使用第三方组件。

五、Array

1. public static void sort(数据类型[] a):自动排序(自己要懂)
/**
     * 用嵌套循环进行排序
     */
    public static int print(int num) {
        int arr[] = {1, 2, 8, 6, 49, 51, 39, 57, 11, 59, 53, 77, 192, 25, 156, 169};
        for (int x = 0; x < arr.length - 1; x++) {  //排序的轮数
            int temp;
            for (int y = 0; y < arr.length; y++) {  
                if (y < arr.length - 1 && arr[y] > arr[y + 1]) {
                    temp = arr[y + 1];
                    arr[y + 1] = arr[y];
                    arr[y] = temp;
                } else if (y < arr.length - 1 && arr[y] < arr[y + 1]) {
                    continue;
                } else {
                    break;
                }
            }
        }
        return printArray(num,arr);
    }
2. public static String toString(数据类型[] a):将数据转换成字符串输出
3. public static void fill(数据类型[] a,数据类型 val):”数据填充
4. public static boolean equals(数据类型[] a,数据类型[] b):两个数据进行比较(必须先排序)
5. public static int binarySearch(数据类型[] a,数据类型[] key):二分法查找(要会)
 private static int printArray(int num, int arr[]) {
        int low = 0;    //开始索引
        int high = arr.length - 1; //结束索引
        //利用进位符进行计算求出中间的索引
        while (low <= high) {   //当开始索引大于结束索引表示不存在
            int intermediate = low + high >>> 1;
            if (arr[intermediate] == num) {        //num表示要查找的数据
                return intermediate;
            } else if (arr[intermediate] > num) {
                high = intermediate - 1;    
            } else {
                low = intermediate + 1;
            }
        }
        return -1;      //数据不存在
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值