本文收集的类/接口API有:
Object,Enum,包装类,Comparable,Arrays,Thread,System,Math,BigInteger,Random,日期时间,Throwable,String,Collections,正则
一. Object类
非静态方法需对象调用
public String toString():把一个对象的信息用一个字符串表示,尽量要能够简单易懂,建议子类重写public Class> getClass():获取对象的“运行时”类型public void finalize():当一个对象被确定为垃圾时,由GC垃圾回收器来进行调用,每一个对象的finalize()方法只会被调用一次public int hashCode():返回一个对象的hashCode值
常规协定:
如果一个对象的参与计算hashCode值的成员变量没有修改,那么在程序运行期间,每次获取的hashCode值不变。如果两个对象hashCode不同,那么这两个一定不“相等”如果两个的hashCode值相同,那么这两个对象不一定“相等”如果两个相等,那么他们的hashCode值一定要相同。public boolean equals(Object obj):用于判断当前对象与指定对象是否相等
默认的实现,等价于“==”,比较对象的内存地址。
子类可以选择重写,重写有一些要求及原则:重写equals时,一定要重写hashCode方法。一致性、对称性、自反性、传递性、非空对象与null的equals一定是false
protected Object clone()throws CloneNotSupportedException :获取一个对象的克隆体对象
所有类型都可以重写这个方法,它是获取一个对象的克隆体对象用的,就是造一个和当前对象各种属性值一模一样的对象。当然地址肯定不同。
调用此方法必须实现java.lang.Cloneable接口。
二. 枚举toString():默认返回的是常量名(对象名),可以继续手动重写该方法name():返回的是常量名(对象名)】ordinal():返回常量的次序号,默认从0开始】values():返回该枚举类的所有的常量对象,返回类型是当前枚举的数组类型,是一个静态方法valueOf(String name):根据枚举常量对象名称获取枚举对象三. 包装类
大部分方法为静态方法,可用类名调用
1、基本数据类型和字符串之间的转换
String str = String.valueOf(xxx);把基本数据类型转为字符串除了Character类之外,其他所有包装类都具有parseXxx静态方法`int a = Integer.parseInt("整数的字符串");``String转换成对应的基本类型把字符串转为包装类,然后可以自动拆箱为基本数据类型,(返回值类型是包装类)int a = Integer.valueOf("整数的字符串");把字符串转为包装类
2、数据类型的最大最小值
Integer.MAX_VALUE和Integer.MIN_VALUE:返回对应类型的最大/小常量值
3、字符转大小写
Character.toUpperCase('x');——字符转大写Character.toLowerCase('X');——字符转小写
4、整数转进制
Integer.toBinaryString(int i)——整数转二进制Integer.toHexString(int i)——整数转十六进制Integer.toOctalString(int i)——整数转八进制四. 接口Comparable,Comparator
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
java.lang.Cloneable接口,和Object类配合使用——用于复制对象
五. 类 Arrays
全部为静态方法
此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。而且如下每一个方法都有各种重载形式,以下只列出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)部分填充为valstatic 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)——根据指定比较器产生的顺序对指定对象数组进行排序。(同上面接口配合使用)六. Thread类public String getName()——获取当前线程名称public final int getPriority()——返回线程优先级public final void setPriority(int newPriority)——改变线程的优先级,最高10级,最低1级,默认5级public static void sleep(long millis)——使当前正在执行的线程以指定的毫秒数暂停(暂时停止执行),期间会一直持有锁对象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七. Java.lang.System类
全部为静态方法
static long currentTimeMillis()——返回当前系统时间距离1970-1-1 0:0:0的毫秒值static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)(srcPos - 源数组中的起始位置。destPos - 目标数据中的起始位置,length-要复制的数组元素的数量)从指定源数组中复制一个数组,复制到指定的数组。常用于数组的插入和删除,可以是同一数组static void exit(int status) :——退出当前系统,参数0表示正常退出,非零整数异常退出static String getProperty(String key):——获取某个系统属性值,System.getProperties()配合使用,获取系统属性static void gc() :——运行垃圾回收器
java.lang.Runtime
类它的对象代表当前程序运行的JVM环境。
public long totalMemory():——总内存public long freeMemory():——空闲内存public static Runtime getRuntime()——返回与当前 Java 应用程序相关的运行时对象。gc();八. Math
全部为静态方法
用于数学运算,其所有方法均为静态方法,并且不会创建对象
public static double abs(double a)——返回 double 值的绝对值public static double ceil(double a)——返回大于等于参数的最小的整数public static double floor(double a)——返回小于等于参数最大的整数public static long round(double a)——返回最接近参数的 long。(相当于四舍五入方法)public static double pow(double a,double b):——返回a的b幂次方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
java.math包,不可变的任意精度的整数。
BigInteger(String val)BigInteger add(BigInteger val) ——【加】BigInteger subtract(BigInteger val) ——【减】BigInteger multiply(BigInteger val) ——【乘】BigInteger divide(BigInteger val) ——【除】BigInteger remainder(BigInteger val) ——【余】
BigDecimal
不可变的、任意精度的有符号十进制小数。
不可直接用运算符计算,要new对象来表示数据,要通过add,subtract,multiply,divide等方法来进行算术运算,参见API,其中除法运算需要指定类型和精度
十. RoundingMode枚举类CEILING :向正无限大方向舍入的舍入模式。DOWN :向零方向舍入的舍入模式。FLOOR:向负无限大方向舍入的舍入模式。HALF_DOWN :向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向下舍入。HALF_EVEN:向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向相邻的偶数舍入。HALF_UP:向最接近数字方向舍入的舍入模式,如果与两个相邻数字的距离相等,则向上舍入。UNNECESSARY:用于断言请求的操作具有精确结果的舍入模式,因此不需要舍入。UP:远离零方向舍入的舍入模式。十一. Random
非静态方法,需对象调用
java.util.Random,用于产生随机数
boolean nextBoolean():——返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的 boolean 值。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 值。十二. 日期时间
java.util.Date
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)——把字符串转为日期
SimpleDateFormat用于日期时间的格式化。
十三. java.time包 JDK1.8新增java.time – 包含值对象的基础包java.time.chrono – 提供对不同的日历系统的访问。java.time.format – 格式化和解析时间和日期java.time.temporal – 包括底层框架和扩展特性java.time.zone – 包含时区支持的类
本地日期时间:LocalDate、LocalTime、LocalDateTime
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)——调整指定的时间对象与此对象的日期相同
指定时区日期时间:ZonedDateTime
持续日期/时间:Period:用于计算两个“日期”间隔 、和Duration:用于计算两个持续时间
static Duration between(Temporal startInclusive, Temporal endExclusive)——获取一个 Duration表示两个时间对象之间的持续时间static Period between(LocalDate startDateInclusive, LocalDate endDateExclusive)——获得一个 Period ,由两个日期之间的年数,月份和日期组
DateTimeFormatter:日期时间格式化,其用法格式与上图SimpleDateFormat标准相同
十四. 异常e.toString():——获得异常种类和错误信息e.getMessage():——获得错误信息printStackTrace():——打印异常的跟踪栈信息并输出到控制台。Java读者福利:我把近一年经历过的Java岗位面试,和一些刷过的面试题都做成了PDF,PDF都是可以免费分享给大家的,只要关注私信我:【888】,就能获取免费领取方式!
标签: 对象
②文章观点仅代表原作者本人不代表本站立场,并不完全代表本站赞同其观点和对其真实性负责。
③文章版权归原作者所有,部分转载文章仅为传播更多信息、受益服务用户之目的,如信息标记有误,请联系站长修正。
④本站一律禁止以任何方式发布或转载任何违法违规的相关信息,如发现本站上有涉嫌侵权/违规及任何不妥的内容,请第一时间反馈。发送邮件到 88667178@qq.com,经核实立即修正或删除。