JAVA-API

1 Math类

Math类所在包为java.lang包,因此在使用的时候不需要进行导包。

public static int abs(int a)				// 返回参数的绝对值
public static double ceil(double a)			// 返回大于或等于参数的最小整数
public static double floor(double a)		// 返回小于或等于参数的最大整数
public static int round(float a)			// 按照四舍五入返回最接近参数的int类型的值
public static int max(int a,int b)			// 获取两个int值中的较大值
public static int min(int a,int b)			// 获取两个int值中的较小值
public static double pow (double a,double b)// 计算a的b次幂的值
public static double random()				// 返回一个[0.0,1.0)的随机值

2 System类

System类所在包为java.lang包,因此在使用的时候不需要进行导包。
包含系统的常用方法

public static long currentTimeMillis()	// 获取当前时间所对应的毫秒值(当前时间为0时区所对应的时间即就是英国格林尼治天文台旧址所在位置)
public static void exit(int status)		// 终止当前正在运行的Java虚拟机,0表示正常退出,非零表示异常退出
public static native void arraycopy(Object src,  int  srcPos, Object dest, int destPos, int length); // 进行数值元素copy

3 Runtime

​Runtime表示Java中运行时对象,可以获取到程序运行时设计到的一些信息

public static Runtime getRuntime()		//当前系统的运行环境对象
public void exit(int status)			//停止虚拟机
public int availableProcessors()		//获得CPU的线程数
public long maxMemory()				    //JVM能从系统中获取总内存大小(单位byte)
public long totalMemory()				//JVM已经从系统中获取总内存大小(单位byte)
public long freeMemory()				//JVM剩余内存大小(单位byte)
public Process exec(String command) 	//运行cmd命令

4 Object类

Object类所在包是java.lang包。Object 是类层次结构的根,每个类都可以将 Object 作为超类。所有类都直接或者间接的继承自该类;换句话说,该类所具备的方法,其他所有类都继承了。

public String toString()		//返回该对象的字符串表示形式(可以看做是对象的内存地址值)
public boolean equals(Object obj)//比较两个对象地址值是否相等;true表示相同,false表示不相同
protected Object clone()    	//对象克隆

5 Objects类

Objects类所在包是在java.util包下,因此在使用的时候需要进行导包。并且Objects类是被final修饰的,因此该类不能被继承。

Objects类提供了一些对象常见操作的方法。比如判断对象是否相等,判断对象是否为null等等。

Objects类中无无参构造方法,因此不能使用new关键字去创建Objects的对象。

Objects类中所提供的方法都是静态的。因此通过类名直接去调用这些方法。

public static String toString(Object o) 			// 获取对象的字符串表现形式
public static boolean equals(Object a, Object b)	// 比较两个对象是否相等
public static boolean isNull(Object obj)			// 判断对象是否为null
public static boolean nonNull(Object obj)			// 判断对象是否不为null
// 检查对象是否不为null,如果为null直接抛出异常;如果不是null返回该对象;
public static <T> T requireNonNull(T obj)
// 检查对象是否不为null,如果不为null,返回该对象;如果为null返回defaultObj值
public static <T> T requireNonNullElse(T obj, T defaultObj) 
// 检查对象是否不为null,如果不为null,返回该对象;如果															 // 为null,返回由Supplier所提供的值
public static <T> T requireNonNullElseGet(T obj, Supplier<? extends T> supplier)

上述方法中的T可以理解为是Object类型。

6 BigInteger类

BigInteger所在包是在java.math包下,因此在使用的时候就需要进行导包。
可以使用BigInteger类进行大整数的计算。

//构造方法
public BigInteger(int num, Random rnd) 		//获取随机大整数,范围:[0 ~ 2的num次方-1]
public BigInteger(String val) 				//获取指定的大整数
public BigInteger(String val, int radix) 	//获取指定进制的大整数
//下面这个不是构造,而是一个静态方法获取BigInteger对象
public static BigInteger valueOf(long val) 	//静态方法获取BigInteger的对象,内部有优化

//成员方法
public BigInteger add(BigInteger val)					//加法
public BigInteger subtract(BigInteger val)				//减法
public BigInteger multiply(BigInteger val)				//乘法
public BigInteger divide(BigInteger val)				//除法
public BigInteger[] divideAndRemainder(BigInteger val)	 //除法,获取商和余数
public  boolean equals(Object x) 					    //比较是否相同
public  BigInteger pow(int exponent) 					//次幂、次方
public  BigInteger max/min(BigInteger val) 				//返回较大值/较小值
public  int intValue(BigInteger val) 					//转为int类型整数,超出范围数据有误
  • 如果BigInteger表示的数字没有超出long的范围,可以用静态方法获取。
  • 如果BigInteger表示的超出long的范围,可以用构造方法获取。
  • 对象一旦创建,BigInteger内部记录的值不能发生改变。
  • 只要进行计算都会产生一个新的BigInteger对象

7 BigDecimal类

BigDecimal所在包是在java.math包下,因此在使用的时候就需要进行导包。
使用BigDecimal类进行更加精准的数据计算。

public BigDecimal add(BigDecimal value)				// 加法运算
public BigDecimal subtract(BigDecimal value)		// 减法运算
public BigDecimal multiply(BigDecimal value)		// 乘法运算
public BigDecimal divide(BigDecimal value)			// 触发运算

8 正则表达式

用于验证一些字符串,例如:年龄必须是2位的数字、用户名必须是8位长度而且只能包含大小写字母、数字等。正则表达式就是用来验证各种字符串的规则。它内部描述了一些规则,我们可以验证用户输入的字符串是否匹配这个规则。

字符类

  1. [abc]:代表a或者b,或者c字符中的一个。
  2. [^abc]:代表除a,b,c以外的任何字符。
  3. [a-z]:代表a-z的所有小写字符中的一个。
  4. [A-Z]:代表A-Z的所有大写字符中的一个。
  5. [0-9]:代表0-9之间的某一个数字字符。
  6. [a-zA-Z0-9]:代表a-z或者A-Z或者0-9之间的任意一个字符。
  7. [a-dm-p]:a 到 d 或 m 到 p之间的任意一个字符。

逻辑运算符

  1. &&:并且
  2. | :或者
  3. \ :转义字符

预定义字符

  1. “.” : 匹配任何字符。
  2. “\d”:任何数字[0-9]的简写;
  3. “\D”:任何非数字[^0-9]的简写;
  4. “\s”: 空白字符:[ \t\n\x0B\f\r] 的简写
  5. “\S”: 非空白字符:[^\s] 的简写
  6. “\w”:单词字符:[a-zA-Z_0-9]的简写
  7. “\W”:非单词字符:[^\w]
Java 中,\\ 表示:我要插入一个正则表达式的反斜线,所以其后的字符具有特殊的意义。
在 Java 中正则表达式中则需要有两个反斜杠才能被解析为其他语言中的转义作用。
System.out.print("\\");    // 输出为 \
System.out.print("\\\\");  // 输出为 \\

量词

  1. x{n} 约定左侧x出现n次
  2. x{n,m} 规定左侧x出现最少n次,最多m次
  3. x{0,n} 规定左侧x出现0到n次
  4. x{n,} 规定左侧x出现最少n次
  5. x? 和x{0,1}等价,x可以没有或者有一个
  6. x+ 和x{1,}等价,x至少有1个,多了随意,简称:一个以上
  7. x* 和x{0}等价,x至少有0个,多了随意,简称:0个以上

分组括号( )

将一组规则作为整体进行处理
(red|blue|green):匹配red或者blue或者green;

String支持正则表达式的方法

split():将当前字符串按照满足正则表达式的部分进行拆分
replaceAll():将当前字符串中满足正则表达式的部分替换为给定的字符串
matches():使用给定的正则表达式验证当前字符串的格式是否符合要求

public static void main(String[] args) {
   String line = "abc123drf456ghi";
   String[] data = line.split("[0-9]+");//按数字拆分,拆分后数字没了
//        for(int i=0;i<data.length;i++){
//            System.out.println(data[i]);
//        }
        System.out.println(Arrays.toString(data));//转换为字符串并输出
        line = "123.456.78";
        data =line.split("\\.");
        System.out.println(Arrays.toString(data));
    }
[abc, drf, ghi]
[123, 456, 78]

public static void main(String[] args) {
    String line ="abc123drf456ghi78";
    line = line.replaceAll("[0-9]+", "#NUMBER#");//有+直接替换
    System.out.println(line);

    //GD-----*****

}
abc#NUMBER#drf#NUMBER#ghi#NUMBER#


public static void main(String[] args) {
    /*
      邮箱正则表达式:
        [a-zA-Z0-9_]+@[a-zA-Z0-9]+(\.[a-zA-Z]+)+
      注意:
        \.中的\是正则表达式中的转义字符
        \\.中的第1个\,是java中的转义字符,是在转义正则表达式中的\
     */
    String email = "njl159344465555@163.com";
    String regex = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";
    //使用regex匹配email是否符合格式要求
    boolean match = email.matches(regex);
    if(match){
        System.out.println("是正确的邮箱格式");
    }else{
        System.out.println("不是正确的邮箱格式");
    }
}

9 Date

Date类

  • java.util.Date类 表示特定的瞬间,精确到毫秒。
  • public long getTime() 把日期对象转换成对应的时间毫秒值。
  • public void setTime(long time) 把方法参数给定的毫秒值设置给日期对象

SimpleDateFormat类

  • java.text.SimpleDateFormat 是日期/时间格式化类,可以在Date对象与String对象之间进行来回转换。
  • public SimpleDateFormat(String pattern):用给定的模式和默认语言环境的日期格式符号构造SimpleDateFormat。参数pattern是一个字符串,代表日期时间的自定义格式。

DateFormat类

  • public String format(Date date):将Date对象格式化为字符串。
  • public Date parse(String source):将字符串解析为Date对象。
  • DateFormat可以将Date对象和字符串相互转换。

Calendar类

  • java.util.Calendar类表示一个“日历类”,可以进行日期运算。它是一个抽象类,不能创建对象,我们可以使用它的子类:java.util.GregorianCalendar类。
  • 有两种方式可以获取GregorianCalendar对象:
    • 直接创建GregorianCalendar对象;
    • 通过Calendar的静态方法getInstance()方法获取GregorianCalendar对象
      在这里插入图片描述

JDK8时间相关类

在这里插入图片描述

10 包装类

方法

基本类型对应的包装类(位于java.lang包中)
byteByte
shortShort
intInteger
longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
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 对象
static string tobinarystring(int i)得到二进制
static string tooctalstring(int i)得到八进制
static string toHexstring(int i)得到十六进制
static int parseInt(string s)将字符串类型的整数转成int类型的整数
  • 装箱:从基本类型转换为对应的包装类对象。
  • 拆箱:从包装类对象转换为对应的基本类型。

基本类型转换为String

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

String转换成基本类型

  • 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基本类型。

11 Lambda表达式

作用:简化代码

  • 一、 不是任何匿名内部类都可以转换为Lambda表达式
    • Lambda表达式对接口的要求:只能是函数式接口
    • 函数式接口:接口中要求实现类必须重写的方法只有一个
  • 二、 Lambda表达式中的参数类型可以不写
  • 三、 Lambda表达式中中方法体只有一句代码,{}可以不写,如果有return,也一并不写
  • 四、 Lambda表达式的方法参数只有1个,那么()可以忽略不写
  • (参数列表)->{
    方法体
    }
public class LambdaDemo {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();

        //匿名内部类写法
        Collections.sort(list, new Comparator<String>() {
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();
            }
        });

        //Lambda表达式写法
        Collections.sort(list, (String o1, String o2) -> {
            return o1.length()-o2.length();
        });

        //Lambda表达式中的参数类型可以不写
        Collections.sort(list, (o1, o2) -> {
            return o1.length()-o2.length();
        });

        //Lambda表达式方法体中只有一句代码,方法体的{}可以不写,如果这句话中有return,也一并不写
        Collections.sort(list, (o1, o2) -> o1.length()-o2.length());

        //Lambda表达式的方法参数只有1个,那么()可以忽略不写---本案例不适用

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值