JAVA学习笔记12:常用类01

常用类01

  • Object类

    超类,是所有类的直接或间接父类
    常用方法

    • getClass()
      获得当前对象的类类型,返回值为Class类型
      以下代码可以判断两个对象是否为同一类的对象
    Class cls1 = a.getClass();
    Class cls2 = b.getClass();
    if(cls1 == cls2)
    	return true;
    return false;
    
    • hashCode()
      返回该对象的hash值
    • toString()
      返回该对象的字符串表示,默认为该类类名+hash值,通常对其进行重写
      假设以下为对象a的类重写的toString()方法
    public String toString(){
    	return "aba aba";
    }
    
    System.out.println(a);
    

    输出结果为 “aba aba”

    • equals()
      比较两个对象地址是否相同,返回类型为boolean。可以重写
    • finalize()
      当对象被判定为垃圾对象时,由JVM自动调用该方法,用以标记垃圾对象,进入回收队列
      垃圾对象:没有有效引用指向此对象时,为垃圾对象
      可以通过System.gc()方法手动通知JVM回收垃圾
  • 包装类

    基本数据类型所对应的引用数据类型

    基本数据类型包装类型
    byteByte
    shortShort
    intInteger
    longLong
    floatFloat
    doubleDouble
    booleanBoolean
    charCharacter

    装箱、拆箱

    把基本类型转换为引用类型的过程称为装箱,反之称为拆箱
    装箱可以通过构造方法或类中提供的方法实现

    int num = 18;
    Integer integer1 = new Integer(num);
    Integer integer2 = Integer.valueOf(num);
    

    拆箱可以通过访问对象中的数据值实现

    int num2 = integer1.inValue();
    

    JDK1.5之后,提供了自动装箱拆箱

    Integer i = 18;
    int a = i;
    

    各包装类提供了parse()方法,可以返回对应的基本类型的值

    String str = 128;
    int num = Integer.parseInt(str);
    

    整数缓冲区
    系统自动创建了-128~127之间的Integer类对象,当使用new直接赋值时,若在以上范围中,则不会创建新对象,会直接指向创建好的对象

    Integer i0 = 100;
    Integer i1 = 100;
    System.out.println(i1 == i2);
    

    以上代码运行时,结果为true。因为自动装箱使用的是valueOf()方法,100在缓冲区内,所以不会创建新的对象,i0和i1都指向同一个地址

  • String类

    字符串是常量,存放在字符串池(常量池)中,创建之后不可改变。该字符串指的是形如String str = "hello"中的"hello",对象str指向的是字符串池中的"hello"字符串。当给str赋应该新值时,“hello”并不会被改变,而会在字符串池中建立一个新的字符串,并令str指向他
    当使用如下方法时String str = new String("hello");,字符串池中会生成一个“hello”,堆中会生成一个指向“hello”的对象空间,str指向堆中的对象空间

    常用方法

    • int length()
      返回字符串长度
    • char charAt(int index)
      根据下标获取字符
    • boolean contains(String str)
      判断当前字符串中是否包含str
    • char[] toCharArray()
      将字符串转为字符数组
    • int indexOf(String str)
      查找str首次出现的下标,若不存在则返回-1。可以添加第二个参数,为从哪个下标开始查找
    • int lastIndexOf(String str)
      查找字符串在当前字符串中最后一次出现的下标索引
    • String trim()
      去掉字符串前后的空格
    • String toUpperCase()
      转换为大写
      toLowerCase()为转换小写
    • boolean endWith(String str)
      判断字符串是否以str结尾
      startWith(String str)判断开始
    • String replace(char oldChar, char newChar)
      将旧字符替换成新字符
      参数也可以是字符串
    • String[] split(String str)
      根据str做拆分,其中的str可以使用正则语句。如想要以空格或逗号做拆分且连续空格全部去除,str如下“[ ,]+”
    • boolean equals(String str)
      判断两字符串是否相等
      equalsIgnoreCase可以进行忽略大小写的比较
    • int compareTo(String str)
      对比两个字符串大小,返回结果为两字符串第一个不相同的字符的字典序号相减的值。如以下代码中,a得出为-23
      String s1 = "aa";
      String s2 = "axyz";
      int a = s1.compareTo(s2);
      
      当某一字符串为另一字符串的前缀时,返回结果为两者长度差
    • String subString(int beginIndex, int endIndex)
      返回一段子串

    可变字符串

    StringBuffer:可变长字符串,运行效率慢、线程安全
    StringBuilder:可变长字符串,运行效率快、线程不安全

    常用方法

    • append(String str)
      在尾部添加字符串str
    • insert(int index, String str)
      在index处插入str
    • replace(int begin, int end, String str)
      将begin到end替换为str
    • delete(begin, end)
      将begin到end之间的字符串删除
      ps:以上两个方法中参数左闭右开
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值