17.javase-javaAPI-Object/Arrays/Math/Random/System/BigInteger/BigDecimal/Date/DateFormat/包装类

一.Object

1.Object是类层次结构的根类,所有的类都直接或者间接的继承自Object类。
在这里插入图片描述

2.Object类的构造方法有一个,并且是无参构造
这其实就是理解当时我们说过,子类构造方法默认访问父类的构造是无参构造
3.getClass()这个方法表示获取当前类的字节码对象,这个在反射的时候是非常重要的方法.
4.hashcode()这个方法是在集合或者数据存储的时候非常重要,比如该对象作为key存储到hashmap中,则会用此方法计算hashcode的值.
5.equals(Object)这个方法使用来和其他对象做对比,默认实现是==,对比的是对象地址,但是可以重写此方法,对比类的属性和方法值,重写可以自动生成.
6.clone()此方法是用来实现克隆的基础方法,如果任何子类想要clone,则必须重写此方法.重写此方法的不同可以表现为浅克隆或者深克隆.
7.toString()此方法为将对象转换成相应的字符串,主要用于查看当前类的信息简介.输出一个对象,默认调用的就是对象的toString()方法.
8.notify()/notifyAll()这两个方法主要是java中线程常用方法,此方法用来唤醒睡眠的线程,重新进入就绪状态.
9.wait()此方法也是java线程常用方法,用来睡眠当前线程,使得当前线程放弃对象锁,进入睡眠,只有当唤醒时才能重新进入等待状态.
10.finalize()此方法为受保护的方法,为GC销毁此对象时调用的方法,如果子类重写了此方法,那子类可以调用此方法,通知GC来回收此对象,但是GC具体回收也得等GC闲的时候.

常考面试题.
A:直接输出一个对象名称,其实默认调用了该对象的toString()方法。
B:面试题
和equals()的区别?
A:

基本类型:比较的是值是否相同
引用类型:比较的是地址值是否相同
B:equals()
只能比较引用类型。默认情况下,比较的是地址值是否相同。
但是,我们可以根据自己的需要重写该方法。

二.Arrays

Arrays为数组操作的常用工具类.
Arrays.sort() 对数组的排序(从小到大)
Arrays.binarySerch() 二分查找,找到则定位元素下标
Arrays.toString()数组的打印
Arrays.fill() 数组的填充
Arrays.equals() 判断两个数组大小是否相等
Arrays.asList() 查看数组中的特定值
Arrays.copyOf 数组的拷贝

三.Math

针对数学运算进行操作的类.
常见方法(自己补齐)
A:绝对值 Math.abs(int a)
B:向上取整 Math.ceil(double a)
C:向下取整 Math.floor(double a)
D:两个数据中的大值 Math.max(int a,int b)
E:a的b次幂 Math.pow(int a, int b) a的b次幂
F:随机数 Math.random()
G:四舍五入 Math.round(folat a)
H:正平方根 Math.sqrt(double a)

四.Random

生成随机数的类.
构造方法:
A:Random() 默认种子,每次产生的随机数不同
B:Random(long seed) 指定种子,每次种子相同,随机数就相同
(3)成员方法:
A:int nextInt() 返回int范围内的随机数
B:int nextInt(int n) 返回[0,n)范围内的随机数

五.System

(1)系统类,提供了一些有用的字段和方法
(2)成员方法(自己补齐)
A:运行垃圾回收器
System.gc();
B:退出jvm
System.exit()
C:获取当前时间的毫秒值
System.curentTimeMillse() ------long
D:数组复制
System.arrayscopy(object src,int srcPos,object dest,int destPos,int destPos,int length)

六:BigInteger(理解)

(1)针对大整数的运算
(2)构造方法
A:BigInteger(String s)
(3)成员方法(自己补齐)
A:加
public BigInteger add(BigInteger val)
B:减
public BigInteger subtract(BigInteger val)
C:乘
public BigInteger multiply(BigInteger val)
D:除
public BigInteger divide(BigInteger val)
E:商和余数
public BigInteger[] divideAndRemainder(BigInteger val)

七:BigDecimal(理解)

(1)浮点数据做运算,会丢失精度。所以,针对浮点数据的操作建议采用BigDecimal。(金融相关的项目)
(2)构造方法
A:BigDecimal(String s)
(3)成员方法:
A:加
public BigDecimal add(BigDecimal augend)
B:减
public BigDecimal subtract(BigDecimal subtrahend)
C:乘
public BigDecimal multiply(BigDecimal multiplicand)
D:除
public BigDecimal divide(BigDecimal divisor)
E:自己保留小数几位
b1.divide(b2, 10, BigDecimal.ROUND_HALF_UP)

八:Date/DateFormat(掌握)

(1)Date是日期类,可以精确到毫秒。
A:构造方法
Date(long time)
得到日期
B:成员方法
getTime()//得到毫秒值
setTime(long time)//重新得到日期
C:日期和毫秒值的相互转换
案例:你来到这个世界多少天了?
(2)DateFormat针对日期进行格式化和针对字符串进行解析的类,但是是抽象类,所以使用其子类SimpleDateFormat
A:SimpleDateFormat(String pattern) 给定模式
yyyy-MM-dd HH:mm:ss
B:日期和字符串的转换
a:Date – String
format()
b:String – Date
parse()
C:案例:
制作了一个针对日期操作的工具类。
//创建一个指定格式的,日期格式化器
SimpleDateFormate sdf = new SimpleDateFormate(yyyy-mm-dd hh:ss);
//date -> string
String s = sdf.format(d);//将一个日期对象转为String类型
//String -> date
Date d = sdf.parse(s);//将一个字符串,转成日期对象

九:Calendar(掌握)

(1)日历类,封装了所有的日历字段值,通过统一的方法根据传入不同的日历字段可以获取值。
(2)如何得到一个日历对象呢?
Calendar rightNow = Calendar.getInstance();
本质返回的是子类对象
(3)成员方法
A:根据日历字段得到对应的值
B:根据日历字段和一个正负数确定是添加还是减去对应日历字段的值
c.add(Calendar.YEAR,-10)//将单签的年份,向前推10年
c.add(Calendar.MONTH,-3)//将当前的月份,向前推3个月
c.add(Calendar.DAYE,-10)//将当前日期的天数,向前推10天
C:设置日历对象的年月日
c.set(2019,8,10)//这是把日历对象的日期设置为2019年,8月10日
(4)案例:
计算任意一年的2月份有多少天?

10:Integer等八种基本类型包装类(掌握)

(1)为了让基本类型的数据进行更多的操作,Java就为每种基本类型提供了对应的包装类类型
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
(2)Integer的构造方法
A:Integer i = new Integer(100);
B:Integer i = new Integer(“100”);
注意:这里的字符串必须是由数字字符组成
(3)String和int的相互转换
A:String – int
Integer.parseInt(“100”);
B:int – String
String.valueOf(100);
(4)其他的功能(了解)
进制转换
(5)JDK5的新特性
自动装箱 基本类型–引用类型
自动拆箱 引用类型–基本类型

把下面的这个代码理解即可:
Integer i = 100;//Integer i = Integer.valueOf(100);
i += 200;//i = Integer.valueOf(i.intValue() + 200)
(6)面试题
-128到127之间的数据缓冲池问题//
Integer i = 127;//这里的赋值是直接在数据缓冲池里那数据,没有创建对象
Integer i = 128;//这里的值超过了缓冲池的最大值,所以等价于 Integer i = new Integer(128);

发布了42 篇原创文章 · 获赞 0 · 访问量 671

猜你喜欢

转载自blog.csdn.net/weixin_45449911/article/details/104476890