Java常用api(lang)

Object类

所有类的父类

方法:

protected Object clone()

创建对象的副本,这个方法的功能是根据要clone的类在内存中单独分配空间并创建一个类的副本,而不是创建一个该类的引用。使用此方法的类必须要实现cloneable接口

public class ObjectTest implements Cloneable {//需要实现Cloneable接口

    public static void main(String[] args) throws CloneNotSupportedException {
        ObjectTest objectTest = new ObjectTest();
        ObjectTest objectTest2 = objectTest;//创建引用
        ObjectTest objectTest3 = (ObjectTest) objectTest.clone();//创建新对象

        System.out.println(objectTest);
        System.out.println(objectTest2);
        System.out.println(objectTest3);
    }
}
com.twelvesunflowers.test.ObjectTest@7852e922
com.twelvesunflowers.test.ObjectTest@7852e922
com.twelvesunflowers.test.ObjectTest@4e25154f

 

public final Class<?> getClass()

返回该类,返回的 Class 对象是由所表示类的 static synchronized 方法锁定的对象

 

public int hashCode()

返回该对象的哈希码值。支持此方法是为了提高哈希表(例如 java.util.Hashtable 提供的哈希表)的性能。

 

public boolean equals(Object obj)

判断指向的内存地址是否相同,一般需要重写此方法,String类已经重写了此方法,当此方法被重写时,通常有必要重写 hashCode 方法,以维护 hashCode 方法的常规协定,该协定声明相等对象必须具有相等的哈希码。

 

public String toString()

Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。建议所有子类都重写此方法。

 

public final void notify()

唤醒在此对象监视器上等待的单个线程。如果所有线程都在此对象上等待,则会选择唤醒其中一个线程。选择是任意性的,并在对实现做出决定时发生。线程通过调用其中一个 wait 方法,在对象的监视器上等待。

 

public final void notifyAll()

唤醒在此对象监视器上等待的所有线程。线程通过调用其中一个 wait 方法,在对象的监视器上等待。

 

public final void wait(long timeout) throws InterruptedException

在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。

 

public final void wait() throws InterruptedException

 

String类

  字符串对象,本质是一个字符数组,一旦被赋值不能改变。

  是一个特殊的引用数据类型,直接输出字符串对象是输出该对象的数据

构造器

  String(String original):把字符串数据封装成字符串对象

 

String s1 = new String("hello");

   String(char[] value):把字符数组的数据封装成字符串对象

 

char [] chars = {'h','e','l','l','o'};

String s2 = new String(chars);

       String(char[] value, int index, int count):把字符数组中的一部分数据封装成字符串对象

 

char [] chars = {'h','e','l','l','o'};

String s3 = new String(chars,1,3);

 

  直接赋值

String s4 = "hello";

构造方法创建字符串对象和直接赋值创建字符串对象的区别

  字符串的内容是存储在方法区的常量池中的,为了方便字符串重复使用,通过构造方法创建的字符串对象是在堆内存中创建一个引用地址指向常量池中的字符串数据,直接赋值创建字符串对象是直接在常量池中创建并引用。

 

 

/*
*==:基本数据类型比较数值是否相等
*      引用数据类型比较地址值是否相等
*/
String s1 = new String("hello");
String s2 = "hello";
String s3 = "hello";
                
System.out.println("s1==s2:"+(s1==s2)); //false
System.out.println("s1==s3:"+(s1==s3)); //false
System.out.println("s2==s3:"+(s2==s3)); //true
    

判断功能方法

  public boolean equals(Object anObject) 将 anObject 的字符串表示和此字符串进行字符序列的比较(字符串内容),相同返回true。重写了Object的equals()方法 

  public boolean equalsIgnoreCase(String anotherString ) 比较两个字符串内容,忽略大小写

  public boolean contains(CharSequence s) 当且仅当此字符串包含指定的 char 值序列时,返回 true

  public boolean endsWith(String suffix) 测试此字符串是否以指定的后缀结束。

  public boolean matches(String regex) 告知此字符串是否匹配给定的 正则表达式

  public boolean startsWith(String prefix) 测试此字符串是否以指定的前缀开始。

获取功能方法

  public char charAt(int index) 获取指定索引处的字符

  public String replace(char oldChar,char newChar) newChar替换oldChar

  public int indexOf(String str) 返回指定字符串第一次出现的索引

  public int indexOf(String str) 返回字符串的长度

  public String substring(int beginIndex) 截取字符串

  public byte[] getBytes() 使用平台的默认字符集将此 String 编码为 byte 序列

转换功能方法

  public char[] toCharArray() 将字符串转换为一个字符数组

  public String toLowerCase() 全部小写

  public String toUpperCase() 全部大写

  public static String valueOf(基本数据类型或object) 转为string

其他功能方法 

  public String trim() 去掉前后空格

  public static String format(String format,Object... args) 以format格式化输出(参照c语言的printf)

  public String[] split(String regex)  根据给定 正则表达式的匹配拆分此字符串,返回字符串数组。常用.split(",")。

StringBuilder类

  可变字符串。

  和String的区别:

String StringBuilder
不可变 可变
拼接会产生新对象 拼接不产生新对象

 

  将 StringBuilder 的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用 StringBuffer

常用方法

  构造方法

    StringBuilder()

    StringBuilder(String str)

  成员方法

    public StringBuilder append(任意类型) 添加数据,返回自身引用

    public StringBuilder insert(int offset,任意类型) 以offset偏移量插入数据

    public int capacity() 返回当前容量。容量指可用于最新插入字符的存储量,超过这一容量便需要再次分配。

    public StringBuilder reverse() 反转字符串。

    public int length() 返回字符串长度(字符个数)

posted @ 2019-04-18 16:47  十二朵向日葵  阅读(280)  评论(0编辑  收藏  举报