看书要点:java基础总结(八)

 

Io

Java的输入输出功能来自于java.io包中的InputStream类、OutputStream类,Reader类和Writer类以及继承他们的各种子类。(前两者操作字节流,后两者操作字符流)

 

线程:

线程也是一种对象,继承Thread类和实现Runnable借口的方式都可创建线程。

Thread类中常用的方法包括start(),run(),join()等方法。

Runnable接口只有一个run()方法,实现后一般要重写掉。

因为java只允许单一继承,所以如果已经继承了其他类,只能用Runnable接口的方式来实现线程。当一个run()方法体现在继承Thread类中,用this指向实际控制运行的Thread类实例,因此,代码无需如下控制:Thread.currenThread().sleep(),而可以简单地使用:Thread.sleep()。继承Thread类使代码变得简单易读。

sleep() wait() 有什么区别?

答案:sleep是线程类(Thread)的方法,导致此线程暂停执行指定时间(休息),把执行机会给其他线程,但是监控状态依然保持,到时后会自动恢复,时间到了会继续运行。调用sleep不会释放对象锁。

waitObject类的方法,对此对象调用wait方法导致本线程放弃对象锁,进入等待此对象的等待锁定池,只有针对此对象发出notify方法(或notifyAll后本线程才进入对象锁定池准备获得对象锁进入运行状态。

 

 

 

线程的生命周期:创建可执行非可执行消亡

1、创建,指的是当实例化一个Thread对象并执行start()方法之后,线程进入可执行状态。

2、可执行,在这种状态下,线程可能被执行完,也可能被处于等待执行的队列。可以用Thread类中的wait()、sleep()方法进入非可执行状态

3、非可执行,可以通过notify()、notifyAll()以及interrupt()方法进入可执行。

4、消亡,在run()方法执行完毕后,线程自动消亡。Stop()方法可以强制消亡,但是会导致线程稳定,现在基本被废弃。

 

多线程有几种实现方法,都是什么?同步有几种实现方法,都是什么?
答:多线程有两种实现方法,分别是继承Thread类与实现Runnable接口
同步的实现方面有两种,分别是synchronized,waitnotify

 

多线程容易产生死锁。

 

JAVA类实现序列化的方法?在collection中,实现比较要实现什么样的接口?写个例子

         答案:java类实现序列化需要实现java.io.Serializable接口。

         collection中实现比较要实现Comparable接口或Comparator接口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值