常用API

(1)Date
类 Date 表示特定的瞬间,精确到毫秒。
在这里插入图片描述
在这里插入图片描述

(2)DateFormat
通过这个类可以帮我们完成日期和文本之间的转换。DateFormat 可帮助进行格式化并解析任何语言环境的日期。对于月、星期,甚至日历格式(阴历和阳历),其代码可完全与语言环境的约定无关。

日期格式:

DateFormat df= new SimpleDateFormat("yyyy-MM-dd");//对日期进行格式化
Date date = new Date(1607616000000L);
String str_time = df.format(date);
System.out.println(str_time);//2020年12月11日

常用方法:
在这里插入图片描述

(3)Calendar
Calendar是日历类,在Date后出现,替换掉了许多Date的方法。
在这里插入图片描述

Calendar c = Calendar.getInstance();  //返回当前日历对象
public static Calendar {
Calendar c = new GregorianCalendar();
	return c;
}

常用方法:
在这里插入图片描述

(4)System类

System中代表程序所在系统,提供了对应的一些系统属性信息,和系统操作。
在这里插入图片描述

(5)Math类
Math 类是包含用于执行基本数学运算的方法的数学工具类,如初等指数、对数、平方根和三角函数。
在这里插入图片描述

(7)基本类型包装类
8种基本类型对应的包装类如下:
在这里插入图片描述

自动拆箱:对象转成基本数值
自动装箱:基本数值转成对象
Integer i = 4;//自动装箱。相当于Integer i = Integer.valueOf(4);
i = i + 5;//等号右边:将i对象转成基本数值(自动拆箱) i.intValue() + 5; 
加法运算完成后,再次装箱,把基本数值转成对象。

(8)正则表达式
正则表达式是一个字符串,使用单个字符串来描述、用来定义匹配规则,匹配一系列符合某个句法规则的字符串。
字符串类中涉及正则表达式的常用方法:
在这里插入图片描述
在这里插入图片描述
在Pattern类中有正则表达式的的规则定义,正则表达式中明确区分大小写字母。

正则表达式的语法规则:
字符:x
含义:代表的是字符x
例如:匹配规则为 “a”,那么需要匹配的字符串内容就是 ”a”

字符:\
含义:代表的是斜线字符’’
例如:匹配规则为"\" ,那么需要匹配的字符串内容就是 ”\”

字符:\t
含义:制表符
例如:匹配规则为"\t" ,那么对应的效果就是产生一个制表符的空间

字符:\n
含义:换行符
例如:匹配规则为"\n",那么对应的效果就是换行,光标在原有位置的下一行

字符:\r
含义:回车符
例如:匹配规则为"\r",那么对应的效果就是回车后的效果,光标来到下一行行首

字符类:[abc]
含义:代表的是字符a、b 或 c
例如:匹配规则为"[abc]",那么需要匹配的内容就是字符a,或者字符b,或字符c的一个

字符类:[^abc]
含义:代表的是除了 a、b 或 c以外的任何字符
例如:匹配规则为"[^abc]",那么需要匹配的内容就是不是字符a,或者不是字符b,或不是字符c的任意一个字符

字符类:[a-zA-Z]
含义:代表的是a 到 z 或 A 到 Z,两头的字母包括在内
例如:匹配规则为"[a-zA-Z]",那么需要匹配的是一个大写或者小写字母

字符类:[0-9]
含义:代表的是 0到9数字,两头的数字包括在内
例如:匹配规则为"[0-9]",那么需要匹配的是一个数字

字符类:[a-zA-Z_0-9]
含义:代表的字母或者数字或者下划线(即单词字符)
例如:匹配规则为" [a-zA-Z_0-9] ",那么需要匹配的是一个字母或者是一个数字或一个下滑线

预定义字符类:.
含义:代表的是任何字符
例如:匹配规则为" . “,那么需要匹配的是一个任意字符。如果,就想使用 . 的话,使用匹配规则”\."来实现

预定义字符类:\d
含义:代表的是 0到9数字,两头的数字包括在内,相当于[0-9]
例如:匹配规则为"\d ",那么需要匹配的是一个数字

预定义字符类:\w
含义:代表的字母或者数字或者下划线(即单词字符),相当于[a-zA-Z_0-9]
例如:匹配规则为"\w ",,那么需要匹配的是一个字母或者是一个数字或一个下滑线

边界匹配器:^
含义:代表的是行的开头
例如:匹配规则为1[0-9]$ ,那么需要匹配的内容从[abc]这个位置开始, 相当于左双引号

边界匹配器:$
含义:代表的是行的结尾
例如:匹配规则为2[0-9]$ ,那么需要匹配的内容以[0-9]这个结束, 相当于右双引号

边界匹配器:\b
含义:代表的是单词边界
例如:匹配规则为"\b[abc]\b",那么代表的是字母a或b或c的左右两边需要的是非单词字符([a-zA-Z_0-9])

数量词:X?
含义:代表的是X出现一次或一次也没有
例如:匹配规则为"a?",那么需要匹配的内容是一个字符a,或者一个a都没有

数量词:X*
含义:代表的是X出现零次或多次
例如:匹配规则为"a*",那么需要匹配的内容是多个字符a,或者一个a都没有

数量词:X+
含义:代表的是X出现一次或多次
例如:匹配规则为"a+",那么需要匹配的内容是多个字符a,或者一个a

数量词:X{n}
含义:代表的是X出现恰好 n 次
例如:匹配规则为"a{5}",那么需要匹配的内容是5个字符a

数量词:X{n,}
含义:代表的是X出现至少 n 次
例如:匹配规则为"a{5, }",那么需要匹配的内容是最少有5个字符a

数量词:X{n,m}
含义:代表的是X出现至少 n 次,但是不超过 m 次
例如:匹配规则为"a{5,8}",那么需要匹配的内容是有5个字符a 到 8个字符a之间

逻辑运算符:XY
含义:代表的是X后跟Y
例如:匹配规则为"ab",那么需要匹配的字符串内容就是 ”ab”

逻辑运算符:X|Y
含义:代表的是X 或 Y
例如:匹配规则为"a|b",那么需要匹配的字符串内容就是 ”a”或”b”

逻辑运算符:(X)
含义:代表的是()括号内的数据作为一组数据出现,(X)的方式称为正则表达式中的组

(9)集合
Java中给我们提供一类容器,专门用来存放对象,这个容器就是集合。
集合框架:
集合本身是一个工具,它存放在java.util包中。
不同的容器进行不断的向上抽取,最后形成了一个集合框架,这个框架就是Collection接口。在Collection接口定义着集合框架中最最共性的内容。

Collection接口:
Collection接口是集合中的顶层接口。
Collecton接口常用的子接口有:List接口、Set接口
List接口常用的子类有:ArrayList类、LinkedList类
Set接口常用的子类有:HashSet类、LinkedHashSet类

在这里插入图片描述
在这里插入图片描述

(10)Iterator迭代器

java中提供了很多个集合,它们在存储元素时,采用的存储方式不同。我们要取出这些集合中的元素,可通过一种通用的获取方式来完成。
Collection集合元素的通用获取方式:在取元素之前先要判断集合中有没有元素,如果有,就把这个元素取出来,继续在判断,如果还有就再取出出来。一直把集合中的所有元素全部取出。这种取出方式专业术语称为迭代。
集合中把这种取元素的方式描述在Iterator接口中。

在这里插入图片描述

(11)泛型
泛型用来灵活地将数据类型应用到不同的类、方法、接口当中。将数据类型作为参数传递。
泛型的定义:定义泛型可以在类中预支地使用未知的类型。
泛型的使用:一般在创建对象时,将未知的类型确定具体的类型。当没有指定泛型时,默认类型为Object类型。
使用泛型的好处:
(1)将运行时期的ClassCastException,转移到了编译时期变成了编译失败。
(2)避免了类型强转的麻烦。

含有泛型的类:修饰符 class 类名<代表泛型的变量> { }
例如,API中的ArrayList集合:
class ArrayList{
public boolean add(E e){ }
public Eget(int index){ }
}

使用格式:创建对象时,确定泛型的类型.
ArrayList list = new ArrayList();
此时,变量E的值就是String类型.
举例自定义泛型类

publicclass GenericClass<E>{//自定义的类中,可以写<>泛型
   //E 表示未知的数据类型 调用者创建对象的时候,才能明确数据类型
	private E e;
	
	publicvoid setE(E e){
		this.e = e;
	}
	
	public E getE(){
		returne;
	}
}
使用:
publicclass GenericClassTest {
	publicstaticvoid main(String[] args) {
		//对自定义的泛型类,进行测试
		GenericClass<Integer> g = new GenericClass<Integer>();	
         //E传递什么类型就是什么类型
		g.setE(100);	
		Integer i = g.getE();	
		System.out.println(i);
	}
}

含有泛型的方法:

publicclass GenericMethod <E>{
	
	publicvoid show(E e){
		System.out.println(e);
	}

含有泛型的接口:

定义格式:修饰符 interface接口名<代表泛型的变量> { }

publicinterface Inter <E>{
	publicabstractvoid show(E e);
}

泛型通配符:
当使用泛型类或者接口时,传递的数据中,泛型类型不确定,可以通过通配符<?>表示。但是一旦使用泛型的通配符后,只能使用Object类中的共性方法,集合中元素自身方法无法使用。

/*
 * 泛型通配符?,代表任意的数据类型
 * 
 * 定义:(查看ArrayList的构造方法)无法在类中使用
 * 
 * 使用:调用方法时可以给予任意类型。参照Arraylist的构造方法
 * public ArrayList(Collection<? extends E> c)
 * 为了便于?的理解,我们将以上方法重写为public ArrayList(ArrayList<? extends E> c)
 * 
 * 该方法的意思:创建集合对象A时,给于另外一个集合对象B作为参数,则创建好的集合A中包含了集合B中的元素
 * 
 * ? extends E代表只要是E类型的子类即可
 * ? super E代表只要是E类型的父类即可
 */

(12)数据结构
数据存储的常用结构有:堆栈、队列、数组、链表。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(13)LinkedList集合
LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法。

(14)Set接口
不包含重复元素的集合。Set集合取出元素的方式可以采用:迭代器、增强for。
HashSet集合:
HashSet集合,采用哈希表结构存储数据,保证元素唯一性的方式依赖于:hashCode()与equals()方法。

哈希表:
底层结构是 哈希表结构 + 链表结构。
哈希表底层使用的也是数组机制,数组中也存放对象。会根据这些对象的特有数据结合相应的算法,计算出这个对象在数组中的位置,然后把这个对象存放在数组中。而这样的数组就称为哈希数组,即就是哈希表。

给哈希表中存放对象时,会调用对象的hashCode方法,算出对象在表中的存放位置。如果两个对象hashCode方法算出结果一样,这样现象称为哈希冲突,这时会调用对象的equals方法,比较这两个对象是不是同一个对象,如果equals方法返回的是true,那么就不会把第二个对象存放在哈希表中,如果返回的是false,就会把这个值存放在哈希表中。

(15)判断集合元素唯一的原理
ArrayList的contains方法判断元素是否重复原理:
在这里插入图片描述
传入的元素的equals方法依次与集合中的旧元素所比较,从而根据返回的布尔值判断是否有重复元素。注:根据内容判断是否为重复元素,需要重写元素的equals方法。


  1. abc ↩︎

  2. abc ↩︎

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值