JAVA工具类

 1Object:所有类的父类,Object的方法是其他所有类都具有的
          hashCode():把对象通过某种算法变成一个数字,每个对象的hashCode值不一样。hashCode值就是对象的内存地址值

          toString():我们直接打印对象的时候,默认调用的就是toString()方法。全限定名+@+内存地址值的16进制数

          equals():底层源代码就是==,只能比较引用数据类型。
        ==比较基本数据类型,比得是值;
        ==比较引用数据类型,比的是地址值

          finalize():JVM垃圾回收有关系

   2 面试题
      1.equals和==有什么区别
    equals底层源代码就是==,只能比较引用数据类型。
    ==比较基本数据类型,比得是值;
    ==比较引用数据类型,比的是地址值
      2.final、finally、finalize的区别
            final   修饰变量:值不能发生变化(常量),
                 类:不能被继承,(太监类),
                 方法:不能被重写
            finally表示出不出异常都会执行
            finalize():JVM垃圾回收有关系


      如果我们创建对象的时候属性都一样的情况下,那么这两个对象相同吗?
           不相同,如果想让他们相同,需要重写equals和hashCode这两个方法


  3.String方法
    构造方法
        public String()
        public String(byte[] bytes)
        public String(byte[] bytes,int offset,int length)
    常用方法
        isEmpty()    判断是否为空
        length()    取到该String的长度
        equalsIgnoreCase(String as)    不区分大小写比较
        charAt(int index)    返回该下标的char
        substring(int start)    截取字符串下标从start开始
        substring(int start,int end)    截取区间字符串从start开始到end结束(包头不包尾)包前不包后
        replace(char old,char new)    替换字符串  如果替换有重复的那么替换全部
        trim()    去掉字母首尾空格
        indexOf()    寻找某个字符串在目标字符串的位置
        getBytes()    转换成bytes型数组
        toCharArray()    转换成char型数组
        String valueOf(char[] chs)    将入参类型转换为String
        toLowerCase()    将所有英文字母转换为小写字母
        toUpperCase()    将所有英文字母转换为大写字母
        concat(String str)    将指定字符串连接到此字符串的结尾

    String是一个用final修饰过的引用数据类型
    常量池:存在于元空间(方法区),提高效率
    引用数据类型存在堆里面


  4.StringBuffer
    StringBuffer是用来解决String更改字符串造成的时间浪费和空间浪费的
    append(String str)                    追加字符串
    insert(int offset,String str)    指定位置追加字符串
    deleteCharAt(int index)    删除下标处的字符
    delete(int start,int end)    删除下标区间的字符
    replace(int start,int end,String str)    替换区间字符  [ )
    reverse()                                    反转字符串
    substring(int start,int end)    截取区间字符串从start开始到end结束  [ )
    substring(int start)                    截取字符串
    split()                                    拆分字符串

       String、StringBuffer、StringBuilder的区别

    String           StringBuffer        StringBuilder
    不可变          可变                           可变
          线程安全        线程不安全
          多线程操作字符串       单线程操作字符串

    String的值是不可变的,这就导致每次对String的操作都会生成新的String对象,不仅效率低下,而且浪费大量优先的内存空间

     StringBuffer是可变类,和线程安全的字符串操作类,任何对它指向的字符串的操作都不会产生新的对象
    每个StringBuffer对象都有一定的缓冲区容量,当字符串大小没有超过容量时,不会分配新的容量,
    当字符串大小超过容量时,会自动增加容量 

    StringBuilder   可变类,速度更快
     


   5.包装类:对基本数据类型的加强,
    包箱 拆箱

    Integer的常用方法
        intValue()    转换成int
        parseInt(String s)    String转换成int
        valueOf(String s)    String转换成Integer
        Character常用的方法
        isUpperCase(char ch)    判断指定字符是否为大写字母
        isLowerCase(char ch)    判断指定字符是否为小写字母
        isDigit(char ch)    如果字符串中只含有数字则返回True
        toUpperCase(char ch)    将小写字符转换为大写
        toLowerCase(char ch)    将大写字符转换为小写

    util类
    Math常用的方法
        abs(int a)    取绝对值
        ceil(double a)    返回最小值(向上取整)
        floor(double a)    返回最大值(向下取整)
        max(int a,int b)     取最大值
        pow(double a,double b)    求幂
        random()        随机数 0-1之间的小数
        round(float a)    四舍五入成整数
        sqrt(double a)    平方根

    日期·
        public long getTime()//获取时间
        public void setTime(long time)//设置时间
        format方法是将日期转化为字符串
        parse方法是将字符串转化为日期

    日历(Calendar)
        getInstance()    获取日期
        get(int field)    获取年/月/日/时/分/秒
        add(int field,int amount)    计算时间
        set(int year,int month,int date)    设置时间

             日历和Date的转换
        1、Calendar转换成Date
        Calendar cal = Calendar.getInstance();
        Date date = cal.getTime;

        2、Date转换成Calendar
        Date date = new Date();
        Calendar cal = Calendar.getInstance();
        Cal.setTime(date );

    随机  Random

                  nextInt(整数)    0-整数
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值