疏漏总结(十)

  1. 线程池的状态
    在这里插入图片描述
    ①线程池的初始状态的Running,能够接受新任务,也能处理现在的任务
    ②线程池处在SHUTDOWN状态时,不接收新任务,但能处理已添加的任务。
    ③线程池处在STOP状态时,不接收新任务,不处理已添加的任务,并且会中断正在处理的任务。
    ④当线程池变为TIDYING状态时,意味着所有任务都结束了,执行钩子函数terminated
    ⑤线程池彻底终止,就变成TERMINATED状态。

  2. http1.0 1.1的区别

①1.0用keep-alive去告知服务器建立一个长连接,1.1默认支持长连接
②1.0每次发送都是直接header+body,1.1连接起来先用header试探是否连接ok,然后直接发送body,节省带宽
③1.0是没有host域的,1.1才支持,也就是说web server上的多个虚拟站点可以共享同一个ip和端口

  1. copyOnWriteArrayList是不是线程安全的。

是线程安全的,当有新元素添加进去的时候,拷贝一份原来的list,复制到一个新的里面

特点:
1、读写分离,读和写分开
2、最终一致性
3、使用另外开辟空间的思路,来解决并发冲突​​​​​​​

  1. 操作系统分段和分页

相同点是:
①段式存储管理和页式存储管理都离散的管理了进程的逻辑空间。
不同点是:
①页是物理单位,段是逻辑单位。
②分页是为了合理利用空间,分段是满足用户要求
③页大小由硬件固定,段长度可动态变化
④页表信息是一维的,段表信息是二维的。

  1. 什么是最左前缀原则

最左前缀原则是联合索引下的一个概念,一个索引可以最多包含16列,可以用于索引中包含索引中所有列的查询条件的语句, 或者包含索引中的第一列的查询条件的语句, 以及索引中前两列, 索引中的前三列, 以此类推. 如果你在索引定义中以正确的顺序指定列, 那么联合索引就可以加速同一张表中的多个不同类型的查询.

如果你创建一个联合索引, 那这个索引的任何前缀都会用于查询, (col1, col2, col3)这个联合索引的所有前缀 就是(col1), (col1, col2), (col1, col2, col3), 包含这些列的查询都会启用索引查询.

其他所有不在最左前缀里的列都不会启用索引, 即使包含了联合索引里的部分列 也不行. 即上述中的(col2), (col3), (col2, col3) 都不会启用索引去查询.

  1. 类加载的过程

当Java程序需要使用某个类时,如果该类还未被加载到内存中,JVM会通过加载、连接(验证、准备和解析)、初始化三个步骤来对该类进行初始化。

类的加载是指把类的.class文件中的数据读入到内存中,通常是创建一个字节数组读入.class文件,然后产生与所加载类对应的Class对象。加载完成后,Class对象还不完整,所以此时的类还不可用。当类被加载后就进入连接阶段,这一阶段包括验证、准备(为静态变量分配内存并设置默认的初始值)和解析(将符号引用替换为直接引用)三个步骤。最后JVM对类进行初始化,包括:

1)如果类存在直接的父类并且这个类还没有被初始化,那么就先初始化父类;
2)如果类中存在初始化语句,就依次执行这些初始化语句。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值