JAVA常用类库-初探

常用类库:生活中我们所使用的工具

需要多多练习和记忆!

泛型

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

泛型类
泛型类在这里插入图片描述

泛型接口
在这里插入图片描述在这里插入图片描述泛型方法
在这里插入图片描述泛型限定
在这里插入图片描述限定Plate类只能使用Fruit类中

泛型中的通配符
在这里插入图片描述
1 <? extends Parent> 指定了泛型类型的上届
2 <? super Child> 指定了泛型类型的下届
3 <?> 指定了没有限制的泛型类型,跟object有所区别,object是指任何东西都可以传,?则指可以用某类参数替换

注意

在编译之后程序会采取去泛型化的措施
也就是说Java中的泛型,只在编译阶段有效,在运行阶段会给泛型指定具体类型,所以泛型不会进入运行阶段

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

Objects

Object所有类的根,顶级父类
Objects 是 Object 类的子类。Java中的所有类最终都继承于 Object
Objects 是工具类,用于封装一些平时使用频率很高或容易出错的操作,这些操作形成了 Objects 的各个方法。

在这里插入图片描述1. Objects.equals(p1,p2), 比较引用类型内容是否一致 boolean返回值,如果p1为null,不会引发空指针异常
2. Objects.isNull(p1),判断是否为空
3. Objects.requireNonNull(),如果为空,程序会直接抛异常
在这里插入图片描述在这里插入图片描述

Math

在这里插入图片描述 1. Math.abs(-10) 绝对值
2. Math.sqrt(X)//计算平方根
3. Math.pow(a, b)//计算a的b次方
4. Math.max( , );//计算最大值
5. Math.min( , );//计算最小值
6. Math.ceil(X) 接近此数的大的整数的值
7. Math.floor(X) 接近此数的小的整数的值
8. Math.random() [0,1)
9. Math.round(X) round 四舍五入,float时返回int值,double时返回long值

Arrays

该类包含用于操作数组的各种方法(例如排序和搜索)。 此类还包含一个静态工厂,允许将数组视为列表
如果指定的数组引用为null,则此类中的方法都抛出NullPointerException

在这里插入图片描述1. Arrays.binarySearch(arr, 20) 二分查找法找指定元素的索引值(下标)
使用前提,数组一定是排好序的,否则会出错。找到元素,只会返回最后一个位置
2. Arrays.sort(arr);数组元素排序
3. Arrays.equals(arr1,arr2);比较数组元素是否相等返回值为boolean
Arrays.equals重写了equals,所以,这里能比较元素是否相等
4. copeOf和copeOfRange 截取数组
int []arr1 = Arrays.copyOf(arr, 3); //前三个元素
int []arr1 = Arrays.copyOfRange(arr,1,3);

BigDecima

不可变的,任意精度的带符号十进制数
A BigDecimal由任意精度整数非标度值和32位整数标度组成
在这里插入图片描述如果在控制台0.1+0.2,会发现计算有误差
由于floatL类型和double类型在运算可能会导致误差,精确计算就需要借助BigDecima类
常用方法
Public BigDecima add(BigDecima de);//加法
Public BigDecima subtract(BigDecima de)//减法
Public BigDecima multiply(BigDecima de)//乘法
Public BigDecima divide(BigDecima de)//除法
初始化:
BigDecimal(int)
创建一个具有参数所指定整数值的对象
BigDecimal(double)
创建一个具有参数所指定双精度值的对象
BigDecimal(long)
创建一个具有参数所指定长整数值的对象
BigDecimal(String)
创建一个具有参数所指定以字符串表示的数值的对象

Date

Date类表示特定的时间,精确到ms毫秒

它允许将日期解释为年,月,日,小时,分钟和秒值
它还允许格式化和解析日期字符串

Calendar类应该用于在日期和时间字段之间进行转换,
而DateFormat类应该用于格式化和解析日期字符串

接受或返回年,月,日,小时,分钟和秒值的所有Date类方法中,使用以下表示:

构造方法Date()

分配 Date对象并对其进行初始化,使其表示分配时间,测量 Date到毫秒。
Date​(long date)
分配 Date对象并初始化它以表示自标准基准时间(称为“纪元”)以来的指定毫秒数,即1970年1月1日00:00:00 GMT。

常用方法

getTime()
返回自此 Date对象表示的1970年1月1日00:00:00 GMT以来的毫秒数。
setTime​(long time)
将此 Date对象设置为表示格林尼治标准时间1970年1月1日00:00:00之后的 time毫秒的时间点。
在这里插入图片描述

DateFormat

DateFormat其本身是一个抽象类,SimpleDateFormat 类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都使用SimpleDateFormat类完成
在这里插入图片描述

Calendar

Calendar类是一个抽象类,可以通过getInstance方法来获取他的对象,
Calendar不能被new 只可以调用getInstance()方法

通过createCanlendar,可以为在某一特定时刻和一组之间的转换的方法calendar fields如YEAR , MONTH , DAY_OF_MONTH , HOUR ,等等,以及用于操纵该日历字段,如获取的日期下个星期

//月份的话,程序里是0-11月,国外每周是,星期日是第一天
//Canlendar.YEAR可以用1下标
在这里插入图片描述在这里插入图片描述

System

System.arraycopy(a,b,c,d,e);
其中,a是被复制的数组,b是复制的起始位置,c是复制到的数组,d是复制到这个数组的起始位置,e是复制的长度

System.currentTimeMillis();
返回毫秒数,和Date类中的getTime方法一样。

System.gc()
可用于垃圾回收

System.exit(1) 或 System.exit(0)。
java中程序退出 0代表正常退出 其他异常退出 同时有了它 finally 可以不执行 直接结束

String

String类表示字符串,
字符串是不变的; 它们的值在创建后无法更改。 字符串缓冲区支持可变字符串。 因为String对象是不可变的,所以可以共享它们,当String 对象的值一样时候,会使用相同的内存地址,在字符串常量池里进行缓存。

方法区又称永久代,又称非堆区,常称位PermGen,位于非堆空间
方法区是被所有线程共享。
所有字段和方法字节码,以及一些特殊方法如构造函数,接口代码也在此定义

所有定义的方法的信息都保存在该区域,此区属于共享区间
这些区域存储的是:静态变量+常量+类信息(构造方法/接口定义)+运行时的常量池
但是,实例变量存在堆内存中,和方法区无关
堆(heap)
一个JVM实例只存在一个堆内存,堆内存的大小是可以调节的。类加载器读取了类文件后,需要把类,方法、常量放到堆内存中,保存所有引用类型的真实信息,以方便执行器执行

堆在逻辑上分为三部分
新生代、又分为Eden区和Survior幸存区
刚创建的对象都会进入到新生代里面,新生代的GC垃圾回收机制有很大不同
Eden:新创建的对象
Sruivior经过垃圾回收,但是垃圾回收次数小于15次的对象,超过15次进入老年代
老年代、垃圾回收机制超过15次,依然存活的对象
永久代、永久代不进行垃圾回收。类、方法、常量,静态修饰
JDK1.8之后,永久代更名为元空间

在这里插入图片描述1 char charAt(int index)
返回指定索引处的 char 值。
2 int compareTo(Object o)
把这个字符串和另一个对象比较。 同为0
3 int compareTo(String anotherString)
按字典顺序比较两个字符串。 同为0
4 int compareToIgnoreCase(String str)
按字典顺序比较两个字符串,不考虑大小写。
5 String concat(String str)
将指定字符串连接到此字符串的结尾。
6 boolean contentEquals(StringBuffer sb)
当且仅当字符串与指定的StringBuffer有相同顺序的字符时候返回真。
7 static String copyValueOf(char[] data)
返回指定数组中表示该字符序列的 String。
8 static String copyValueOf(char[] data, int offset, int count)
返回指定数组中表示该字符序列的 String。
9 boolean endsWith(String suffix)
测试此字符串是否以指定的后缀结束。
10 boolean equals(Object anObject)
将此字符串与指定的对象比较。
11 boolean equalsIgnoreCase(String anotherString)
将此 String 与另一个 String 比较,不考虑大小写。
12 byte[] getBytes()
使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
13 byte[] getBytes(String charsetName)
使用指定的字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
14 void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
将字符从此字符串复制到目标字符数组。
15 int hashCode()
返回此字符串的哈希码。
16 int indexOf(int ch)
返回指定字符在此字符串中第一次出现处的索引。
17 int indexOf(int ch, int fromIndex)
返回在此字符串中第一次出现指定字符处的索引,从指定的索引开始搜索。
18 int indexOf(String str)
返回指定子字符串在此字符串中第一次出现处的索引。
19 int indexOf(String str, int fromIndex)
返回指定子字符串在此字符串中第一次出现处的索引,从指定的索引开始。
21 int lastIndexOf(int ch)
返回指定字符在此字符串中最后一次出现处的索引。
22 int lastIndexOf(int ch, int fromIndex)
返回指定字符在此字符串中最后一次出现处的索引,从指定的索引处开始进行反向搜索。
23 int lastIndexOf(String str)
返回指定子字符串在此字符串中最右边出现处的索引。
24 int lastIndexOf(String str, int fromIndex)
返回指定子字符串在此字符串中最后一次出现处的索引,从指定的索引开始反向搜索。
25 int length()
返回此字符串的长度。
26 boolean matches(String regex)
告知此字符串是否匹配给定的正则表达式。
27 boolean regionMatches(boolean ignoreCase, int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
28 boolean regionMatches(int toffset, String other, int ooffset, int len)
测试两个字符串区域是否相等。
29 String replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
30 String replaceAll(String regex, String replacement)
使用给定的 replacement 替换此字符串所有匹配给定的正则表达式的子字符串。
31 String replaceFirst(String regex, String replacement)
使用给定的 replacement 替换此字符串匹配给定的正则表达式的第一个子字符串。
32 String[] split(String regex)
根据给定正则表达式的匹配拆分此字符串。
33 String[] split(String regex, int limit)
根据匹配给定的正则表达式来拆分此字符串。
34 boolean startsWith(String prefix)
测试此字符串是否以指定的前缀开始。
35 boolean startsWith(String prefix, int toffset)
测试此字符串从指定索引开始的子字符串是否以指定前缀开始。
36 CharSequence subSequence(int beginIndex, int endIndex)
返回一个新的字符序列,它是此序列的一个子序列。
37 String substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。
38 String substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。
39 char[] toCharArray()
将此字符串转换为一个新的字符数组。
40 String toLowerCase()
使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
41 String toLowerCase(Locale locale)
使用给定 Locale 的规则将此 String 中的所有字符都转换为小写。
42 String toString()
返回此对象本身(它已经是一个字符串!)。
43 String toUpperCase()
使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
44 String toUpperCase(Locale locale)
使用给定 Locale 的规则将此 String 中的所有字符都转换为大写。
45 String trim()
返回字符串的副本,忽略前导空白和尾部空白。
46 static String valueOf(primitive data type x)
返回给定data type类型x参数的字符串表示形式。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值