4.Java基础——常用类库篇

1.Object类

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

在这个Object类中,主要有2个方法。

  • public String toString():返回该对象的字符串表示。
  • public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。

toString方法:

  	1.public String toString():返回该对象的字符串表示。
  	2.toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。
   	3.由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到
  相应的字符串表现形式,因此也需要重写它。
public class Person {  
    private String name;
    private int age;

    @Override
    public String toString() {
        return "Person{" + "name='" + name + '\'' + ", age=" + age + '}';
    }
}

equals方法:

	1.public boolean equals(Object obj):指示其他某个对象是否与此对象“相等”。
	2.调用成员方法equals并指定参数为另一个对象,则可以判断这两个对象是否是相同的。
注意:
1.默认地址比较
	如果没有覆盖重写equals方法,那么Object类中默认进行`==`运算符的对象地址比较,只要不是
同一个对象,结果必然为false。
2. 对象内容比较
如果希望进行对象的内容比较,即所有或指定的部分成员变量相同就判定两个对象相同,则可以覆盖重写
equals方法。例如:
import java.util.Objects;

public class Person {	
	private String name;
	private int age;
	
    @Override
    public boolean equals(Object o) {
        // 如果对象地址一样,则认为相同
        if (this == o)
            return true;
        // 如果参数为空,或者类型信息不一样,则认为不同
        if (o == null || getClass() != o.getClass())
            return false;
        // 转换为当前类型
        Person person = (Person) o;
        // 要求基本类型相等,并且将引用类型交给java.util.Objects类的equals静态方法取用结果
        return age == person.age && Objects.equals(name, person.name);
    }
}

2. Math类

java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。类似这样的
工具类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。

public static double abs(double a) :返回 double 值的绝对值。

double d1 = Math.abs(5); //d1的值为5 
double d2 = Math.abs(5); //d2的值为5

public static double ceil(double a) :返回大于等于参数的最小的整数

double d1 = Math.ceil(3.3); //d1的值为 4.0 
double d2 = Math.ceil(3.3); //d2的值为 ‐3.0 
double d3 = Math.ceil(5.1); //d3的值为 6.0

public static double floor(double a) :返回小于等于参数最大的整数。

double d1 = Math.floor(3.3); //d1的值为3.0 
double d2 = Math.floor(3.3); //d2的值为‐4.0 
double d3 = Math.floor(5.1); //d3的值为 5.0

public static long round(double a):返回最接近参数的 long。(四舍五入)

long d1 = Math.round(5.5); //d1的值为6.0 
long d2 = Math.round(5.4); //d2的值为5.0
long d3 = Math.round(-100.5)//d3的值为-100   四舍五入

public static long max(double a,double b):最大值
public static long min(double a,double b):最小值

3.Arrays类

java.util.Arrays 此类包含用来操作数组的各种方法,比如排序和搜索等。

public static String toString(int[] a) :返回指定数组内容的字符串表示形式。

public static void main(String[] args) { 
	// 定义int 数组 
	int[] arr = {2,34,35,4,657,8,69,9}; 
	// 打印数组,输出地址值 
	System.out.println(arr); // [I@2ac1fdc4 
	// 数组内容转为字符串 
	String s = Arrays.toString(arr); 
	// 打印字符串,输出内容 
	System.out.println(s); // [2, 34, 35, 4, 657, 8, 69, 9] 
}

public static void sort(int[] a):对指定的 int 型数组按数字升序进行排序。

public static void main(String[] args) { 
	// 定义int 数组
	 int[] arr = {24, 7, 5, 48, 4, 46, 35, 11, 6, 2};
	 System.out.println("排序前:"+ Arrays.toString(arr)); // 排序前:[24, 7, 5, 48, 4, 46, 35, 11, 6, 2]
	 // 升序排序 
	 Arrays.sort(arr); 
	 System.out.println("排序后:"+ Arrays.toString(arr));// 排序后:[2, 4, 5, 6, 7, 11, 24, 35, 46, 48] 
}

Arrays.binarySearch():二分查找

public static void main(String[] args) {
        // 定义int 数组
        int[] arr = {1,5,7,9,0,3,6,2,8,4};
        System.out.println("排序前:" + Arrays.toString(arr));
        // 排序前:[1,5,7,9,0,3,6,2,8,4]
        // 升序排序
        Arrays.sort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
        // 排序后:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

        //二分查找内容,比如,数字5在数组中的下标,下列输出为5
        System.out.println(Arrays.binarySearch(arr,5));
    }

Arrays.copyOf():动态扩容

public static void main(String[] args) {
        // 定义int 数组
        int[] arr = {1,5,7,9,0,3,6,2,8,4};
        System.out.println("排序前:" + Arrays.toString(arr));
        // 排序前:[1,5,7,9,0,3,6,2,8,4]
        // 升序排序
        Arrays.sort(arr);
        System.out.println("排序后:" + Arrays.toString(arr));
        // 排序后:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

        //二分查找内容,比如,数字5在数组中的下标,下列输出为5
        System.out.println(Arrays.binarySearch(arr,5));
        //未扩容前的长度
        System.out.println(arr.length);
        //扩容为20的长度
        int[] arr1=Arrays.copyOf(arr,20);
        //扩容后的长度
        System.out.println(arr1.length);

    }

4.BigDecimal类

float类型和double类型在运算时都可能会存在误差,为了实现精确运算可借助java.util.BigDecimal
下述所有的运算方法,不会影响参与运算的数据本身,运算结果会被封装成一个新的BigDecimal对象,
这个对象会通过return返回出去。
public BigDecimal add(BigDecimal augend(被加数));//加法运算
public BigDecimal subtract(BigDecimal augend(被减数));//减法运算
public BigDecimal multiply(BigDecimal augend(被乘数));//乘法运算
public BigDecimal divide(BigDecimal augend(被除数));//除法运算

1.加法

public static void main(String[] args) {
        //比较单纯的double类型相加
        System.out.println(0.1+0.2);//输出0.30000000000000004
        //利用BigDecimal类
        BigDecimal b1 = new BigDecimal("0.1");
        BigDecimal b2 = new BigDecimal("0.2");
        //加法
        BigDecimal b3=b1.add(b2);
        System.out.println(b3);//输出0.3
    }

2.减法

 public static void main(String[] args) {
        //比较单纯的double类型相减
        System.out.println(-0.1-0.2);//输出-0.30000000000000004
        //利用BigDecimal类
        BigDecimal b1 = new BigDecimal("-0.1");
        BigDecimal b2 = new BigDecimal("0.2");
        //减法
        BigDecimal b3=b1.subtract(b2);
        System.out.println(b3);//输出-0.3
    }

3.乘法

 public static void main(String[] args) {
        //比较单纯的double类型相乘
        System.out.println(0.1*0.2);//输出0.020000000000000004
        //利用BigDecimal类
        BigDecimal b1 = new BigDecimal("0.1");
        BigDecimal b2 = new BigDecimal("0.2");
        //乘法
        BigDecimal b3=b1.multiply(b2);
        System.out.println(b3);//输出0.02
    }

4.除法

public static void main(String[] args) {
        //比较单纯的double类型相除
        System.out.println(15.3/0.3);//输出51.00000000000001
        //利用BigDecimal类
        BigDecimal b1 = new BigDecimal("15.3");
        BigDecimal b2 = new BigDecimal("0.3");
        //除法
        BigDecimal b3=b1.divide(b2);
        System.out.println(b3.doubleValue());//输出double类型51.0
    }

5.Date类

表示特定的时刻,精度为毫秒,1秒=1000毫秒

1.常用方法:getTime(),返回一个long类型的值
表示从1970年1月1日00:00:00以来的毫秒数。
public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date.getTime());//输出1608530639982
    }
2.构造方法
Date():当前时间
public static void main(String[] args) {
        Date date = new Date();
        System.out.println(date);//输出Mon Dec 21 14:06:14 CST 2020
    }

6.DateFormat类
用于格式化日期的类(抽象类),因为是抽象类,所以使用其字类进行实例化。

 1.format()方法:将date对象转换为指定格式的字符串
 public static void main(String[] args) {
        //DateFormat
        /**
         * y:年
         * M:月
         * d:日
         * H:时
         * m:分
         * s:秒
         * eg:2020年12月31日 12:12 59
         */
        //使用字类实例化,并写出相应格式
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm ss");
        //将date对象转换为字符串(yyyy年MM月dd日 HH:mm ss)
        String string = format.format(new Date());
        //输出以上格式的当前时间
        System.out.println(string);
    }
2.parse()方法:将一段字符串转成date对象
public static void main(String[] args) throws ParseException {
        //DateFormat
        /**
         * y:年
         * M:月
         * d:日
         * H:时
         * m:分
         * s:秒
         * eg:2020年12月31日 12:12 59
         */
        //使用字类实例化,并写出相应格式
        SimpleDateFormat format = new SimpleDateFormat("yyyy年MM月dd日 HH:mm ss");
        //方法返回String类型的值
        String string = format.format(new Date());
        //输出以上格式的当前时间
        System.out.println(string);
        //parse:将yyyy年MM月dd日 HH:mm ss 日期字符串转换为date对象
        Date date = format.parse("2020年12月21日 14:29 34");
        System.out.println(date.getTime());
    }

7.Calendar类(抽象类)
Calendar是抽象类,用其getInstance方法来实例化。

 public static void main(String[] args) throws ParseException {
       //Calendar是抽象类,用其getInstance方法来实例化。
        Calendar calendar = Calendar.getInstance();
 }
get()方法:获取值
 public static void main(String[] args) throws ParseException {
       //Calendar是抽象类,用其getInstance方法来实例化。
        Calendar calendar = Calendar.getInstance();
        //get方法,返回int值,用于取出日历中的数据,比如年月日。
        int text = calendar.get(Calendar.YEAR);
        System.out.println(text);//输出2020
    }
set()方法:设置值
 public static void main(String[] args) throws ParseException {
       //Calendar是抽象类,用其getInstance方法来实例化。
        Calendar calendar = Calendar.getInstance();
        calendar.set(Calendar.YEAR,2030);
        int year = calendar.get(Calendar.YEAR);
        System.out.println(year);//输出2030
  }
add()方法:+"1"操作
    注意:月份:0~11   周:星期日开始
public static void main(String[] args) throws ParseException {
       //Calendar是抽象类,用其getInstance方法来实例化。
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.YEAR,1);
        System.out.println(calendar.get(Calendar.YEAR));//输出2021
    }
 getTime()方法:获取日历时间,表示Date对象(修改后的时间)
 public static void main(String[] args) throws ParseException {
       //Calendar是抽象类,用其getInstance方法来实例化。
        Calendar calendar = Calendar.getInstance();
        calendar.add(Calendar.YEAR,1);//年+1
        System.out.println(calendar.get(Calendar.YEAR));
        Date date = calendar.getTime();
        System.out.println(date);//输出Tue Dec 21 15:14:42 CST 2021
    }
getActualMaximum()方法:获取最大值
public static void main(String[] args) throws ParseException {
       //Calendar是抽象类,用其getInstance方法来实例化。
        Calendar calendar = Calendar.getInstance();
        //获取2020年的最大天数
        int i = calendar.getActualMaximum(Calendar.DAY_OF_YEAR);
        System.out.println(i);//输出366
    }
 getActualMinimum()方法:获取最大值
public static void main(String[] args) throws ParseException {
       //Calendar是抽象类,用其getInstance方法来实例化。
        Calendar calendar = Calendar.getInstance();
        //获取2020年最小天数
        int j = calendar.getActualMinimum(Calendar.DAY_OF_YEAR);
        System.out.println(j);
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值