Java程序语言学习总结-03

9、常用API

9.1 String类

概述:java.lang.String类代表字符串

​ 表示Java程序中的所有字符串文字(例如"abc" )都被实现为此类的实例。

​ 即程序中所有的双引号字符串,都是String的对象(就算没有NEW,也是String对象)

9.1.1 字符串特点

字符串内容永远不可不变;

② 而正是因为①,所以字符串是可以共享使用的;

③ 字符串效果上相当于是char[]字符数组,但是底层原理是byte[]字节数组;

9.1.2 创建字符串的常见3+1中方式

三种构造方法:

public String():创建一个空白字符串,不含有任何内容;

public String(char[] array):根据字符数组的内容,来创建对应的字符串;

public String(byte[] array):根据字节数组的内容,来创建对应的字符串;

一种直接创造:

String 对象名 = “内容”;//右边直接用双引号

注:建议使用直接创造的方式创建字符串

9.1.3 字符串内容的相关比较方法

public boolean equals(Object obj):只有参数是一个字符串并且内容相同的时候才会返回一个true值,否则,返回false值;

注意事项:① 参数Object表示参数可以是任何对象;

​ ② equals方法具有对称性,也就是a.equals(b)与b.equals(a)效果一样;

​ ③ 如果比较双方一个常量一个变量,推荐把常量字符串写在前面。

​ 列:“abc”.equals(str) (推荐)

​ str.equals(“abc”)(不推荐)

		理由:当str值为null时,推荐的格式会返回一个false,而不推荐的格式则会报错空指针异常

public boolean equalsIgnoreCase(String str):忽略字母大小写来进行内容的比较;

9.1.4 字符串获取的相关方法

public int length():获取字符串当前含有的字符个数,拿到字符串长度;

public char charAt(int index):获取指定索引位置的单个字符。

public int indexOf(String str):查找参数字符串在本字符串当中首次出现的索引位置,如果没有,则返回-1值

9.1.5 字符串的截取方法

public String substring(int index):截取从参数未知一直到字符串末尾,返回新字符串。

public String substring(int begin , int end):截取从begin开始,一直到end结束,中间的字符串;

注:[begin,end),包含左边,不包含右边。

9.1.6 字符串的转换方法

public char[] toCharArray():将当前字符串拆分为字符数组作为返回值;

public byte[] getBytes():获得当前字符串底层的字节数组。

public String replace(CharSequence oldString , CharSequence newString):将所有出现的老字符串替换成为新的字符串,返回新字符串。

备注:CharSequence表示字符串类型。

9.1.7 字符串的分割方法

public String[] split(String regex):按照参数的规则,将字符串切分成若干部分

注:split方法的参数其实是一个正则表达式(今后学习),如果要按照英文句点”.“进行切分,则必须在英文句号的左边加上两个反斜杠;

9.2 代码块

9.2.1 构造代码块

格式:{ }

位置:类中方法外;

执行:每次调用构造方法时就会执行;

使用场景:统计创建了多少个该类对象;

9.2.2 静态代码块

格式:static{ }

位置:类中,方法外;

执行:当类被加载的时候执行,并只执行一次;

使用场景:例如加载驱动,这种只需要执行一次的代码就可以放在静态代码块中;

9.3 static关键字

解释:用来修饰的成员变量和成员方法,而被修饰的成员是属于类的,而不是单单是属于某个对象的。而属于类的话,就可以不靠创建对象,而是直接用类名来调用了。因此凡是本类的对象都共享同一份静态变量

注:被static修饰的变量和方法在类被加载进内存之前就已经被加载进一块叫做静态区的内存中,因此堆内存中的对象内不存在这些变量和方法;

定义格式:static 数据类型 变量名;(静态变量)

​ 修饰符 static 返回值类型 方法名 (参数列表){

​ // 执行语句

​ }(静态方法)

注意事项:

  • 1.静态不能直接访问非静态

    • 原因:因为在内存中是先有的静态内容,后有的非静态内容;
  • 2.静态方法当中不能用this

    • 原因:this代表当前对象,通过谁调用的方法,谁就是当前对象

9.4 数组工具类Arrays

解释:是与数组相关的工具类,其中提供可大量的静态方法,用来实现数组常见的操作

具体常用的方法:

public static String toString(数组):将参数数组变成字符串。

注:按照默认格式:[元素1,元素2,元素3……]

public static void sort(数组):按照默认升序对数组的元素进行升序排序;

注:①若是数值,sort默认按照升序从小到大

​ ②若是字符串,sort默认按照字母升序

​ ③如果是自定义的类型,那么这个自定义的类需要有Comparable或Comparator接口的支持(今后学习)

9.5 数学工具类Math

解释:是数学相关的工具类,里面提供了大量的静态方法,完成与数学运算相关的操作;

具体的常用方法:

public static double pow(double a, double b): 返回第一个参数的第二个参数次幂的值。

public static double abs(double num):获取绝对值;

public static double ceil(double num):向上取整;

public static double floor(double num):向下取整;

public static long round(double num):四舍五入;

9.6 Object类

概述:java.lang.Object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例化的时候,最终找的父类就是Object。如果一个类没有特别指定父类,那么默认则继承自Object类。

9.6.1 toString方法

public String toString():表示返回该对象的字符串表示;

toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

在实际开发当中,经常需要按照对象的属性得到相应的字符串表现形式,因此返回地址值不符合实际的需求,因此也需要重写toString方法。

:在我们直接使用输出语句输出对象名的时候,其实通过该对象调用了其toString()方法。

9.6.2 equals方法

public boolean equals(Object obj):指定其他某个对象是否于此对象“相等”

“相等”:是否属于同一个对象,即该对象所指定的地址值是否一样;

若希望进行对象内容的比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写equals方法

重写equals方法的注意事项

① 要考虑对象地址一样,应直接是true;

② 传递进来的参数为空,即null,应判断是false

9.7 Objects类

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

作用:在比较两个对象的时候,Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问题;

equals方法:

public static boolean equals(Object a, Object b):判断两个对象是否相等。

源码:

public static boolean equals(Object a, Object b) {
        return (a == b) || (a != null && a.equals(b));
}

requireNonNull方法

public static T requireNonNull(T obj,String message):查看指定引用对象是否为null;

9.8 Date类

概述:java.util.Date类表示特定的瞬间,精确到毫秒

9.8.1 Date类常用的构造方法

构造方法:

public Date():分配Date对象并初始化此对象,以表示分配它的瞬间的时间点(精确到毫秒)。

public Date(long date):分配Date对象并初始化此对象,以表示自从标准基准时间(称为“历元(epoch)”,即1970年1月1日00:00:00 GMT)以来的指定毫秒数。

注:中国处于东八区,因此我们的基准时间为1970年1月1日8时0分0秒。

9.8.2 Date类常用的成员方法

public long getTime():把日期对象转换成对应的时间毫秒值。

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

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

9.9 DateFormat类(抽象类)

java.text.DateFormat 类是日期/时间格式化子类抽象类,即该类可以帮我们完成日期文本(String类型)之间的转换,也就是可以在Date对象String对象之间进行来回转换。

作用:格式化(日期 --> 文本)、解析(文本 --> 日期)

如何使用:

DateFormat类为抽象类,无法直接使用,因此,我们使用其子类java.text.SimpleDateFormat

SimpleDateFormat类构造方法

public SimpleDateFormat(String pattern):用给定的模式(规则)和默认语言环境的日期格式符号构造SimpleDateFormat。

**注:**参数pattern是一个字符串,代表日期时间的自定义格式。

格式规则:

标识字母(区分大小写)含义
y
M
d
H
m
s
9.9.1 常用方法

String format(Date date):按照指定的模式,把Date日期(Date类型的数据),格式化为符合模式的字符串;

Date parse(String source):把符合模式的字符串,解析为Date日期;

注:parse方法声明了一个异常叫ParseException(解析异常),如果字符串和构造方法中的模式不一样,那么程序就会抛出此异常,调用一个抛出了异常的方法,就必须的处理这个异常,要么throws继续声明抛出的异常,要么try……catch自己处理这个异常

9.10 Calendar类

概念:java.util.Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。日历类就是方便获取各个时间属性的。

注:Calendar类是抽象类,无法直接使用

使用方法:

因为Calendar类是抽象类,因此无法直接使用此类,但是该类有一个静态方法叫getInstance(),该方法返回了Calendar类的子类对象;

public static Calendar getInstance():使用默认时区和区域设置获取日历。

9.10.1 Calendar类常用的的成员方法

Date getTime():将指定的日历字段信息转换为Date类型的日期信息;

int get(int fieId):获取指定日历字段信息;

void set(int fieId , int value):将指定日历字段设置为指定的值;

void add(int fieId , int value):将指定日历字段增加或减少指定的值;

void setTime(Date date):使用给定的Date设置此Calendar的时间;

boolean before(Object when):判断此Calendar表示的时间是否在指定Object表示的时间之前,并返回判断结果;

Calendar类中提供很多成员常量,指定日历字段:

字段值含义
YEAR
MONTH月(从0开始,可以+1使用)
DAY_OF_MONTH月中的天(几号)
HOUR时(12小时制)
HOUR_OF_DAY时(24小时制)
MINUTE
SECOND
DAY_OF_WEEK周中的天(周几,周日为1,可以-1使用)

9.11 System类

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

常用的成员方法:

public static void exit(int status):终止当前java虚拟机的运行,非0表示异常终止;

public static long currentTimeMillis():返回以毫秒为单位的当前时间;(与Date的无参构造方法类似)

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):将数组中指定的数据覆盖到另一个数组的指定位置。

注:该方法参数的含义:

​ Object src:源数组;

​ int srcPos:源数组索引起始位置;

​ Object dest:目标数组;

​ int destPos:目标数组索引起始位置;

​ int length:元素个数;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值