面试总结

一、谈谈你对多线程的理解?

1、多线程的优缺点

优点:

1)提升界面的响应速度,利用了异步的思想

2)有效的利用资源,提升cpu利用率

缺点:

线程数量过大的时候,线程间切换会占用大量资源,影响性能;可以通过线程池控制线程总数,来达到优化性能的目的

2、线程的生命周期

创建-就绪-运行-死亡-阻塞

3、线程创建的三种方式

1)继承Thread类,实现run方法,优点是有start方法,缺点是java是单继承的

2)实现Runnable接口,实现run方法,优点是规避了java的单继承机制,缺点是没有start方法,需要用Thread类的start方法去启动

3)实现Callable接口,实现call方法,call方法有返回值,可以抛出异常,可以配合future使用

4、线程池

1)Executors提供的默认线程池,有缓存线程池、固定重用数量线程池、单线程线程池等。。

2)自定义线程池,实例化ThreadPoolExecutor类,设定初试线程数、最大线程数、持续时间、缓存队列等参数

5、线程间通信

1)锁机制

2)轮询可见信号量

3)wait、notify

4)管道通信

6、多线程常用的设计模式

1)Future

2)Master-Worker

3)生产者-消费者

二、谈谈对io流的理解

1、主要分为输入流和输出流,又可以分为字节流和字符流

2、字节流继承了inputstream类,字符流继承自Reader

3、其中特殊的是inputstreamReader,他继承自Reader,属于字符流,但其参数为字节流,所以能够实现字节流转字符流,并且该类还可以设置字符编码

BufferedReader提供了readline方法。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值