Java常用类

目录

API概述

  • Object
  • Scanner
  • String
    • 构造方法
    • 判断功能
    • 获取功能
    • 转换功能
    • 其他功能
  • StringBuffer
    • 构造方法
    • 方法
  • 添加功能、删除功能、替换功能、反转、截取
  • StringBuilder
  • Arrays
  • Integer
  • Character
    • 构造方法
    • 其他方法
  • Math
  • Random
  • System
  • BigInteger
  • BigDecimal
  • Date

API概述

  • 应用程序编程接口 Application Programming Interface
  • Java API即JDK中提供的各种功能的Java类

Object

  • 所有类的根类

  • 无参构造方法

  • public int hashCode()

    • 返回该对象的哈希码值

    哈希值是根据哈希算法计算出来的一个值,这个值和地址值有关,但不是实际地址值,可以理解为地址值

  • public final Class getClass()

    • 返回此 Object的运行时类
    • Class类的方法
      • public String getName():以 String 的形式返回此 Class 对象所表示的实体(类、接口、数组类、基本类型或 void)名称。
  • public String toString()

    • 返回该对象的字符串表示
    • 通常,toString 方法会返回一个“以文本方式表示”此对象的字符串
    • 结果应是一个简明但易于读懂的信息表达式
    • Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at
      标记符“@”和此对象哈希码的无符号十六进制表示组成。换句话说,该方法返回一个字符串,它的值等于:
      getClass().getName() + '@' + Integer.toHexString(hashCode())
      • 这个信息,实际意义不大,建议所有子类都重写此方法,把所有的成员变量值返回即可
  • public boolean equals(Object obj)

    • 指示其他某个对象是否与此对象“相等”

      public boolean equals(Object obj) {
              return (this == obj);
          }
      //这个方法默认比较的是地址值,一般来说意义不大
      //故一般都要重写方法
      
    • 怎么重写

      • 一般都是比较对象的成员变量值是否相等
      • String类型的equals方法比较的是字符串的值/内容是否相等
      • 重写保证程序的健壮性,自动生成
  • protected void finalize() throws Throwable

  • protected Object clone() throws CloneNotSupportedException

    • 标记接口

Scanner

  • 构造方法:public Scanner(InputStream source)
    • System.in:``public static final InputStream in
  • public boolean hasNextXxx():
    • 判断是否是某种类型的元素
  • public Xxx nextXxx():
    • 获取该元素
  • 问题
    • 先获取一个数值,在获取一个字符串
      • \n会被扫描成字符串
      • 解决方法
        • 获取一个数值以后,再创建一个新的键盘录入对象获取字符串
        • 把所有数据都按字符串获取,然后要什么,再转换

String

构造方法

  • public String():空构造
  • public String(byte[] bytes):把字节数组转成字符串
  • public String(byte[] bytes, int index, int length):把字节数组的一部分转成字符串
  • public String(char[] value):把字符数组转成字符串
  • public String(char[] value, int index, int count) :把字符数组的一部分转成字符串
  • public String(String original):把字符串常量值转成字符串

判断功能

  • boolean equals(Object obj):比较字符串的内容是否相同,区分大小写

  • boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,不区分大小写

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

  • boolean startsWith(String str):判断开头

  • boolean endsWith(String str):判断结尾

  • boolean isEmpty(String str):判断字符串为空

    • 注意:字符串内容为空,和字符串对象为空

    NullPointerException:空指针异常(对象未创建等)

获取功能

  • public int length():获取字符串长度
  • public char charAt(int index):获取指定索引位置的字符
  • public int indexOf(int ch):返回指定字符在此字符串中第一次出现位置的索引
    • int'a'97都可以代表 'a',而char类型只能写'a'没法写97
  • public int indexOf(String str):返回指定字符串在此字符串中第一次出现位置的索引
  • public int indexOf(int ch, int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引
  • public int indexOf(String str, int fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引
  • public String subString(int start):从指定位置开始截取字符串,默认到末尾
  • public String subString(int start, int end):从指定位置到指定位置结束截取字符串(包括头,不包括尾)

转换功能

  • public byte[] getBytes():把字符串转化为字节数组
  • public char[] toCharArray():把字符串转换为字符数组
  • public static String valueOf(char[] chc):把字符数组转换为字符串
  • public static String valueOf(int i):把int类型的数据转换成字符串
    • String类的valueOf方法可以把任意类型的数据转换成字符串。
  • public String toLowerCase():把字符串转成小写
  • public String toUpperCase():把字符串转换成大写
  • public String concat(String str):把字符串进行拼接

其他功能

  • 替换功能
    • String replace(char old, char new)
    • String replace(String old, String new)
  • 去除字符串两端空格
    • String trim
  • 按字典顺序比较两个字符串
    • int compareTo(String str)
    • int compareToIgnoreCase(String str)

StringBuffer

  • 字符串的拼接操作每次都会构建一个新的String对象,耗费时间和空间,故引入StringBuffer
  • 长度可变

构造方法

  • public StringBuffer()
    • 无参构造
  • public StringBuffer(int capacity)
    • 指定容量的字符串缓冲区对象
  • public StringBuffer(String str)
    • 指定字符串内容的字符串缓冲区对象
  • public StringBuffer(CharSequence seq)

方法

  • public int capacity()
    • 返回当前容量
  • public int length()
    • 返回长度(字符数)

添加功能、删除功能、替换功能、反转、截取

见API,此处仅提供方法名

  • appendinsert
  • deletedeleteCharAt
  • replacereverse
  • subString

StringBuilder

  • API,和StringBuffer类似

Arrays

  • 包含操作数组(排序和查找)的各种方法
  • toString
  • sort
    • 底层是快速排序,详细见源代码
  • binarySearch
    • 查找不到时候,返回值为负值但不是常识中的-1,原因见源码

Integer

  • 在对象中包装了一个基本类型int的值。其对象包含了一个int类型的字段
  • 提供了多个方法在intString之间互相转换
    • intValue()/parseInt()
  • public static String--->toBinaryString/toHexString/toOctalString:类名调用
    • 十进制到任意进制:public static String toString(int i, int radix):类名调用
    • 任意进制到十进制:public static int parseInt(String s, int radix):类名调用
    • 进制的范围:2-36
  • public static final int--->MAX_VALUE/MIN_VALUE:类名调用

注意:基本类型与包装类的便捷实用

/*
    JDK5新特性:
        自动装箱:把基本类型自动转换为包装类型
        自动拆箱:把包装类型自动转换为基本类型
*/
Integer ii = 100;   // 自动装箱
ii += 200;          // 自动拆箱
System.out.println("ii" + ii);

// 反编译
Integer ii = Integer.valueOf(100);          // 自动装箱的实现
ii = Integer.valueOf(ii.intValue() + 200);  // 自动拆箱,再自动装箱
System.out.println(new StringBuilder("ii:")).append(ii).toString());

// 使用时候若 Integer ii = Null  上面就会出现空指针异常,NullPointerException
// 故先判断后再使用   if(ii != Null){...}



基本类型 引用类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean

Character

  • char的包装类

构造方法

  • public static Character(char value)

其他方法

  • isUpperCase/isLowerCase/isDigit
  • toUpperCase/toLowerCase

Math

  • 用于数学运算的类
  • 包含基本数学运算的方法
    • 初等指数,对数,平方根,三角函数等等
//成员变量
public static final double E
public static final double PI
//成员方法
public static int abs(int a)
public static double ceil(double a)
public static double floor(double a)
public static int max(int a, int b) //min
public static double pow(double a, double b) //a^b
public static double random()  //[0.0, 1.0)
public static int round(float a /*double a*/) //四舍五入,详见API
public static double sqrt(double a) //正平方根

Random

  • 产生随机数的类
//构造方法
public Random()//默认种子,当前时间的毫秒值
public Random(long seed)//给出指定的种子,给定种子后,每次得到的随机数是相同的
    
//成员方法
public int nextInt()    //返回int范围内的随机数
public int nextInt(int n)  //[0, n)范围内的随机数
    

System

  • 最终类,包含一些类字段和方法,不能被实例化
public static void gc()
public static void exit(int status) //终止当前正在运行的Java虚拟机
public static long currentTimeMillis()
public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)

BigInteger

  • Integer范围不够大
    • Integer.MAX_VALUE
    • BigInteger用来描述更大的值
  • 不可变的,任意精度的有符号十进制数
public BigInteger(String val)
//加减乘除
public BigInteger add(BigInteger val)
public BigInteger substract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger divideAndReminder(BigInteger val)

BigDecimal

  • 运算时floatdouble会丢失精度,因而此类拿来精确的描述、计算浮点类
  • 不可变的,任意精度的有符号十进制数,可以解决数据丢失问题
public BigDecimal(String val)
    //加减乘除
public BigDecimal add(BigDecimal augend)
public BigDecimal substract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor)
public BigDecimal divide(BigInteger divisor, int scale, int roundindMode)//商几位小数,如何舍取

Date

  • 表示特定的瞬间,精确到毫秒
public Date()   //根据当前的默认毫秒值创建日期对象
public Date(long date) //根据给定的毫秒值创建日期对象


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容