java常用核心类
Object:终极父类
java.lang.Object类是java语言中所有类的根类,所有的类(包括数组)都继承该类中的方法。
toString():返回对象的字符串表示。
equals():比较两个对象是否相等。(该方法比较的是两个对象的引用,即相当于两个对象使用”==“号进行比较)
在子类中,使用equals(ClassName obj)覆盖equals()方法是一个常见的错误,应该用equals(Object obj)覆盖equals()方法。
hashCode():返回一个对象的哈希码值(十进制内存地址),它是一个整数,主要用来比较对象的大小。
hashCode()方法和equals()方法必须是兼容的,即x.equals(y)与x.hashCode()==y.hashCode()的返回值必须都为true或false,如果为一个类覆盖了equals()方法,则也需要覆盖hashCode()方法,以兼容equals()方法。
clone():克隆一个对象,即创建一个对象副本。要使类的对象能够克隆,类必须实现Cloneable接口。该方法返回值类型为Object,因此需进行强制类型转换。
Car c1 = new Car("宝马","棕色");
Car c2 = (Car)c1.clone();
调用clone()方法创建副本,用==比较两个对象,结果为false,使用equals()方法比较两个对象,结果为true。
finalize():当对该对象没有引用时有垃圾回收器调用。
在java程序中,每个对象都有一个finalize()方法,在程序中每个对象的finalize()方法仅被调用一次,可清除在对象外被分配的资源。
Math类
Math类是final类,不能被继承,其构造方法的访问修饰符是private,不能被实例化。其定义的常量以及方法都是静态的,仅能通过类名访问。
asin(double x):返回x的绝对值。
sqrt(double x):返回x的平方根。
pow(double x,double y):返回x的y次方。
random():0.0~1.0的随机数,左闭右开。
ceil(double x):返回大于或等于x的最小整数。(上)
floor(double x):返回小于或等于x的最大整数。(下)
rint(double x):返回与x最接近的整数,如相等,则返回其中的偶数。
round(float x):返回(int)Math.floor(x+0.5)。
基本类型包装类
int-----Integer
long------Long
float-----Float
double-----Double
boolean-----Boolean
char------Character
byte-----Byte
short-----Short
每种包装类型的对象中所包装的值是不可改变的,要改变对象中的值必须重新生成新的对象。
每个数值包装类中定义了SIZE(数据所占位数)、BYTES(数据所占的字节数)、MAX_VALUE、MIN_VALUE常量。
Float和Double类中还定义了POSITIVE_INFINITY(正无穷)、NEGATIVE_INFINITY(负无穷)、NAN(非数值)。
自动装箱:基本类型的数据可以自动转换为包装类的实例。
Integer value = 308;
自动拆箱:包装类的实例自动转换为基本类型的数据。
int x = value;
字符串转换为基本类型:通过包装类的parseXxx()静态方法实现。
parseInt()、parseByte()、parseShort()、parseLong()、parseFloat()、parseDouble()、parseBoolean()
将字符串转换为基本数据类型,字符串的格式必须与要转换的数据格式匹配,否则产生NumberFormatException异常。
int d = Integer.parseInt("314");
BigInteger和BigDecimal类:扩展了Number类并实现了Comparable接口,它们的实例都是不可变的。
日期-时间
java.time包中,提供了日期-时间API。
LocalDate:本地日期类,LocalDate对象用来表示带年月日的日期,不带时间信息。
LocalTime:本地时间类,包含时、分、秒,它是不可变对象。
LocalDateTime:本地日期时间类,该对象是前两个对象的组合,用来表示一个特定事件的开始时间等。
now():获得默认时区系统时钟当前日期和时间对象。
of(int year,int month,int dayOfMonth,int hour,int minute):通过指定的年月日和时分获得日期时间对象。
Instant类:表示时间轴上的一个点。
Duration类,Period类:表示一段时间,前者是基于时间的,后者是基于日期的。
时态数据解析:parse()方法将一个字符串(”2015-07-09“)解析成日期数据2015年7月9日。
时态数据格式化:format()方法使用指定的格式将时态对象表示成字符串。