复习JAVA高级部分
-
线程池的创建及使用
Executors类提供了4种不同的线程池:
newCachedThreadPool:用来创建一个可以无限扩大的线程池,适用于负载较轻的场景,执行短期异步任务。newFixedThreadPool:创建一个固定大小的线程池,因为采用无界的阻塞队列,所以实际线程数量永远不会变化,适用于负载较重的场景,对当前线程数量进行限制。
newScheduledThreadPool:单线程的线程池,保证执行顺序。
newSingleThreadExecutor:定时线程池,可执行定时任务或者周期性任务。
-
TCP/IP协议如何保证可靠性传输
首先TCP在建立连接之前会先进行三次握手保证连接。
在传输过程中TCP会发送ACK报文进行收发确认,若传输方未应答或者 ACK报文中的序列号有误那么将会重新发送数据
在断开时,TCP协议也会进行四次挥手进行断开确认。 -
TCP与UDP的区别和各自的使用场景
TCP是可靠的,面向字节流,有序的连接,适合对传输效率要求较低,准确性要求高的场景,如:文件传输
UDP是不可靠的,面向报文,无序的连接,适合对传输效率,但对准确性要求相对较低的场景,如:视频聊天 -
XML解析的两种方式比较DOM与Sax
DOM全称是Document Object Model,在读取过程中,基于DOM的XML解析器会先将整个XML文件读取到内存中形成一个对象模型集合,在对文件进行相应操作,因为DOM整个文档数据都读取到了内存中,所以应用程序可以快速访问XML文档中的任何数据。
SAX全称Simple API for XML SAX与DOM的处理方式不同,SAX解析器会在解析过程中触发事件,从而进行对文档的处理,也称为事件驱动,SAX解析式顺序访问的,虽然显得比较缺乏灵活性,但是对于XML文档来说SAX显然更加合适。