常用API

发布于 2023-07-10  724 次阅读


String

String类是一个不可变的字符序列,它可以表示一个文本信息。String类的常用方法有:

  • length():返回字符串的长度,即字符的个数。
  • charAt(int index):返回字符串中指定位置的字符,索引从0开始。
  • indexOf(String str):返回字符串中第一次出现str的位置,如果没有找到,返回-1。
  • lastIndexOf(String str):返回字符串中最后一次出现str的位置,如果没有找到,返回-1。
  • substring(int beginIndex, int endIndex):返回字符串中从beginIndex到endIndex(不包含)的子字符串。
  • replace(char oldChar, char newChar):将字符串中所有的oldChar替换为newChar,返回一个新的字符串。
  • toLowerCase():将字符串中所有的大写字母转换为小写字母,返回一个新的字符串。
  • toUpperCase():将字符串中所有的小写字母转换为大写字母,返回一个新的字符串。
  • equals(Object obj):判断字符串是否和obj相等,区分大小写。
  • equalsIgnoreCase(String str):判断字符串是否和str相等,不区分大小写。
  • split(String regex):根据给定的正则表达式regex分割字符串,返回一个字符串数组。

ArrayList

ArrayList类是一个动态数组,它可以存储多个同类型或不同类型的数据。ArrayList类实现了List接口,所以它可以使用List接口的所有方法,如:

  • add(E e):向列表的尾部添加指定的元素e。
  • add(int index, E e):在列表的指定位置index插入指定元素e。
  • get(int index):返回列表中指定位置index的元素。
  • set(int index, E e):将列表中指定位置index的元素替换为e,并返回被替换的元素。
  • remove(int index):移除列表中指定位置index的元素,并返回被移除的元素。
  • remove(Object o):移除列表中第一次出现的指定元素o,如果成功移除,返回true,否则返回false。
  • size():返回列表中元素的个数。
  • isEmpty():判断列表是否为空,如果没有元素,返回true,否则返回false。
  • contains(Object o):判断列表是否包含指定元素o,如果包含,返回true,否则返回false。
  • indexOf(Object o):返回列表中第一次出现o的位置,如果没有找到,返回-1。
  • lastIndexOf(Object o):返回列表中最后一次出现o的位置,如果没有找到,返回-1。
  • clear():清空列表中所有元素。
  • toArray():将列表转换为一个数组,并返回该数组。

ArrayList不能存储基本数据类型,需要转化为引用数据类型存储

Object

所有类默认继承的祖先类,提供的方法可供子类进行重写,如:

  • public String toString():返回类的字符串表示形式
  • public boolean equals(Object x):判断两个对象是否相等(输入eq+回车自动生成该方法)
  • public Object clone():拷贝当前对象(分为浅拷贝,深拷贝,同C++ 输入clone+回车自动生成该方法)

使用clone()前需要实现标记接口Cloneable才能克隆对象(implements Cloneable)

浅拷贝:{super.clone();}
深拷贝:
    {
        Test t2 = (Test)super.clone();
        t2.xxx = t2.xxx.clone();
        return t2;
    }

Objects

用来操作对象的工具类,类内均为静态方法,如:

  • boolean equals(Object a,Object b):先做非空判断在比较两个对象(当对象a为null时使用方法会出错,这时可以使用Object.equals)
  • boolean isNull(Object obj):判断对象是否为null 是则返回true
  • boolean nonNull(Object obj):与上面相反
  • 2,3均可用x == null代替

包装类

包装类可以把基本数据类型包装成对象

泛型和集合不支持基本数据类型,只能使用引用数据类型

  • 基本数据类型 -> 包装类(引用数据类型)
  • byte -> Byte
  • short -> Short
  • *int -> Integer
  • long -> Long
  • float -> Float
  • double -> Double
  • *char -> Character
  • boolean -> Boolean

除了int,char包装类均为首字母大写

基本类型数据和对象的转换:
    自动装箱:
        Integer a = 1;
    自动拆箱:
        int b = a;//Integer a
    应用:
        ArrayList<Integer> list;
        list.add(11);//自动装箱
    其他操作:
        基本类型转字符串:
            Integer a;
            1.Integer.toString(a);
            2.a.toString();
            3.a + "";
        *字符串转基本类型:
            String str = “29”;
            1.Integer.parseInt(str);//Double.parseDouble......(不建议)
            2.Integer.valueOf(str);//只需要记忆valueOf一个方法
            注:字符串是什么就转成什么数据类型,否则会报错

StringBuilder

代表可变字符串对象,相当于是一个容器,用来操作字符串(string是不可变的)

优点:比String更适合做字符串的修改操作,效率高.代码简洁

  • 常用方法:
    • 1.拼接 sb.append(x);//x可以是其他类型(支持链式编程,比+=更高效)
    • 2.翻转 sb.reverse();
    • 3.长度 sb.length();
    • 4.StringBuffer转String sb.toString();

StringBuffer

线程安全(可供大量用户同时使用)的StringBuilder(用法与StringBuilder相同,效率稍慢)

StringJoiner(JDK8)

高速,部分场景下代码简洁(更适合拼接操作)

  • 常用方法:
  • 构造器:
    • StringJoiner(间隔符)
    • StringJoiner(间隔符,开始符号,结束符号)
  • sj.add("X");//拼接(对于非字符串变量可以直接 变量+"")
  • sj1.merge(sj2);//合并sj1,sj2(不包括sj2前后缀)
  • sj.length();
  • sj.toString();

Math(数学工具类)

System

  • System.exit();//终止运行
  • System.currentTimeMillis();//返回当前系统时间(从1970-1-1-0:0:0到现在的毫秒数)

Runtime(单例类)

通过getRuntime方法创建对象

Runtime r = Runtime.getRuntime();
  • 常用方法:
    • r.exit();//终止运行
    • r.availableProcessors();//获取虚拟机能够使用的处理器数
    • r.totalMemory();//获取虚拟机中内存总量(字节)
    • r.freeMemory();//获取虚拟中空闲内存量
    • Process p = r.exec("路径");//启动某个程序,并返回改程序的对象
      • [启动程序后可以调用 p,destroy();销毁程序]