0905

1.打印昨天的当前时刻

public static void main(){
    //1.获取日历函数的当前时刻
	Calendar cal= Calendar.getInstance();
    //2.给日期减一天
	cal.add(Calendar.DATE,-1);
	system.out.println(cal.getTime());
}

2.List、Set、Map是否继承自Collection接口?

1.Collection是单例集合的顶层接口,单列集合按照特征分为两类。

​ 一类是无序不重复,即Set集合,一类分为有序可重复,即List集合,list集合有序的原因是他有索引

​ Set集合按照是否需要排序分为HashSet和TreeSet,HashSet是无序的,但是LinkedHashSet里面的顺序是按照添加的顺序来的

​ List集合又分为ArrayList和 LinkedList,ArrayLIst的底层结构是数组(查找和更改的速度快),而LinkedList(增加和删除的速度快)的底层结构是链表

​ map集合是双列集合的顶层接口,其中map集合分为HashMap和TreeMap,其中HashMap是无序的,但是LinkedHashMap是有序的

3.线程的基本状态以及状态之间的关系?

java线程汇总的五种基本状态:

1.新建状态

​ 当线程对象对创建后,即进入了新建状态。如

2.就绪状态

​ 当调用线程对象的start()方法,线程就进入了就绪状态,处于就绪状态的线程,只是说明此线程已经做好了准备,随时等待CPU调度执行,并不是说执行了t.start()此线程就会执行

3.运行状态

​ 当CPU开始调度处于就绪状态的线程的时候,此时线程才得到真正的执行,即进入到运行状态。就绪状态是进入到运行状态的唯一入口,也就是说,线程想要进入运行状态执行,首先必须处于就绪状态中

4.阻塞状态

​ 1.等待阻塞:运行中的线程执行wait方法,让本线程进入到等待阻塞状态;

​ 2.同步阻塞:线程在获取synchronzied同步锁失败,它会进入同步阻塞

​ 3.其他阻塞:通过调用线程的sleep方法或join()或发出IO请求时,线程会进入到阻塞状态。当sleep()终止,线程就会转入就绪状态

5.销毁状态

​ 线程执行完了或者因为异常退出了run方法,该线程结束生命周期

几种之间的关系描述:

就绪状态转换为运行状态:当此线程得到处理器资源时

运行状态转换为就绪状态:线程主动调用了yield()方法或者在运行中市区处理器资源

运行状态转换为死亡状态:线程执行完毕或者线程发生了异常

4.Java中sleep方法和wait方法的区别?

他们都是使得线程暂停执行一段时间的方法。wait()也是一种使线程暂停执行的方法。例如:

​ 1.首先sleep方法属于Thread类,而wait方法属于Object类

​ 2.对锁的处理机制不同。由于sleep方法的主要作用是让线程暂停执行一段时间,时间一到自动回复,不涉及线程间的通信,因此,调用sleep方法并不会释放锁。而wait方法不同,当调用wait()方法后,线程会释放掉他所占用的锁,从而使线程所在对象中也synchronized数据可以被其他线程使用

​ 3.使用区域不同,wait()方法必须放在同步控制方法和同步代码块中使用,sleep方法则可以放在任何地方使用。sleep()方法必须捕获异常.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值