本章节收集的类/接口API有:html
Object,Enum,包装类,Comparable,Arrays,Thread,Throwable,String,Collections,正则java
非静态方法需对象调用jquery
public String toString(): 【把一个对象的信息用一个字符串表示,尽可能要可以简单易懂,建议子类重写】api
public Class<?> getClass(): 【获取对象的“运行时”类型】数组
public void finalize(): 【当一个对象被肯定为垃圾时,由GC垃圾回收器来进行调用,每个对象的finalize()方法只会被调用一次】框架
public int hashCode(): 【返回一个对象的hashCode值】dom
常规协定:ide
(1)若是一个对象的参与计算hashCode值的成员变量没有修改,那么在程序运行期间,每次获取的hashCode值不变。工具
(2)若是两个对象hashCode不一样,那么这两个必定不“相等”测试
(3)若是两个的hashCode值相同,那么这两个对象不必定“相等”
(4)若是两个相等,那么他们的hashCode值必定要相同。
public boolean equals(Object obj): 【用于判断当前对象与指定对象是否相等】
默认的实现,等价于“==”,比较对象的内存地址。
子类能够选择重写,重写有一些要求及原则:重写equals时,必定要重写hashCode方法。一致性、对称性、自反性、传递性、非空对象与null的equals必定是false
protected Object clone()throws CloneNotSupportedException : 【获取一个对象的克隆体对象】
全部类型均可以重写这个方法,它是获取一个对象的克隆体对象用的,就是造一个和当前对象各类属性值如出一辙的对象。固然地址确定不一样。
调用此方法必须实现java.lang.Cloneable接口。
1.toString(): 【默认返回的是常量名(对象名),能够继续手动重写该方法】
2.name(): 【返回的是常量名(对象名)】
3.ordinal(): 【返回常量的次序号,默认从0开始】
4.values(): 【返回该枚举类的全部的常量对象,返回类型是当前枚举的数组类型,是一个静态方法】
5.valueOf(String name): 【根据枚举常量对象名称获取枚举对象】
大部分方法为静态方法,可用类名调用
一、基本数据类型和字符串之间的转换
1)String str = String.valueOf(xxx); 【把基本数据类型转为字符串】
2)除了Character类以外,其余全部包装类都具备parseXxx静态方法
int a = Integer.parseInt("整数的字符串"); 【String转换成对应的基本类型 】
3)把字符串转为包装类,而后能够自动拆箱为基本数据类型,(返回值类型是包装类)
int a = Integer.valueOf("整数的字符串"); 【把字符串转为包装类】
二、数据类型的最大最小值
Integer.MAX_VALUE和Integer.MIN_VALUE 【返回对应类型的最大/小常量值】
三、字符转大小写
Character.toUpperCase('x'); 【字符转大写】
Character.toLowerCase('X'); 【字符转小写】四、整数转进制
Integer.toBinaryString(int i) 【整数转二进制】
compareTo(String)和compareToIgnoreCase(String)方法 【对两个字符串进行比较】
Integer.toHexString(int i) 【整数转十六进制】
Integer.toOctalString(int i) 【整数转八进制】
int compareTo(Object obj); 【根据对象属性的值按天然排序】
第一步:哪一个类的对象要比较大小,哪一个类就实现java.lang. Comparable接口,并重写方法
第二步:对象比较大小时,经过对象调用compareTo方法,根据方法的返回值决定谁大谁小。
接口规定:返回值大于0调用对象大于指定对象,小于0就小于指定对象,等于0就两个对象值相等
(java.util.Arrays数组工具类的public static void sort(Object[] a)就是这么实现的)
int compare(Object o1,Object o2); 【根据对象属性的值按定制排序】
第一步:编写一个类,咱们称之为比较器类型,实现java.util. Comparator接口,并重写方法
第二步:比较大小时,经过比较器类型的对象调用compare()方法,将要比较大小的两个对象做为compare方法的实参传入,根据方法的返回值决定谁大谁小。
o1对象大于o2返回正整数
o1对象小于o2返回负整数
o1对象等于o2返回零
(java.util.Arrays数组工具类的public static <T> void sort(T[] a, Comparator<? super T> c)就是这作的)
java.lang.Cloneable接口,和Object类配合使用 【用于复制对象】
所有为静态方法
此类包含用来操做数组(好比排序和搜索)的各类方法。此类还包含一个容许将数组做为列表来查看的静态工厂。并且以下每个方法都有各类重载形式,如下只
列出int[]类型的,其余类型的数组类推。其可按照参数类型按升序排序,还可指定范围按升序进行排序。
static int binarySearch(int[] a, int key) 【要求数组有序,在数组中查找key是否存在,若是存在返回第一次找到的下标,不存在返回负数】
static int[] copyOf(int[] original, int newLength) 【根据original原数组复制一个长度为newLength的新数组,并返回新数组】
static int[] copyOfRange(int[] original, int from, int to) 【复制original原数组的[from,to)构成新数组,并返回新数组】
static boolean equals(int[] a, int[] a2) 【比较两个数组的长度、元素是否彻底相同】
static void fill(int[] a, int val) 【用val填充整个a数组】
static void fill(int[] a, int fromIndex, int toIndex, int val) 【将a数组[fromIndex,toIndex)部分填充为val】
static void sort(int[] a) 【将a数组按照从小到大进行排序】
static void sort(int[] a, int fromIndex, int toIndex) 【将a数组的[fromIndex, toIndex)部分按照升序排列】
static String toString(int[] a) 【把a数组的元素,拼接为一个字符串,形式为:[元素1,元素2,元素3。。。]】
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER); 【忽略大小写排序】
Arrays.sort(strArray, Collections.reverseOrder()); 【反向排序】
Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER); 【忽略大小写反向排序】
sort(T[] a, Comparator<? super T> c)
【根据指定比较器产生的顺序对指定对象数组进行排序。(同上面接口配合使用)】
public String getName() 【获取当前线程名称】
public final void setPriority(int newPriority) 【改变线程的优先级,最高10级,最低1级,默认5级】
public static void yield(): 【只是让当前线程暂停一下,随后继续和其余线程竞争】
public static Thread currentThread() 【返回对当前正在执行的线程对象的引用。】
Thread.State getState() 【返回该线程的状态。】
void interrupt() 【中断线程。】
public final boolean isAlive(): 【测试线程是否处于活动状态。若是线程已经启动且还没有终止,则为活动状态。】
void join() : 【等待该线程终止】
boolean isInterrupted() 【测试线程是否已经中断】
void join(long millis) : 【等待该线程终止的时间最长为
millis
毫秒】setDaemon(true) 【方法可将指定线程设置为守护线程。必须在线程启动以前设置】
isDaemon() 【能够判断线程是不是守护线程】
static boolean holdsLock(Object obj) 【当且仅当当前线程在指定的对象上保持监视器锁时,才返回 true】
(1)public long totalMemory(): 【总内存】
(2)public long freeMemory(): 【空闲内存】
(3)public static Runtime getRuntime() 【返回与当前 Java 应用程序相关的运行时对象。】
(4)gc();
public static double sqrt(double a): 【返回a的平方根】
public static double random(): 【返回[0,1)的随机值】
public static final double PI: 【返回圆周率】
public static double max(double x, double y): 【返回x,y中的最大值】
public static double min(double x, double y): 【返回x,y中的最小值】
BigInteger add(BigInteger val) 【加】
BigInteger subtract(BigInteger val) 【减】
BigInteger multiply(BigInteger val) 【乘】
BigInteger divide(BigInteger val) 【除】
BigInteger remainder(BigInteger val) 【余】
不可变的、任意精度的有符号十进制小数。
不可直接用运算符计算,要new对象来表示数据,要经过add,subtract,multiply,divide等方法来进行算术运算,参见API,其中除法运算须要指定类型和精度
void nextBytes(byte[] bytes): 【生成随机字节并将其置于用户提供的 byte 数组中。】
double nextDouble(): 【返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 double 值。】
float nextFloat(): 【返回下一个伪随机数,它是取自此随机数生成器序列的、在 0.0 和 1.0 之间均匀分布的 float 值。】
double nextGaussian(): 【返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的 double 值,其平均值是 0.0,标准差是 1.0。】
int nextInt(): 【返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。】
int nextInt(int n): 【返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值。】
long nextLong(): 【返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 long 值。】
new Date(): 【当前系统时间】
long getTime(): 【返回该日期时间对象距离1970-1-1 0.0.0 0毫秒之间的毫秒值】
new Date(long 毫秒): 【把该毫秒值换算成日期时间对象】
java.util.Calendar
它是抽象类,没法直接建立对象,直接建立子类对象:GregorianCalendar
经过指定时区和语言环境来建立对象,Calendar.getInstance(时区,语言环境),若是没有指定,就根据操做系统默认的时区和语言环境
int get(int field) 【返回给定日历字段的值】
java.util.TimeZone:时区
java.util.Locale:语言环境java.text.DateFormat
抽象类,没法直接建立对象,直接建立它子类的对象:SimpleDateFormat,只支持对Date类型 对象进行格式化
public StringBuffer format(Date date,StringBuffer toAppendTo,FieldPosition pos) 【把日期转为字符串:format(日期)】
将给定的
Date
格式化为日期/时间字符串,并将结果添加到给定的StringBuffer
。public Date parse(String text,ParsePosition pos) 【把字符串转为日期】
java.time.chrono – 提供对不一样的日历系统的访问。
java.time.format – 格式化和解析时间和日期
java.time.temporal – 包括底层框架和扩展特性
java.time.zone – 包含时区支持的类
static LocalDate now() 【从默认时区的系统时钟获取当前日期】
static LocalDate of(int year, int month, int dayOfMonth) 【从一年,一个月和一天得到一个 LocalDate的实例】
int getMonthValue() 【将月份字段从1到12返回】
Month getMonth() 【使用 Month枚举获取月份字段】
LocalDate withYear(int year) 【返回此日期的副本,并修改年份,同下面2个需从新接收】
LocalDate plusYears(long yearsToAdd) 【返回这个 LocalDate的副本,其中指定的时间段以添加的年数表示】
LocalDate minusYears(long yearsToSubtract) 【返回此 LocalDate的副本,以减去的年份为单位】
boolean isLeapYear() 【根据ISO培训日历系统规则,检查年份是不是闰年】
static LocalDate parse(CharSequence text) 【从一个文本字符串(如 2007-12-03获取一个 LocalDate的实例】
boolean isAfter(ChronoLocalDate other) 【检查此日期是否在指定日期以后】
boolean isBefore(ChronoLocalDate other) 【检查此日期是否在指定日期以前】
boolean isEqual(ChronoLocalDate other) 【检查此日期是否等于指定的日期】
boolean equals(Object obj) 【检查这个日期是否等于另外一个日期】
int compareTo(ChronoLocalDate other) 【将此日期与另外一个日期进行比较】
Temporal adjustInto(Temporal temporal) 【调整指定的时间对象与此对象的日期相同】
static Duration between(Temporal startInclusive, Temporal endExclusive) 【获取一个 Duration表示两个时间对象之间的持续时间】
static Period between(LocalDate startDateInclusive, LocalDate endDateExclusive) 【得到一个 Period ,由两个日期之间的年数,月份和日期组】
e.toString(): 【得到异常种类和错误信息】
e.getMessage(): 【得到错误信息】