总结:Arrays.Calendar.System.Date.math.Random.正则表达式 知识点

一.Arrays  工具类

Arrays是一个针对数组的工具,其中的方法都是针对数组使用.

异常处理:  如果指定数组引用为 null,则此类中的方法都会抛出 NullPointerException

Arrays的常用方法

public static String toString(int[] a) 可以将int类型的数组转换成字符串 ([元素1,元素2,元素3...])
public static void sort(int[] a) 对指定的 int 型数组按数字升序进行排序
public static int binarySearch(int[] a,int key) 二分搜索法: 在int类型的数组中查找key元素的索引

注意事项:在Arrays.binarySearch使用时,要先对数组a进行排序,因为二分法搜索搜索的升序数组(可以用Arrays.sort提前对数组进行升序排序)

package day11;

import java.util.Arrays;

public class Array {
	public static void main(String[] args) {
		int[] a = { 12, 11, 56, 34, 89, 26 };
		System.out.println(Arrays.binarySearch(a, 11));  //输出为-1
		System.out.println("------------------------");
		Arrays.sort(a);
		System.out.println(Arrays.binarySearch(a, 11));  //输出为 0
	}
}

二.Calendar  类

Calendar 类是一个抽象类,它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR 等 日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法

 理解:Calendar类是获取此时此刻的时间的毫秒值,(格林威治标准时间 1970 年 1 月 1 日的 00:00:00.000)通过取到的毫秒值和标准时间的差值再通过时间单位的划算,就能得到现在的时间和日期

Calendar是一个抽象类,所以无法被继承,实现该抽象类的方法

               1.导包,导包后才能使用该类的方法(暂时理解可以使用,但实际无对象,不能使用)

扫描二维码关注公众号,回复: 954587 查看本文章

               2.创建该类对象Calendar now = Calendar.getInstance();   先通过调用getInstance方法,获取日历,在用Calendar接受,起名为now(类似于多肽和链式编程结合来创建对象)

Calendar的常用方法

public int get(int field) 返回给定日历字段的值
public abstract void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量 
public final void set(int year, int month,int date) 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值


package day11;

import java.util.Calendar;

//日历类
public class Calendar1 {
public static void main(String[] args) {
	Calendar ca=Calendar.getInstance();
//	System.out.println(ca);
	int year=ca.get(Calendar.YEAR);
	System.out.println(year);
	int month=ca.get(Calendar.MONTH);
	System.out.println(month);
	int day=ca.get(Calendar.DATE);
	System.out.println(day);
	System.out.println(year+"/"+(month+1)+"/"+day);
	System.out.println("---------------------");
	//一年2个月15天后(日期前带负号)
	ca.add(Calendar.YEAR, 1);
	year=ca.get(Calendar.YEAR);
    ca.add(Calendar.MONTH, 2);
    month=ca.get(Calendar.MONTH);
    ca.add(Calendar.DATE, 15);
    day=ca.get(Calendar.DATE);
    System.out.println(year+"/"+(month+1)+"/"+day);
    //自定义日期
    ca.set(2008, 8, 8);
    year=ca.get(Calendar.YEAR);
    month=ca.get(Calendar.MONTH);
    day=ca.get(Calendar.DATE);
    System.out.println(year+"/"+month+"/"+day);    
}
}
输出结果:
2018
4
3
2018/5/3
---------------------
2019/7/18
2008/8/8

注意:Calendar中的get月份时,月份是从0月开始,所以要手动加1,但是在自定义时间是不需要

        如果对时间进行的增删或者自定义,都要用get方法收集一次时间后在使用,如不收集则时间依然是原来时间

三.System 类

System常用的方法

public static void gc() 运行垃圾回收器
public static void exit(int status)

终止当前正在运行的 Java 虚拟机。参数用作状态码; 

 一般情况,需要终止Jvm,那么参数0

public static long currentTimeMillis() 返回以毫秒为单位的当前时间

public static void arraycopy

(Object src,int srcPos, Object dest,int destPos, int length)

从指定源数组中复制一个数组,复制从指定的位置开始,

到目标数组的指定位置结束

System.gc()运行垃圾回收器来回收不用的数据,其内部用的是finalize方法,

System.exit()终止jam虚拟机,int status,为状态码,如果要终止虚拟机,则为0

System.currentTimeMillis() 获取当前的毫秒值,(既为于标准时间的差值)

System.arraycopy :参数名词解释

        src:原数组
dest:目标数组
srcPos :从原数组的哪个位置开始
destPos:到目标数组的哪个位置结束

length:长度

四.Date 类

Date的构造方法

public Date() 表示分配它的时间(精确到毫秒)
public Date(long date) 创建一个日期对象,指定毫秒值(将long数据转化为Date对象)

package day11;

import java.util.Date;

public class date {
public static void main(String[] args) {
	Date d=new Date();
	long l=d.getTime();
	long l1=System.currentTimeMillis();
	System.out.println(l);
	System.out.println(l1);

输出1525348558918

       1525348558918

则Date中的getTime()于System.currentTimeMillis();方法同类似,一个通过建立Date时间类,在获取当前Date类下的毫秒值,一个是直接返回以毫秒为单位的当前时间,两个结果一样,但是过程不一样

重点:Date的日期格式和日期的文本格式:String类型 之间进行转换(Date---->String(格式化))

1.先引入DateFormat类,但是该类是抽象类,则应用该类子实现类SimpleDateFormat,是一个以与语言环境有关的方式来格式化和解析日期的具体类。它允许进行格式化(日期 -> 文本)、解析(文本 -> 日期)和规范化。

SimpelDateFormat的构造方法:

public SimpleDateFormat(String pattern) :构造一个SimpleDateFormat对象,根据pattern规则

package day11;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Date2 {
public static void main(String[] args) throws ParseException {
	//创建Date对象,输出Date当前时间
	 Date d=new Date();  
	 System.out.println(d);
	 //创建键盘录入对象,用string类型接收
     System.out.println("输入日期:"); 
     Scanner sc=new Scanner(System.in);
     String str=sc.nextLine(); 
     //创建SimpleDateFormat对象,且设定规则,通过sdf.parse()方法解析同时和设定的规则比较
     //在解析的同时要抛出异常,因为可能可是不匹配,最后输出该系统时间
     SimpleDateFormat sdf=new SimpleDateFormat("yyyy/MM/dd");
     Date d1=sdf.parse(str);
     System.out.println(d1);
   }
}

五.Math 类

常用的方法:
  public static int abs(int a):                                    绝对值
  public static double ceil(double a):                     向上取整
  public static double floor(double a):                   向下取整
  public static int max(int a,int b):                          求最大值
  public static int min(int a,int b):                           求最小值
  public static double pow(double a,double b):    a的b次幂
  public static double random()              返回带正号的 double 值,该值大于等于 0.0 且小于 1.0
  public static int round(float a):                             四射五入
  public static double sqrt(double a):                      一个数的正平方根 


六.Random类

Random:是一个可以获取随机数的类

public Random() 无参构造
public Random(long seed) 指定long类型的数据进行构造随机数类对象
 
 

Random方法

public int nextInt() 获取随机数,它的范围是在int类型范围之内
public int nextInt(int n) 获取随机数,它的范围是在[0,n)之间
package day11;

import java.util.Random;

public class Random1 {
public static void main(String[] args) {
	Random r=new Random();
	System.out.println(r.nextInt());  //获取int范围之内的任意只
	System.out.println(r.nextInt(5));  //获取[0-5)之间的任意一值
}
}

七.正则表达式

正则表达式基础语法

字符


x x字符
\\ 反斜线字符
\t 制表符 
\n 换行符
\r 回车符 

字符类:

        [abc] a、b 或 c(简单类)
[^abc] 任何字符,除了 a、b 或 c(否定)
[a-zA-Z] a 到 z 或 A 到 Z,两头的字母包括在内(范围) 

预定义字符类:

          .                              任何字符 ,如果本身就是 \. eg:qq.com 写正则表达式(\\.) 
\d 数字:[0-9] 本身: 写正则表达式 :\\d
\w 单词字符:[a-zA-Z_0-9]:字母大小写,数字字符 本身:\\w

边界匹配器:

        ^ 行的开头 
$ 行的结尾 
\b 单词边界 尾

Greedy 数量词(重点)

        X? X,一次或一次也没有 
X* X,零次或多次 
X+ X,一次或多次 
X{n} X字符恰好出现n次
X{n,} X字符至少出现n次
X{n,m} X字符至少出现n次,但不超过m次


猜你喜欢

转载自blog.csdn.net/qq_41923771/article/details/80186342