JAVA高级-工具类

工具类

Object

Object: 所有类的父类

  1. Object类中的方法都可以被子类使用

Object类中的方法:

  • 1 getClass: 返回对象的字节码文件对象
  • 2 hashCode: 返回对象的哈希码值(对象的内存地址值)
  • 3.equals: 比较两个对象是否相等
  • 4.toString: getClass().getName() + “@” + Integer.toHexString(hashCode()); 类的全路径名 + @ + 对象的哈希码值的十六进制
    如果我们想按照自己的想法输出对象的信息,我们就需要重写toString方法
    全限定符名: 包名.类名
    面试

equals 和 == 的区别:

  • equals: 底层的代码就是==,
  • equals: 只能比较引用数据类型
  • == : 可以比较基本数据类型和引用数据类型,比较基本数据类型的时候比较的是值,比较引用数据类型的时候比较的是地址值

String

  • 被final修饰的类,不能被继承
  • 字符串存在于常量池中。 如果new String() 会在堆内存中开辟空间,如果是直接赋值的话,会在常量池中开辟空间
方法名作用返回值
isEmpty()判断是否为空boolean
length()取到该String的长度int
equals(Object obj)判断两个字符串是否相等boolean
equalsIgnoreCase(String as)不区分大小写比较Object
charAt(int index)返回该下标的charchar
substring(int start)截取字符串下标从start开始String
substring(int start,int end)截取区间字符串从start开始到end结束(包头不包尾)String
replace(char old,char new)替换字符串String
trim()去掉字母首尾空格String
indexOf()寻找某个字符串在目标字符串的位置int

StringBuffer

  • String 可以通过+,做字符串的拼接,但是效率低

常见方法
在这里插入图片描述

string、stringbuilder、stringbuffer都是Java中的字符串类,但它们有以下区别:

  • string是不可变的,一旦创建就不能修改,每次修改都会创建一个新的对象,因此在频繁修改字符串时,效率较低。
  • stringbuilder和stringbuffer都是可变的,可以在原有对象上进行修改,因此在频繁修改字符串时,效率较高。
  • stringbuilder是线程不安全的,而stringbuffer是线程安全的,因此在多线程环境下,应该使用stringbuffer。
  • stringbuilder是JDK1.5之后新增的类,而stringbuffer是早期就存在的类

包装

基本数据类型: 是没有方法的,但是可以通过包装类来实现方法的调用

  • 写法上只有
    • int Integer
    • char Character

剩下的都是首字母大写

  • 装箱:穿装备(变强) 基本数据类型—>包装类
  • 拆箱:脱装备(变弱) 包装类—>基本数据类型
    在这里插入图片描述
    在这里插入图片描述

Math

在这里插入图片描述

  • 向上向下取整
//ceil  向上取整
        double b = 3.56;
        double ceil = Math.ceil(b);
        System.out.println(ceil);
        //floor 向下取整
        double floor = Math.floor(b);
        System.out.println(floor);
random()生成随机数
//nexInt  生产一个随机数        nextInt(int n)  生成一个0-n之间的随机数
 		Random random = new Random();
        int i = random.nextInt(100);
        System.out.println(i);
Data

date表示日期

  • 1 秒= 1000 毫秒

SimpleDateFormat:

  • format Date -> String
  • parse String -> Date
// 获取当前时间的毫秒值
        long time = date.getTime();
        long l = System.currentTimeMillis();
// 日期格式化  yyyy-MM-dd HH:mm:ss:SSS   year month day hour minute second millisecond
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        String format = sdf.format(date);
        System.out.println(format);
       //这里需要注意的就是24时和12时的显示正则,H大写为24时计时法,h小写为12时计时法,两个h时,即hh,当为个位数时间时前面自动补0

Calender 日历类

日历类擅长的是堆日期进行加减操作
在这里插入图片描述

 Calendar instance = Calendar.getInstance();
        System.out.println(instance);
        instance.add(Calendar.MONTH,2);
        instance.add(Calendar.DAY_OF_MONTH,-2);

        // calendar转换成date
        Date time = instance.getTime();


        System.out.println(time);

        // date转换成calendar
//        instance.setTime(new Date());
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值