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) //根据给定的毫秒值创建日期对象


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335