java核心类库篇—2. 常用类库(未完...)

目录

泛型

概述

泛型类

泛型接口

泛型方法

泛型限制类型

泛型中的通配符 ?

作用

注意

java.util.Objects

常用方法:

Java.lang.Math类

常用的方法

 java.util.Arrays

数组转字符串toString

填充数组fill

数组元素排序sort

数组的比较equals、deepEquals

数组复制copyOf、copyOfRange

二分查找返回下标binarySearch

数组转List用asList

对其他对象数组进行排序

自定义排序规则

java.math.BigDecimal

概念

常用构造方法

常用方法

 java.util.Date

构造方法

方法

java.text.DateFormat

概念

format

parse

java.util.Calendar

概述

静态常量

静态方法

 get方法:返回指定日历字段的值。

set方法:设置日历字段的值。

add方法:基于日历的规则实现日期加减。

getActualMaximum方法

getTime方法

setTime方法

java.lang.System

String

概念

字符串的本质

String对象的空值:

字符串的比较:

字符串拼接:

String 的常用API

String 的创建和转换:

获取字符串信息

字符串比较判断

字符串大小写转换:

StringBuilder/StringBuffer

StringBuilder的常用方法:


泛型

概述

泛型,即“参数化类型”。就是将类型由原来的具体的类型参数化,类似于方法中的变量参数,此时类型也定 义成参数形式(可以称之为类型形参),然后在使用/调用时传入具体的类型(类型实参)。

泛型类

//定义一个泛型类: 
public class ClassName<T>{    
    private T data;
    public T getData() {        
        return data;    
    }

    public void setData(T data) {        
        this.data = data;    
    }
}

泛型接口

public interface IntercaceName<T>{    
    T getData(); 
}
//实现接口时,可以选择指定泛型类型,也可以选择不指定, 如下:

//指定类型:    
public class Interface1 implements IntercaceName<String> {        
    private String text;       
    @Override        
    public String getData() {            
        return text;        
    }    
} 

//不指定类型:    
public class Interface1<T> implements IntercaceName<T> {        
    private T data;        
    @Override        
    public T getData() {            
        return data;        
    }    
}

泛型方法

 private static <T> T 方法名(T a, T b) {}

泛型限制类型

1.  在使用泛型时, 可以指定泛型的限定区域 ,     

  • 例如: 必须是某某类的子类或 某某接口的实现类,格式:            

    <T extends 类或接口1 & 接口2>

泛型中的通配符 ?

类型通配符是使用?代替方法具体的类型实参。

  1. <? extends Parent> 指定了泛型类型的上届
  2. <? super Child> 指定了泛型类型的下届
  3. <?> 指定了没有限制的泛型类型

作用

  1. 提高代码复用率
  2. 泛型中的类型在使用时指定,不需要强制类型转换(类型安全,编译器会检查类型)

注意

在编译之后程序会采取去泛型化的措施。

也就是说Java中的泛型,只在编译阶段有效。

在编译过程中,正确检验泛型结果后,会将泛型的相关信息擦出,并且在对象进入和离开方法的边界处添加 类型检查和类型转换的方法。也就是说,泛型信息不会进入到运行时阶段。

java.util.Objects

API文档:https://docs.oracle.com/javase/8/docs/api/java/util/Objects.html

 W3C中文API文档:https://www.w3cschool.cn/java/java-objects-class.html

jdk1.7后出现.提供静态方法操作对象.

常用方法:

1.public static boolean equals(Object a,Object b):比较对象a和对象b是否相等.
  *比较2个对象是否相等,底层依赖对象重写的equals的方法,如果没有重写,则使用Object的equals()

当出现null直接调用equals时会报错,但用Objects不会

objects实现源码:

2.public static <T> T requireNonNull(T obj):检查对象obj不为null,如果为null,则抛出空指针异常,否则返回obj本身.
  *可以判断对象是否是空对象.限制参数不能为空.

3.public static boolean nonNull(Object obj):判断对象是否为null,不为返回true,否则返回false

4.public static boolean isNull(Object obj):和nonNull()相反.

Java.lang.Math类

 Math类位于Java.lang包中,包含用于执行基本数学运算的方法!Math类的所有执行方法都是静态方法,可以直接使用类名.方法名调用,如:Math.round()

常用的方法

  Math.round()    返回最接近参数的 int,它表示"四舍五入"

                        Math.rint()         返回最接近参数并等于某一整数的 double 值,如果有2个数同样接近,则返回偶数的那个

                        Math.floor()       返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数

                        Math.ceil()         返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数

                        Math.cbrt()        返回 double 值的立方根

                        Math.sqrt()        返回正确舍入的 double 值的正平方根

                        Math.pow()       返回第一个参数的第二个参数次幂的值

                        Math.max()       返回两个 double 值中较大的一个

                        Math.min()        返回两个 double 值中较小的一个

                        Math.abs()        返回 double,float,int,long 值的绝对值。

                        Math.random() 返回带正号的 double 值,该值大于等于 0.0 且小于 1.0。

package 算数Math类;

/**
 * @author yyx 2017年6月26日
 */
public class MathExample {
    public static void main(String[] args) {
        sqrt(10);
        System.out.println("******************");
        pow(2, 3);
        System.out.println("******************");
        minAndMax(5, 8);
        System.out.println("******************");
        rint(4.5);
        System.out.println("******************");
        round(5.64);
        System.out.println("******************");
        floorAndCeil(2.35);
        System.out.println("******************");
        cbrt(8);
    }
    /**
     * 返回最接近参数的 int,它表示"四舍五入"
     * @param n
     */
    public static void round(double n){
        System.out.println(Math.round(n));
    }
    /**
     * Math.rint返回最接近参数并等于某一整数的 double 值,如果有2个数同样接近,则返回偶数的那个
     * @param n
     */
    public static void rint(double n){
        System.out.println(Math.rint(n));
    }
    /**
     * Math.floor返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数
     * Math.ceil返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数
     * @param n
     */
    public static void floorAndCeil(double n) {
        System.out.println(Math.floor(n));
        System.out.println(Math.ceil(n));
    }

    /**
     * 返回 double 值的立方根
     * 
     * @param n
     */
    public static void cbrt(double n) {
        System.out.println(Math.cbrt(n));
    }

    /**
     * 返回正确舍入的 double 值的正平方根
     * 
     * @param n
     */
    public static void sqrt(double n) {
        System.out.println(Math.sqrt(n));
    }

    /**
     * 返回第一个参数的第二个参数次幂的值
     * 
     * @param m
     * @param n
     */
    public static void pow(double m, double n) {
        System.out.println(Math.pow(m, n));
    }

    /**
     * max返回两个 double 值中较大的一个 min返回两个 double 值中较小的一个
     * 
     * @param m
     * @param n
     */
    public static void minAndMax(double m, double n) {
        System.out.println(Math.min(m, n));
        System.out.println(Math.max(m, n));
    }
}
运行结果:

3.1622776601683795
******************
8.0
******************
5.0
8.0
******************
4.0
******************
6
******************
2.0
3.0
******************
2.0

 java.util.Arrays

数组转字符串toString

int[] array 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值