Java核心库 最全最详细(完结)

2021-01-26 11:35:40 浏览数 (1)

By CaesarChang 合作: root121toor@gmail.com

~关注我 带你看更多精品知识

!需要大量记忆

泛型

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

定义一个泛型类:(最多使用) public class ClassName<T>{ private T data; public T getData() { return data; } public void setData(T data) { this.data = data; } } 使用的话 ClassName<(要传入的类型 像String Integer)> c=new ClassName();

泛型接口:

泛型方法:

其中void可以换为 A泛型 方法直接调用不用指定泛型了

泛型限制类型 1. 在使用泛型时, 可以指定泛型的限定区域 , - 例如: 必须是某某类的子类或 某某接口的实现类,格式: <T extends 类 或 接口1 & 接口2> 一定是extends 没有imPlement

泛型中的通配符 ? 类型通配符是使用 代替方法具体的类型实参。 1 <? extends Parent>指定了泛型类型的上届 2 <? super child>指定了泛型类型的下届 3<?> 指定了没有限制的泛型类型

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

注意: java中的泛型只在编译阶段有效,不会进入运行时段(已经给定类型)

Java中 Object 与 Objects 的区别与联系

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

Objects

Objects.equals 比较引用类型内容是否一致 boolean返回值 Objects.equals(obj1,obj2)

isNull 判断引用类型是否为空 boolean isNull(Object obj)

  • int compare(T a, T b, Comparator c) 如果参数相同,则返回0,否则返回c.compare(a,b)。因此,如果两个参数都为null,则返回0。
  • System.out.println(Objects.compare(1, 2, new Comparator<Integer>() { @Override public int compare(Integer o1, Integer o2) { return o1 - o2; }));

int hash(Object... values) 为所有指定的对象生成哈希码。它可以用于计算对象的哈希码,该哈希码基于多个实例字段

int hashCode(Object o) 返回指定对象的哈希码值。如果参数为null,则返回0

String toString(Object o) 如果参数为null,则toString()方法返回一个“null”字符串

T requireNonNull(T obj) T requireNonNull(T obj, String message) 检查参数是否为null。如果参数为null,它会抛出一个NullPointerException异常。 第二个版本可以指定 当参数为null时抛出的NullPointerException的消息。

Math:

Math.abs(-10) 绝对值

*Math.sqrt(X)//计算平方根

Math.cbrt(X)//计算立方根

Math.pow(a, b)//计算a的b次方

Math.max( , );//计算最大值

*Math.min( , );//计算最小值

Math.ceil(X) 接近此数的大的整数的值

Math.floor(X) 接近此数的小的整数的值

Math.random() [0,1)

Math.round(X) round 四舍五入,float时返回int值,double时返回long值

Arrays:

binarySearch 二分查找法找指定元素的索引值(下标) 使用前提: 数组一定是排好序的,否则会出错。找到元素,只会返回最后一个位置 Arrays.binarySearch(arr, 20)

填充数组:fill int []arr = new int[5]; Arrays.fill(arr, 2); 结果是:2 2 2 2 2

数组元素排序:sort Arrays.sort(arr);

比较数组元素是否相等:equals 返回值为boolean Arrays.equals重写了equals,所以,这里能比较元素是否相等。 Arrays.equals(arr1,arr2)

截取数组:copeOf和copeOfRange int []arr1 = Arrays.copyOf(arr, 3); //前三个元素 也可用于动态扩容 int []arr1 = Arrays.copyOfRange(arr,1,3);//[1,3)

BigDecimal

double中的0.1其实是0.1000000000000000055511151231257827021181583404541015625,若是需要精确计算的结果,则必须使用BigDecimal类来操作。用来对超过16位有效位的数进行精确的运算

初始化:

  1. BigDecimal(int) 创建一个具有参数所指定整数值的对象
  2. BigDecimal(double) 创建一个具有参数所指定双精度值的对象
  3. BigDecimal(long) 创建一个具有参数所指定长整数值的对象
  4. BigDecimal(String) 创建一个具有参数所指定以字符串表示的数值的对象
  5. 例如: BigDecimal a =new BigDecimal(0.1);

常用方法:

  1. add(BigDecimal) BigDecimal对象中的值相加,返回BigDecimal对象
  2. subtract(BigDecimal) BigDecimal对象中的值相减,返回BigDecimal对象
  3. multiply(BigDecimal) BigDecimal对象中的值相乘,返回BigDecimal对象
  4. divide(BigDecimal) BigDecimal对象中的值相除,返回BigDecimal对象
  5. toString() 将BigDecimal对象中的值转换成字符串
  6. doubleValue() 将BigDecimal对象中的值转换成双精度数
  7. floatValue() 将BigDecimal对象中的值转换成单精度数
  8. longValue() 将BigDecimal对象中的值转换成长整数
  9. intValue() 将BigDecimal对象中的值转换成整数
  10. 例如BigDecimal a =new BigDecimal(0.1); int i = a.intValue();

Date

DateFormat

DateFormat其本身是一个抽象类,SimpleDateFormat 类是DateFormat类的子类,一般情况下来讲DateFormat类很少会直接使用,而都使用SimpleDateFormat类完成

  • String str=format​(Date date)

    将Date格式化为日期时间字符串。

  • Date date=parse​(String source)

    从给定字符串的开头解析文本以生成日期。

例如:

Calendar(日历类):

Calendar不能被new 只可以调用getInstance()方法

set 设置年月日时分秒 get设置年月日时分秒

add 添加年月日

注意: 月 从零开始 0-11 周 是从星期天开始 所以星期六为 7

getActualMaximum

获取最大数目 图为一月的最大天数

getTime Date d=cl.getTIme(); // 不是时间戳 而是获取日历的时间表示的Date对象

System

1、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 池里面取,如果有则直接用,否则创建新的放入。

字符串长度 int len=str.length();

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

下一张请看 Java中结合干货的点击->集合干货

更新Ing

0 人点赞