Java学习第十一天

Java学习第十一天知识盲点(常用API)

第十一天
2021/7/17week3day4
1、引用数据类型一般都用equals判断是否相等
2、把数组加到集合中
Collections.addAll(arr0,str0);
3、
Object类:
1).所有类的父类(基类),所有的类都默认继承Object也就意味着会默认继承Object类中所有的方法

2).只有一个无参构造方法,并且没有静态常量所有方法必须通过对象来调用

3).Object共有11个方法:

(1).Class<?> getClass()  
	
	a.作用: 通过对象的该方法,可以获取对象的字节码对象

	b.类加载的触发条件(使用类)
		1.实例化对象  new
		2.调用静态变量/静态方法
		3.使用子类,加载父类
		4.Class.forName("全类名") -- jdbc
		5.对象.getClass

(2).protected  Object clone()  
	a.克隆的方式:
		深克隆:	复制对象
		浅克隆:	复制引用
	b.调用
		1.方法必须重写
		2.必须要实现Cloneable接口,否则会抛出CloneNotSupportedException - 不支持的克隆异常
	c.注意:
		1.一般不会重写clone(),因为可以使用引用的赋值进行复制.
		2.Cloneable接口 - 是一个空接口,目的就是为了标记是可克隆的

(3)protected void finalize() 
	a.内存溢出和内存泄漏
		内存溢出: 在内存中没有存储的地方
		内存泄漏: 内存被无用的对象占用
			[一个对象分配内存空间后,在使用结束时没有及时释放,导致一直都在占用内存,没有及时清除,使得实际的可使用内存在减少]
	b.java存在垃圾回收机制 - gc
		gc: 定时清理内存中的垃圾
			1.垃圾: 没有引用的对象,被定成垃圾
			2.可以手动调用 System.gc

		注意: java原则上是不存在内存溢出和泄漏问题


(4) String toString() 
	a.作用: 将对象以字符串的形式输出
	b.[默认实现]:
	getClass().getName() + "@" + Integer.toHexString(hashCode())
		@前: 全类名 -> 包名 + 类名
		@后: 16进制的地址值

	c.方法的重写
		目的: 以自定义的方式展示对对象的显示

(5) boolean equals(Object obj)  
	a.作用:判断两个对象[this 和 obj]是否相等
	b.Object中的equals默认实现:
		是判断两个对象的地址值是否相等
		重写过后,判断两个对象的内容是否相等
	c.重写的过程:
		1.判断是不是同一种类型
		2.判断是不是同一个对象
		3.既不是同一个对象,也不是同一个类型的情况

(6)int hashCode()  - 获取hash值 -指的是内存地址值

	public native int hashCode(); 
		native:本地 -> 底层下是c++实现的代码

(7) wait() * 3 / notify()/notifyAll() -- 跟线程相关的

java.lang - 基础包 String StirngBuilder 包装类 线程
java.io - Input/Output
java.util - 工具包 Date Collection Map
java.text - 格式化 DateFormat

java.sql - 跟数据相关
java.net - 网络TCP/IP

跟时间相关的类:
long可以表示时间:

1. 获取方式:
	long time = System.currentTimeMillis();
	
2.作用:
	a.可以用来做短时间(7天以内)内的计算
	b.代码效率的对比
3.注意:
	在进行计算时,需要注意整数类型的默认值是int类型
	如果超出了int的范围,会变成一个负数
	所以需要在计算之前先标记为long类型 l/L标记

Date类:

1.作用:用来做时间的显示


2.创建
	a. new Date() -> 获取当前系统时间
	b. new Date(long) -> 获得任意时间段的时间

3.常用API
	setTime() - 设置时间
	getTime() - 获得时间

	boolean after(Date when) 
      测试此日期是否在指定日期之后。 
	boolean before(Date when) 
      测试此日期是否在指定日期之前。 

4.和long之间的转换
	long -> Date
        a. new Date(long)
        b. date.setTime(long)
	Date -> long
    	date.getTime()

Calendar类:

  	1.作用:专用用来做时间的推算或者时间的跳转
  	2.特点:
  		a.Calendar是abstract修饰的类,所以不能new对象
  	3.创建方式
  		a.通过Calendar的实现类来调用
  		b.通过静态方法调用
  			Calendar.getInstance()

*4.常用API:

  Calendar 和 Date的转换
	Date getTime()  -> Calendar 转换成 Date
	void setTime(Date) -> Date 转换成 Calendar
  calendar 和 long的转换
  	getTimeInMillis() 
  	setTimeInMillis() 
	get() - 获取
	set(字段,int value) - 设置,时间的跳转
	add(字段,int amount) - 时间的推算*

java.text

SimpleDateFormat类:
  1.创建
  	new SimpleDateFormat("yyyy-MM-dd")
  2.常用API:
  	Date parse(String text) ->字符串和Date之间的转换
 	format(Date date) -> Date按照指定格式输出
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值