复习JAVA高级部分

复习JAVA高级部分

  1. 线程池的创建及使用
    Executors类提供了4种不同的线程池:
    newCachedThreadPool:用来创建一个可以无限扩大的线程池,适用于负载较轻的场景,执行短期异步任务。

    newFixedThreadPool:创建一个固定大小的线程池,因为采用无界的阻塞队列,所以实际线程数量永远不会变化,适用于负载较重的场景,对当前线程数量进行限制。

    newScheduledThreadPool:单线程的线程池,保证执行顺序。

    newSingleThreadExecutor:定时线程池,可执行定时任务或者周期性任务。

  2. TCP/IP协议如何保证可靠性传输
    首先TCP在建立连接之前会先进行三次握手保证连接。
    在传输过程中TCP会发送ACK报文进行收发确认,若传输方未应答或者 ACK报文中的序列号有误那么将会重新发送数据
    在断开时,TCP协议也会进行四次挥手进行断开确认。

  3. TCP与UDP的区别和各自的使用场景
    TCP是可靠的,面向字节流,有序的连接,适合对传输效率要求较低,准确性要求高的场景,如:文件传输
    UDP是不可靠的,面向报文,无序的连接,适合对传输效率,但对准确性要求相对较低的场景,如:视频聊天

  4. XML解析的两种方式比较DOM与Sax
    DOM全称是Document Object Model,在读取过程中,基于DOM的XML解析器会先将整个XML文件读取到内存中形成一个对象模型集合,在对文件进行相应操作,因为DOM整个文档数据都读取到了内存中,所以应用程序可以快速访问XML文档中的任何数据。
    SAX全称Simple API for XML SAX与DOM的处理方式不同,SAX解析器会在解析过程中触发事件,从而进行对文档的处理,也称为事件驱动,SAX解析式顺序访问的,虽然显得比较缺乏灵活性,但是对于XML文档来说SAX显然更加合适。

你可能感兴趣的:(java)