常用的APl总结

 一.APl

Java 的API(API: Application(应用) Programming(程序) Interface(接口))

Java API就是JDK中提供给我们使用的类,这些类将底层 的代码实现封装了起来,我们不需要关心这些类是如何 实现的,只需要学习这些类如何使用即可。

二.Object类

1.1Object类概述

java.lang.Object类是Java语言中的根类,每个类都使用 Object作为超类。所有对象(包括数组)都实现这个类 的方法。如果一个类没有特别指定父类,那么默认则继承自 Object类

1.2 toString()方法

方法声明:public String toString():返回该对象的字符 串表示。

包名类名@对象内存地址; 包名+类名=全限定名

由于toString方法返回的结果是内存地址,而在开发中, 内存地址并没有实际的应用价值,经常需要按照对象的 属性得到相应的字符串表现形式,因此也需要重写它。、

1.3 equals()方法

方法声明:public boolean equals(Object obj):指示其 他某个对象是否与此对象“相等”。

equals方法默认比较两个对象的内存地址是否相同,相 同则返回true。

Object类equals()方法源码:

public boolean equals(Object obj) {
    return (this == obj);
}

this是当前对象,哪个对象调用的equals方法就表示 哪个对象。

obj表述传递的参数,参数类型Object,可以传递任意 类型对象。

this==obj 比较两个对象的内存地址是否相同

三.String类

1.1 String类概述

String 类代表字符串,Java 程序中的所有字符串文字 (例如“abc”)都被实现为此类的实例。

Java 程序中所有的双引号字符串,都是 String 类的对 象。

String 类在 java.lang 包下,所以使用的时候不需要 导包!

1.2 String类的构造方法

public String() 创建一个空字符串对象

public String(String original) 通过给定的内容创建一 个 String 对象

public String(char[] value) 根据char数组中的内容,来 创建对应的字符串对象

public String(byte[] bytes) 根据byte数组中的内容,来 创建对应的字符串对象

public String(byte[] bytes, int offset, int length) 指 定byte数组的范围,根据指定范围中的内容,来创建对应 的字符串对象

直接写字符串字面值也是String类对象 例如: String str = "abc";

public class DemoTest {
    public static void main(String[] args) {
        //public String():创建一个空白字符串对象,不含有任何内容
        String str01=new String();
        System.out.println("str01="+str01);
        //public String(String original) 通过给定的内容创建一个 String 对象
        String str02=new String("abc");
        System.out.println("str02="+str02);
        //public String(char[] value) 根据char数组中的内容,来创建对应的字符串对象
        char[] cs={'a','b','c','d'};
        String str03=new String(cs);
        System.out.println("str03="+str03);
        //public String(byte[] bytes) 根据byte数组中的内容,来创建对应的字符串对象
        byte[] bs={97,98,99,100,101};
        String str04=new String(bs);
        System.out.println("str04="+str04);
        //public String(byte[] bytes, int offset, int length)
        //指定byte数组的范围,根据指定范围中的内容,来创建对应的字符串对象
        String str05=new String(bs,1,3);
        System.out.println("str05="+str05);
        //直接写字符串字面值也是String类对象
        String str06="hello";
        System.out.println("Str06="+str06);
   }
}

1.3 两种方式创建字符串的区别

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

1.4 字符串常用方法 

public int length ():返回此字符串的长度。

public boolean equals(String s):比较两个字符串内容 是否相同、区分大小写

public boolean equalsIgnoreCase (String anotherString):将此字符串与指定对象进行比较, 忽略大小写。

public String concat (String str):将指定的字符串连接 到该字符串的末尾。

public char charAt (int index):返回指定索引处的 char值。

public int indexOf (String str):返回指定子字符串第一 次出现在该字符串内的索引。

public String substring (int beginIndex):返回一个子 字符串,从beginIndex开始截取字符串到字符串结 尾。

public String substring (int beginIndex, int endIndex):返回一个子字符串,从beginIndex到 endIndex截取字符串。含beginIndex,不含 endIndex。

public class DemoTest {
    public static void main(String[] args) {
        String str="woaijava";
        //public int length ():返回此字符串的长度。
        int len = str.length();
        System.out.println(len);//8
        //public boolean equals(String s):比较两个字符串内容是否相同、区分大小写
boolean lean01 = str.equals("woaiJava");//false
        System.out.println(lean01);
        //public boolean equalsIgnoreCase (String anotherString)
        // 将此字符串与指定对象进行比较,忽略大小写。
        boolean lean02 = str.equalsIgnoreCase("woaiJava");
        System.out.println(lean02);//true
        //public String concat (String str):将指定的字符串连接到该字符串的末尾。
        String newStr = str.concat("haha");
       
 System.out.println(newStr);//woaijavahaha
        //public char charAt (int index):返回指定索引处的 char值。
        char c = str.charAt(3);
        System.out.println(c);//i
        //遍历字符串 w o a i j a v a
        for(int i=0;i<str.length();i++){
           
 System.out.print(str.charAt(i)+"\t");
       }
        System.out.println();
        //public int indexOf (String str):
        //返回指定子字符串第一次出现在该字符串内的索引。
int index = str.indexOf("a");
        System.out.println(index);//2
        //public String substring (int beginIndex)
        // 返回一个子字符串,从beginIndex开始截取字符串到字符串结尾。
        String sub01 = str.substring(4);
        System.out.println(sub01);//java
        //public String substring (int beginIndex, int endIndex):
        // 返回一个子字符串,从beginIndex到endIndex截取字符串。
        // 含beginIndex,不含endIndex。
        String sub02 = str.substring(2, 6);
        System.out.println(sub02);//aija
   }
}

1.5其他方法

 四.StringBuilder类

1.1 String类字符串拼接问题

 1.2 StringBuilder类概述

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

StringBuilder类和String类的区别:

        String类:内容是不可变的

        StringBuilder类:内容是可变的

1.3StringBuilder类的构造方法

.4 1.4StringBuilder类常用方法

public StringBuilder append(任意类型) 拼接数据, 并返回对象本身

public StringBuilder insert(int offset, 任意类型) 在 指定位置插入数据,并返回对象本身

public StringBuilder reverse() 反转字符串,并返回对 象本身

public class DemoTest {
    public static void main(String[] args) {
        StringBuilder sb01=new StringBuilder();
        //public StringBuilder append(任意类型) 拼接数据,并返回对象本身
//       StringBuilder sb02 = sb01.append("hello");
//       
System.out.println(sb02==sb01);//true
//       sb01.append(123);
//       System.out.println(sb01);
        //public StringBuilder insert(int offset, 任意类型)
        // 在指定位置插入数据,并返回对象本身
//       sb01.insert(5,"world");
//       System.out.println(sb01);
 //public StringBuilder reverse() 反转字符串,并返回对象本身
//       StringBuilder sb03 = sb01.reverse();
//       System.out.println(sb01==sb03);
//       System.out.println(sb01);
        //链式编程
       
 sb01.append("hello").append(123).insert(5,"world").reverse();
        System.out.println(sb01);
   }
}

1.5 StringBuilder和String相互转换

StringBuilder转换为String

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

String转换为StringBuilder

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

五.Date类

1.1 Date类概述

类java.util.Date表示特定的瞬间(日期和时间),精确到毫秒。

1.2 Date类的构造方法

public Date(): 用来创建当前系统时间对应的日期对象。

public Date(long date):用来创建以标准基准时间为基准指定偏移毫秒 数对应的日期对象

标准基准时间: 0时区: 1970年01月01日 00:00:00;东八区: 1970年01 月01日 08:00:00

 1.3 Date类的常用方法

public long getTime() 获取当前日期对象距离标准基准时间的毫秒值。

public void setTime(long time) 设置当前日期对象距离标准基准时间的 毫秒值。也就意味着改变了当前日期对象。

public boolean after(Date when) 测试此日期是否在指定日期之后。

public boolean before(Date when) 测试此日期是否在指定日期之前。

public class DemoTest {
    public static void main(String[] args) {
        //创建一个当前系统时间的日期对象
        Date date01=new Date();
        System.out.println(date01);//Wed Jul 03 09:18:23 CST 2024
        System.out.println("------------------------");
        //创建一个与标准基准时间偏移1秒的日期对象
        Date date02=new Date(1000);
        System.out.println(date02);//Thu Jan 01 08:00:01 CST 1970
        System.out.println("------------------------");
        //public long getTime() 获取当前日期对象距离标准基准时间的毫秒值。
       
 System.out.println(date01.getTime());//1719972679512
        System.out.println(date02.getTime());//1000
        System.out.println("------------------------");
        //public void setTime(long time) 设置当前日期对象距离标准基准时间的毫秒值。也就意味着改变了当前日期对象。
        date01.setTime(2000);
        date02.setTime(3000);
        System.out.println(date01);//Thu Jan 01 08:00:02 CST 1970
        System.out.println(date02);//Thu Jan 01 08:00:03 CST 1970
        System.out.println("------------------------");
        //public boolean after(Date when) 测试此日期是否在指定日期之后。
//public boolean before(Date when) 测试此日期是否在指定日期之前。
        System.out.println(date01.before(date02));//true
        System.out.println(date01.after(date02));//false
   }
}

六.DateFormat类

1.1 DateFormat类的概述

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

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

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

由于DateFormat为抽象类,不能直接使用,所以需要常用的子类 java.text.SimpleDateFormat

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

格式规则:

常用的日期格式: yyyy年MM月dd日 HH时mm分ss秒

常用的日期格式: yyyy-MM-dd HH:mm:ss

1.2 DateFormat类的常用方法

public String format(Date date):将Date对象格式化为字符串。

public Date parse(String source):将字符串解析为Date对象。

1.3练习

需求:键盘输入一个字符串类型的时间,打印你来到世界多少天?  

public static void main(String[] args) throws Exception{
    //从控制台接收用户的生日——String类型,例如:"1998-03-18"
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入你的生日(yyyy-MM-dd):");
    String birthDay = sc.next();
    //1.计算生日的毫秒值
    //将birthDay转换为Date对象
    SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MMdd");

    Date birthDate = sdf.parse(birthDay);
    //取毫秒值
    long m1 = birthDate.getTime();
    //2.计算现在的毫秒值
    long m2 = new Date().getTime();
    System.out.println("你出生到现在一共经历了:" + ((m2 - m1) / 1000 / 3600 / 24) + " 天");
}

七. BigDecimal类

1.1 BigDecimal类的概述

java.math.BigDecimal类表示一个超大的小数,并且可以解决小数运算的精度问题。

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

1.2 BigDecimal类的构造方法

1 .3 BigDecimal类的常用方法

public class DemoTest {
    public static void main(String[] args){
        //加法运算
        BigDecimal b1 = new BigDecimal("0.09");
        BigDecimal b2 = new BigDecimal("0.01");
        BigDecimal result01 = b1.add(b2);
        System.out.println(result01);//0.10//减法运算
        BigDecimal b3 = new BigDecimal("1.0");
        BigDecimal b4 = new BigDecimal("0.32");
        BigDecimal result02 = b3.subtract(b4);
        System.out.println(result02);//0.68
        //乘法运算
        BigDecimal b5 = new BigDecimal("1.015");
        BigDecimal b6 = new BigDecimal("100");
        BigDecimal result03 = b5.multiply(b6);
        System.out.println(result03);// 101.500
        //除法运算
        BigDecimal b7 = new BigDecimal("1.301");
        BigDecimal b8 = new BigDecimal("100");
        BigDecimal result04 = b7.divide(b8);
        System.out.println(result04);// 0.01301
   }
}

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

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

向上进1          BigDecimal.ROUND_UP

直接舍去         BigDecimal.ROUND_DOWN

四舍五入         BigDecimal.ROUND_HALF_UP

 

public class DemoTest {
    public static void main(String[] args){
        BigDecimal b1 = new BigDecimal("3.125");
        BigDecimal b2 = new BigDecimal("1.582");
        //1.975347661188369
        //java.lang.ArithmeticException
        //BigDecimal divide = b1.divide(b2);
        BigDecimal result01 = b1.divide(b2, 3, BigDecimal.ROUND_UP);
        System.out.println(result01);//1.976
        BigDecimal result02 = b1.divide(b2, 2, BigDecimal.ROUND_DOWN);
        System.out.println(result02);//1.97
        BigDecimal result03 = b1.divide(b2, 2, BigDecimal.ROUND_HALF_UP);
        System.out.println(result03);//1.98
   }
}

八.包装类

1.1包装类概述

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

1.2 Integer类

 Integer类概述:

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

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

public class DemoTest {
    public static void main(String[] args){
        //public Integer(int value):根据 int 值创建 Integer 对象(过时)
        Integer i1 = new Integer(100);
        System.out.println(i1);
        //public Integer(String s):根据 String 值创建 Integer 对象(过时)
        Integer i2 = new Integer("100");
        System.out.println(i2);
        //Integer i = new Integer("abc");//java.lang.NumberFormatException
        //System.out.println(i);
        //public static Integer valueOf(int i):返回表示指定的 int 值的 Integer 实例
        Integer i3 = Integer.valueOf(100);
        System.out.println(i3);
        //public static Integer valueOf(String s):返回一个保存指定值的Integer对象 String
        Integer i4 = new Integer("100");
        System.out.println(i4);
   }
}

 1.3装箱与拆箱

装箱与拆箱的概述

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

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

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

自动装箱与自动拆箱

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

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

基本类型转换为String

                方式一:直接在数字后加一个空字符串

                方式二:通过String类静态方法valueOf()

 String转换成基本类型

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

例如:public static int parseInt(String s):将字符串参数转换为对应的int 基本类型。

        方式一:通过Integer静态方法parseInt()进行转换

        方式二:先通过Integer类的valueOf方法将字符串数字转成Integer,再 调用xxxValue方法得到基本数据类型

  • 31
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值