Java常用API

Java常用API

1.String类

概述: String 类代表字符串,Java 程序中的所有字符串文字(例如“abc”)都被实现为此类的实例。也就是说,Java 程序中所有的双引号字符串,都是 String 类的对象。String 类在 java.lang 包下,所以使用的时候不需要导包!

  • String类常用的构造方法

    方法名说明
    public String()创建一个空白字符串对象,不含有任何内容
    public String(char[] chs)
    public String(char[] value, int offset, int count)
    根据字符数组的内容,来创建字符串对象
    public String(byte[] bys)
    public String(byte[] bytes, int offset, int length)
    根据字节数组的内容,来创建字符串对象
    String s = “abc”; 在字符串池中维护直接赋值的方式创建字符串对象,内容就是abc
  • 创建字符串对象两种方式的区别

    • 通过构造方法创建
      • 通过 new 创建的字符串对象,每一次 new 都会申请一个内存空间,虽然字符串内容相同,但是地址值不同

        char[] chs = {'a','b','c'};
        String s1 = new String(chs);// s1字符串的内容: abc
        String s2 = new String(chs);// s2字符串的内容: abc
        // 上面的代码中,JVM首先会先创建一个字符数组,然后每一次new的时候都会有一个新的地址,只不过s1和s2参考的字符串内容是相同的
        
    • 直接赋值方式创建

      • 以“”方式给出的字符串,只要字符序列相同(顺序和大小写),无论在程序代码中出现几次,JVM 都只会建立一个 String 对象,并在字符串池中维护

        String s3 = "abc";
        String s4 = "abc";
        // 上面的代码中,针对第一行代码,JVM会建立一个String对象放在字符串池中,并给s3参考;第二行代码,则让s4直接参考字符串池中String对象,也就是说他们本质上是同一个对象
        
  • String类的特点

    1. String类的字符串不可变,它们的值在创建后不能被更改,每一次拼接String类的字符串对象,都会创建一个新的字符串对象
    2. 虽然 String 的值是不可变的,但是它们可以被共享
    3. 字符串效果上相当于字符数组( char[] )
      • String底层是靠字符数组实现的,jdk9底层是字节数组。
  • 字符串的比较

    1. ==号的比较
      • 比较基本数据类型:比较的是具体的值
      • 比较引用数据类型:比较的是对象地址值
    2. 是equals方法
      • 比较两个字符串内容是否相同、区分大小写
    3. 比较字符串内容是否相等,区分大小写,需要使用String类的equals方法,千万不要用 == 比较
    4. 如果比较字符串内容是否相等,不区分大小写,需要使用String类的**equalsIgnoreCase()**方法
2.String类常用方法
 常用的方法:
        concat();  //把两个字符串拼接起来,获取一个新的字符串length();  //获取字符串的长度(其实就是获取字符串中 字符的个数)      equals();  //比较两个字符串的内容是否相同。    //区分大小写
        equalsIgnoreCase();  //比较两个字符串的内容是否相同。    //忽略大小写charAt();  //根据给定的索引,获取对应位置的字符indexOf(); //获取指定的字符 在字符串中 第一次出现的位置(索引),找不到返回-1
            //int index = a1.indexOf('h');   从头找,'h'第一次出现的位置
            //int index = a1.indexOf('h',3); 从索引为3的元素开始往后找,'h'第一次出现的位置
       lastIndexOf();  //获取指定的字符 在字符串中 最后一次出现的位置(索引),找不到返回-1
            //int index = a1.lastIndexOf('h');   从尾部找,'h'最后一次出现的位置
            //int index = a1.lastIndexOf('h',3); 从索引为3的元素开始往前找,'h'最后一次出现的位置 substring(); //截取字符串,返回新的字符串
                    //String newStr = a1.substring(2);       //从给定索引,直接截取到字符串末尾
                    //String newStr = a1.substring(2,5);     //包左不包右(前闭后开), 能取索引2的元素,不能取索引5的元素isEmpty(); //判断字符串是否为空(长度为0返回true,不为0返回false)contains();    //判断字符串中是否包含 给定的字符串。
        endsWith(); //判断字符串是否以 给定的字符串 结尾。
        startsWith(); //判断字符串是否以 给定的字符串 开头。replace(); //用新内容替代旧内容,返回新的字符串    
        toLowerCase();  //把字母都转成其对应的小写形式。
        toUpperCase();  //把字母都转成其对应的大写形式。
		toCharArray() // 把字符串转换为数组
		getBytes() // 把字符串转换为字节数组        trim();            //移除首尾空格。split();   //根据给定的内容,切割字符串,返回字符串数组

    理解的口诀:
        判断功能:  首尾中空加判断  

        获取功能:   截长取位取元素

        转换功能:   大小拼串转数组
            //toCharArray(), getBytes();
        其他功能:  除空切换字典拍
            //copareTo();
3.StringBuilder类

概述: StringBuilder 是一个可变的字符串类,我们可以把它看成是一个容器,这里的可变指的是 StringBuilder 对象中的内容是可变的

StringBuilder类和String类的区别:

  • String类:内容是不可变的

  • StringBuilder类:内容是可变的,StringBuilder 拼接是直接在本身的字符串末尾进行拼接的

StringBuilder类的构造方法:

方法名说明
public StringBuilder()创建一个空白可变字符串对象,不含有任何内容
public StringBuilder(String str)根据字符串的内容,来创建可变字符串对象

StringBuilder类类常用方法:

public StringBuilder append(任意类型) 拼接数据,并返回对象本身
public StringBuilder insert(int offset, 任意类型) 在指定位置插入数据,并返回对象本身
public StringBuilder reverse()  反转字符串,并返回对象本身

StringBuilder和String相互转换:

  • String转换为StringBuilder:

    public StringBuilder(String s):通过StringBuilder的构造方法就可以实现把 String 转换为 StringBuilder

  • StringBuilder转换为String:

    public String toString():通过StringBuilder类中的 toString() 就可以实现把 StringBuilder 转换为 String

4.Object类
  • java.lang.Object类是Java语言中的根类,即所有类的父类。

    如果一个类没有特别指定父类, 那么默认则继承自Object类。

常用方法:

  • public String toString():返回该对象的字符串表示。
    1. toString方法返回的字符串内容格式为: 类的全路径+@+十六进制数的地址值
    2. 直接打印对象名,其实就是打印对象调用toString方法返回的字符串内容
  • public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。容易抛出空指针异常
    1. Object类的equals()方法默认比较的是2个对象的地址值是否相等(==比较)
    2. 由于java中所有类都是继承Object类,所以如果类中没有重写equals方法,默认就是地址值比较
    3. 如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以重写equals方法
5.Objects类

JDK7添加了一个Objects工具类,它提供了一些方法来操作对象,它由一些静态的实用方法组成,这些方法是null-save(空指针安全的)或null-tolerant(容忍空指针的),用于计算对象的hashCode、返回对象的字符串表示形式、比较两个对象。

Objects: 避免空指针异常(容忍空指针)
               public static boolean equals(Object a, Object b):判断两个对象是否相等。
               源码:
                    public static boolean equals(Object a, Object b) {
                       return (a == b) || (a != null && a.equals(b));
                   }
6.native方法

在Object类的源码中定义了 native 修饰的方法, native 修饰的方法称为本地方法。这种方法是没有方法体的,我们查看不了它的实现,所以大家不需要关心该方法如何实现的

  • 当我们需要访问C或C++的代码时,或者访问操作系统的底层类库时,可以使用本地方法实现。

    也就意味着Java可以和其它的编程语言进行交互。

  • 本地方法的作用: 就是当Java调用非Java代码的接口。方法的实现由非Java语言实现,比如C或C++。

6.Date类

java.util.Date类 表示一个日期和时间,内部精确到毫秒。

Date类中的构造方法:

  • public Date():从运行程序的此时此刻到时间原点经历的毫秒值,转换成Date对象,分配Date对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
  • public Date(long date):将指定参数的毫秒值date,转换成Date对象,分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

Date类中的常用方法:

public long getTime() 获取当前日期对象距离标准基准时间的毫秒值。
public void setTime(long time) 设置当前日期对象距离标准基准时间的毫秒值.也就意味着改变了当前日期对象
public boolean after(Date when) 测试此日期是否在指定日期之后。
public boolean before(Date when) 测试此日期是否在指定日期之前。
7.DateFormat类

java.text.DateFormat 是日期/时间格式化子类的抽象类,我们通过这个类可以帮我们完成日期和文本之间的转换,也就是可以在Date对象与String对象之间进行来回转换。

  • 格式化:按照指定的格式,把Date对象转换为String对象。
  • 解析:按照指定的格式,把String对象转换为Date对象。

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类java.text.SimpleDateFormat。这个类需要一个模式(格式)来指定格式化或解析的标准。构造方法为:

  • public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。

    常用的格式规则为:

    标识字母(区分大小写)含义
    y
    M
    d
    H
    m
    s

    备注:更详细的格式规则,可以参考SimpleDateFormat类的API文档。

常用方法:

public String format(Date date):将Date对象格式化为字符串。
public Date parse(String source):将字符串解析为Date对象。
8.Calendar类
  • java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。

  • 有两种方式可以获取GregorianCalendar对象:

    • 直接创建GregorianCalendar对象;

    • 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象

      public static Calendar getInstance() 获取当前日期的日历对象
      

Calendar类的常用方法:

public int get(int field) 获取某个字段的值。
                参数field:表示获取哪个字段的值,可以使用Calender中定义的常量来表示
                        Calendar.YEAR :Calendar.MONTH :月
                        Calendar.DAY_OF_MONTH:月中的日期
                        Calendar.HOUR:小时
                        Calendar.MINUTE:分钟
                        Calendar.SECOND:秒
                        Calendar.DAY_OF_WEEK:星期
public void set(int field,int value)设置某个字段的值
public void add(int field,int amount)为某个字段增加/减少指定的值
public void setTime(Date date)  使用给定的 Date 设置此 Calendar 的时间。
boolean before(Object when) 判断当前日历对象的时间是否在指定日历对象时间之前
boolean after(Object when) 判断当前日历对象的时间是否在指定日历对象时间之后
9.Math类
  • java.lang.Math(类): Math类包含执行基本数字运算的方法。
  • 它不能创建对象,它的构造方法被“私有”了。因为他内部都是“静态方法”,通过“类名”直接调用即可。

Math类的常用方法:

 public static int abs(int a) 获取参数a的绝对值:
 public static double ceil(double a) 向上取整  例如:3.14 向上取整4.0
 public static double floor(double a) 向下取整 例如:3.14 向下取整3.0
 public static double pow(double a, double b)  获取a的b次幂
 public static long round(double a) 四舍五入取整 例如:3.14 取整3  3.56 取整4
 public static int max(int a, int b)  返回两个 int 值中较大的一个。
 public static int min(int a, int b)  返回两个 int 值中较小的一个。
10.System类

java.lang.System类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作。

System类的常用方法:

public static void exit(int status) 终止当前运行的Java虚拟机,非零表示异常终止
public static long currentTimeMillis() 返回当前时间(以毫秒为单位)
static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 拷贝数组中的元素到另一个数组
      参数1src: 源数组
      参数2srcPos:源数组要拷贝的元素的起始索引(从哪个索引位置开始拷贝)
      参数3dest: 目标数组
      参数4destPos:目标数组接收拷贝元素的起始索引(从哪个索引位置开始接收)
      参数5length:需要拷贝多少个元素(拷贝多少个)
11.BigInteger类

java.math.BigInteger 类,不可变的任意精度的整数。如果运算中,数据的范围超过了long类型后,可以使用BigInteger类实现,该类的计算整数是不限制长度的。

BigInteger类的构造方法:

  • BigInteger(String value) 将 BigInteger 的十进制字符串表示形式转换为 BigInteger。超过long类型的范围,已经不能称为数字了,因此构造方法中采用字符串的形式来表示超大整数,将超大整数封装成BigInteger对象。

BigInteger类成员方法:

BigInteger类提供了对很大的整数进行加add、减subtract、乘multiply、除divide的方法,注意:都是与另一个BigInteger对象进行运算。

方法声明描述
add(BigInteger value)返回其值为 (this + val) 的 BigInteger,超大整数加法运算
subtract(BigInteger value)返回其值为 (this - val) 的 BigInteger,超大整数减法运算
multiply(BigInteger value)返回其值为 (this * val) 的 BigInteger,超大整数乘法运算
divide(BigInteger value)返回其值为 (this / val) 的 BigInteger,超大整数除法运算,除不尽取整数部分
12.BigDecimal类

使用基本类型做浮点数运算精度问题;

  • 对于浮点运算,不要使用基本类型,而使用"BigDecimal类"类型

  • java.math.BigDecimal(类):提供了更加精准的数据计算方式。

BigDecimal类构造方法:

构造方法名描述
BigDecimal(double val)将double类型的数据封装为BigDecimal对象
BigDecimal(String val)将 BigDecimal 的字符串表示形式转换为 BigDecimal

注意:推荐使用第二种方式,第一种存在精度问题;

BigDecimal类常用方法:

BigDecimal类中使用最多的还是提供的进行四则运算的方法,如下:

方法声明描述
public BigDecimal add(BigDecimal value)加法运算
public BigDecimal subtract(BigDecimal value)减法运算
public BigDecimal multiply(BigDecimal value)乘法运算
public BigDecimal divide(BigDecimal value)除法运算

注意:对于divide方法来说,如果除不尽的话,就会出现java.lang.ArithmeticException异常。此时可以使用divide方法的另一个重载方法;

BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode): divisor:除数对应的BigDecimal对象;scale:精确的位数;roundingMode取舍模式

13.Arrays类

java.util.Arrays类:该类包含用于操作数组的各种方法(如排序和搜索)

Arrays类常用方法:

方法声明描述
public static void sort(int[] a)按照数字顺序排列指定的数组
public static String toString(int[] a)返回指定数组的内容的字符串表示形式

14.包装类的概述

Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而很多情况,会创建对象使用,因为对象可以做更多的功能,如果想要我们的基本类型像对象一样操作,就可以使用基本类型对应的包装类,如下:

基本类型对应的包装类(位于java.lang包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean

15.Integer类

包装一个对象中的原始类型 int 的值

Integer类构造方法及静态方法:

方法名说明
public Integer(int value)根据 int 值创建 Integer 对象(过时)
public Integer(String s)根据 String 值创建 Integer 对象(过时)
public static Integer valueOf(int i)返回表示指定的 int 值的 Integer 实例
public static Integer valueOf(String s)返回保存指定String值的 Integer 对象
16.装箱与拆箱

基本类型与对应的包装类对象之间,来回转换的过程称为”装箱“与”拆箱“:

  • 装箱:从基本类型转换为对应的包装类对象。
  • 拆箱:从包装类对象转换为对应的基本类型。

自动装箱与自动拆箱:

由于我们经常要做基本类型与包装类之间的转换,从Java 5(JDK 1.5)开始,基本类型与包装类的装箱、拆箱动作可以自动完成。

17.基本类型与字符串之间的转换

基本类型转换为String:

  • 转换方式
  • 方式一:直接在数字后加一个空字符串
  • 方式二:通过String类静态方法valueOf()

String转换成基本类型 :

除了Character类之外,其他所有包装类都具有parseXxx静态方法可以将字符串参数转换为对应的基本类型

  • public static byte parseByte(String s):将字符串参数转换为对应的byte基本类型。
  • public static short parseShort(String s):将字符串参数转换为对应的short基本类型。
  • public static int parseInt(String s):将字符串参数转换为对应的int基本类型。
  • public static long parseLong(String s):将字符串参数转换为对应的long基本类型。
  • public static float parseFloat(String s):将字符串参数转换为对应的float基本类型。
  • public static double parseDouble(String s):将字符串参数转换为对应的double基本类型。
  • public static boolean parseBoolean(String s):将字符串参数转换为对应的boolean基本类型。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值