java常用类(一)

java常用类(一)

Object类:一切子类的父类

  • public int hashCode() 返回对象的哈希码值(可以理解为地址值,但不是实际地址值)

  • public final class getClass() 返回此Object类运行时类class类的方法

  • public String getName() 已String的形式返回此class

    String str = obj.getClass().getName();//打印当前类名及包名

  • public String toString() 返回该对象的字符串表示

    =this.getClass().getName()+’@’+Integer.toHexString(this.hashCode)

  • public boolean equals(Object obj) 指示其他某个对象是否与此对象相等

    父类的equals比较的是地址值,一般子类重写该方法

  • protected void finailize(): 垃圾回收器,当垃圾回收器确定不存在该对象的更多应用时,有对象的垃圾回收器调用此方法。什么时候回收不确定时间

  • protected Object clone() 创建并返回一个对象的副本

    implements Cloneable //子类重写时要接口Cloneable,并扔出异常

    //浅克隆
    Students s = new Students();
    Object obj = s.clone();
    Students s2 = (Student)obj;
    

面试题 : ==和equals的区别

  • ==

    基本类型:比较的是值是否相等

    引用类型:比较的是地址值是否相等

  • equals()

    只能比较引用类型。默认情况下,比较的是地址值是否相等,但是我们可以根据需要重新该方法

Scanner类

  • InputStream is = System.in; //输入流
  • Scanner(InputStream is); //构造方法
  • hasNextXxx(); //判断是否是某种类型
  • nextXxx(); //返回某种类型的元素

String类

<1>构造方法
  • public String() 空构造
  • public Strin(bute[] bytes) 把字节数组转化为字符串
  • public String(byte[] bytes,int index, int length) 把字节数组的一部分转化为字符串
  • public String(char[] value) 把字符串数组转成字符串
  • public String(char[] value,int index, int count) 把字符串数组的一部分转成字符串

构造方法相关知识

  • a.字符常量池:一旦被赋值就存在于常量池中,不能改变

    面试题:下面分别创建了几个对象

    String s1 = new String("hello world");
    String s2 = "hello world";
    

    区别:前者会创建两个对象,后者会创建一个对象

  • 字符串如果是变量相加,先开空间,再拼接。字符串如果是常量相加,是先加,然后在常量池找,如果有直接返回,否则就创建对象

<2>String类的成员方法
A. 判断功能
  • boolean equals (Object obj) 比较字符串的内容是否相同,区分大小写

  • boolean equalsIgnoreCase(String str) 不区分大小写

  • boolean contains(String str) 判断大字符串是否包含小字符串

  • boolean startsWith(String str) 判断字符串是否已某个指定字符串开头

  • boolean endsWith(String str) 判断字符串是否已某个指定字符串结尾

  • boolean isEmpty() 判断字符串内容是否为空

    注意:

    String s = "";  //字符串内容为空
    String s = null; //字符串对象为空
    
B. 转化功能
  • byte[] getBytes() 把字符串转化为字节数组

  • char[] toCharArray() 把字符串转化为字符数组

  • static String valueOf(char[] chs) 把字符数组转化为字符串

  • static String valueOf(int i) 把int类型的数据转化为字符串

    String类的value方法可以把任意类型的数据转化为字符串

  • String toLowerCase() 把字符串转成小写

  • String toUpperCase() 把字符串转成大写

  • String concat(String str) 把字符串拼接

C.获取功能
  • int length 获取字符串长度

  • char charAt(int index) 获取指定索引位置的字符

  • int indexOf(int ch) 获取指定索引位置的字符

  • int indexOf(int ch, int fromIndex) 返回字符串在指定索引位置之后第一次出现的字符

  • int indexOf(String str)

  • int indexOf(String str, int fromIndex)

  • String subString(int start) 从指定位置截取字符,默认到结尾

  • String subString(int start, int end) 截取字符串,包左不包右

    已知一个字符串,输出另一个字符串,第一个字符大写,其余小写

    String result = s.subString(0,1).toUppserCase().concat(s.subString(1).toLowerCase());
    
D.其他功能
  • 替换功能

    Strnig replace(char old, char new)

    String replace(String old, String new)

  • 去除空格

    String trim()

  • 按字典顺序比较两个字符串

    int compareTo(String str) 相等返回0,大于返回1,小于返回-1

    int compareToIgnoreCase(String str)

SringBuffer类

线程安全的可变字符串。长度和内容可变,而String不可变

A.构造方法
  • public StringBuffer 无参构造
  • public StringBuffer(int capacity) 指定容量的字符串缓冲区对象
  • public StringBuffer(String str) 指定字符串内容的缓冲区对象
B.方法
  • public int capacity() 返回当前容量(理论值,默认为16)

  • public int length() 返回当前长度(实际值)

C.成员方法
  • public StringBuffer append(String str) 添加功能,任意类型转换为字符串

    sb.append("hello").append("true").append(12).append(34.56)
    
  • public StringBuffer insert(int offset, String str) 在指定位置插入字符串

  • public StringBuffer deleteCharAt(int index) 删除指定位置的字符

  • public StringBuffer delete(int start, int end)

  • public StringBuffer replace(int start, int end, String str) 替换字符串,包左不包右

  • public StringBuffer reverse() 反转功能

  • public StringBuffer substring(int start) 截取

  • public SringBuffer substring(int start, int end) 截取,包左不包右

D. StringBuffer与String之间的相互转换
  • String ----> StringBuffer

    // 1.通过构造方法
    StringBuffer sb = new StringBuffer(s);
    //2.通过append方法
    sb.append(s);
    
  • StringBuffer ----> String

    //1.通过构造方法
    String s = new String(sb);
    //2.通过toString方法
    String s = sb.toString();
    

面试题:String, StringBuffer, StringBuilder的区别?

  • String是内容不可变的,而StringBuffer, StringBuilder都是内容可变的
  • StringBuffer是同步的,数据安全高,效率低。StringBuilder不是同步的,数据安全低,效率高。

StringBuffer和数组的区别

  • 二者都可以看作一个容器,装其他数据
  • StringBuffer的数据最终是一个字符串数据,而数组可以存放多种数据,但必须是一种数据类型的
  • 形式参数:String作为参数传递,和基本类型是一样的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值