1. 线程池排队策略 & 拒绝策略答案
2. Synchronized的原理及自旋锁,偏向锁,轻量级锁,重量级锁的区别答案,升级为重量级锁时,markwords里存的是monitor的起始地址。重量级锁的获取markword与monitor
3. java多线程的6种实现方式详解多线程
4. 重入锁 实现原理答案
5. 长连接的几种实现方式https://blog.csdn.net/jiary5201314/article/details/51398155/
6. B-树、B+树、B*树的区别区别 Hash索引,一步步分析数据库索引
7. 聚簇索引和非聚簇索引区别
8. 理解线程池的原理 答案
线程池使用注意事项
1) 建议使用new ThreadPoolExecutor(...)的方式创建线程池:
线程池的创建不应使用 Executors 去创建,而应该通过 ThreadPoolExecutor 创建,这样可以让读者更加明确地知道线程池的参数设置、运行规则,规避资源耗尽的风险,这一点在也阿里巴巴JAVA开发手册中也有明确要求。这一点不容小觑,曾有同学因为线程池使用不当导致生产的同一台机器上部署的多个应用都因无法创建线程池而出现故障。
2) 合理设置线程数:
线程池的工作线程数设置应根据实际情况配置,CPU密集型业务(搜索、排序等)CPU空闲时间较少,线程数不能设置太多。N核服务器,通过执行业务的单线程分析出本地计算时间为x,等待时间为y,则工作线程数(线程池线程数)设置为 N*(x+y)/x,能让CPU的利用率最大化。
3) 设置能代表具体业务的线程名称:这样方便通过日志的线程名称识别所属业务。具体实现可以通过指定ThreadPoolExecutor的ThreadFactory参数。如使用spring提供的CustomizableThreadFactory。
10 Servlet流程流程
11.单例模式几种实现
12. 序列化答案
13.Tomcat服务器与负载均衡答案
14.Nio,Bio,Aio区别
15. Netty netty1
16.GCGC
17. java对象头 java对象模型,对象头Synchroized锁住的是代码还是对象答案
18. 内存泄漏原因
20.常用算法时空间复杂度分析常见算法java实现 堆排序实现java实现,栈,数组链表时间复杂度答案,LinkedList实现队列,栈实现,ArrayList实现排序答案, 数组实现循环队列实现方法
23.OSI七层模型答案,Https基于SSl/TLS加密 答案,Http与Tcp,socket区别, HTTP1.0,1.1,1.2
24. DNS域名解析层层递进,交换机和路由器区别,ping过程原理答案
25.GET和POST区别
26.数据库死锁预防解决,innodb和myisam,innodb,innodb行级锁说明
27.Union与UnionAll,SQL语句查询优化答案
28. 缓存穿透,雪崩,击穿问题,单线程redis为啥,redis与memchched区别
29.Spring ioc与aop入门,Aop,JDK动态代理,cglib动态代理,Spring事务传播答案
30.八大排序算法详解