一、基本

1.hashmap:

1.1 转红黑树条件:
a.数组长度大于等于64(默认16,要经过2次扩容--当达到16*默认扩容因子0.75=12就扩容)
b.链表长度大于8
1.2 hashmap先计算hash值,再用hash值计算下标。

2.sleep与await:

1.1 sleep是线程方法,await是object方法
1.2 sleep不会释放锁,而await会
1.3 sleep不依赖于同步器synchronize,而await要
1.4 sleep不需要被唤醒,而await要

3.hashtable与hashmap:

1.1 前者线程安全,而后者不是
1.2 前者不可以把null作为key,而后者可以,并放在第一个节点上
1.3 两者扩容因子默认都是0.75;前者初始容量为11,扩容是当前容量2+1;后者初始容量是16,扩容是当前容量2

4.cookie与session的区别:

前者cookie:
存放在客户端浏览器中;
大小受限制,单个不超过4K,一般1个站点最多保存20个;
String类型;
不太安全(可以加密)
后者sessiono:
存放在服务器中;
大小一般不受限制;
Key-Value(Object类型);
安全性更高;

二、JVM

4.用户线程与内存线程:

1.1 多对一:不需要切换,线程创建、调度、同步非常快;但是如果其中一个用户线程阻塞会造成其他线程无法执行,且无法像内核线程一样实现较完整的调度、优先级;
1.2 一对一:java的jvm几乎把所有对线程的操作都交给了系统内核操作,线程真正启动顺序不一定是按我们启动的顺序,会引起用户态和内核态的频繁切换;如果系统出现大量线程,回家降低系统性能。

5.运行时数据区:

java中await方法 java中aware_java

6.内存回收:

java中await方法 java中aware_并发编程_02

7.内存溢出:

1.1 栈溢出

java中await方法 java中aware_数据库_03


1.2 堆溢出


java中await方法 java中aware_java_04


》第8行设置会在堆溢出会导出Damping日志

1.3 方法区溢出
1.4 本机直接内存溢出

8.内存泄漏:

1.1 不使用的内存,却没有被释放;
1.2 每一次请求进来或者每一次操作处理都分配了内存,却有部分不能回收(或未释放),随着请求越来越多,内存泄漏就会越来越严重,必然造成内存溢出。
1.3 内存泄漏一般是资源管理问题或者程序bug,内存溢出则是内存空间不足和内存泄漏的最终结果。

9.hotspot对象头包含哪些部分:

java中await方法 java中aware_并发编程_05

10.根据类分析对象的内存占用:

java中await方法 java中aware_数据库_06

11.jvm启动参数:在哪里配?

java中await方法 java中aware_java中await方法_07

12.堆空间最大值设置:

13.G1垃圾收集器特点:

1.空间整合:哪块垃圾最多优先清理

java中await方法 java中aware_技术整理_08


2.多线程+并发+可预测停顿

java中await方法 java中aware_技术整理_09

14.排查OOM的方法:

java中await方法 java中aware_java_10


java中await方法 java中aware_java中await方法_11


java中await方法 java中aware_技术整理_12

14.jvm的相关命令工具:

java中await方法 java中aware_java中await方法_13


java中await方法 java中aware_并发编程_14


java中await方法 java中aware_数据库_15


java中await方法 java中aware_技术整理_16


java中await方法 java中aware_java中await方法_17


java中await方法 java中aware_java中await方法_18


java中await方法 java中aware_java_19


java中await方法 java中aware_数据库_20

15.java8默认垃圾收集器:

java中await方法 java中aware_并发编程_21

16.并行垃圾收集器:

java中await方法 java中aware_技术整理_22

17.swt:

java中await方法 java中aware_java中await方法_23


安全点:方法调用、循环跳转、异常跳转;设置标志位,并不断轮询,主动停止。

java中await方法 java中aware_数据库_24

java中await方法 java中aware_数据库_25

java中await方法 java中aware_技术整理_26

17.cpu使用率飙升,怎么排查?

先通过top命令找到cpu使用率高的线程;top -p 进程号;该界面输入H查找最高cpu的线程;执行jstack 进程号做dump输出线程信息; 同时根据线程的16进制找到对应的堆信息,然后再找出对应的代码

java中await方法 java中aware_java中await方法_27

java中await方法 java中aware_并发编程_28


java中await方法 java中aware_并发编程_29


6、最后根据线程信息定位到具体代码

18.垃圾回收器的三色标记:

java中await方法 java中aware_java_30


java中await方法 java中aware_java_31

java中await方法 java中aware_并发编程_32


java中await方法 java中aware_java_33

19.类加载、类加载器:

java中await方法 java中aware_java_34


java中await方法 java中aware_数据库_35

三、消息中间件

1.为什么用rocketmq:

java中await方法 java中aware_java_36


java中await方法 java中aware_技术整理_37

3.各种消息列队:

java中await方法 java中aware_java中await方法_38


java中await方法 java中aware_并发编程_39


java中await方法 java中aware_技术整理_40


java中await方法 java中aware_java中await方法_41


java中await方法 java中aware_并发编程_42


java中await方法 java中aware_技术整理_43


java中await方法 java中aware_java中await方法_44

4.mq的消息重复:

java中await方法 java中aware_并发编程_45


java中await方法 java中aware_数据库_46

5.mq的消息重复:

java中await方法 java中aware_java中await方法_47


java中await方法 java中aware_并发编程_48

java中await方法 java中aware_java中await方法_49

4.解决MQ重复消息:

java中await方法 java中aware_数据库_50


java中await方法 java中aware_java中await方法_51


java中await方法 java中aware_java中await方法_52


java中await方法 java中aware_java_53

6.roketmq性能优化:

java中await方法 java中aware_java_54


java中await方法 java中aware_并发编程_55


java中await方法 java中aware_数据库_56


java中await方法 java中aware_java中await方法_57


java中await方法 java中aware_java_58


java中await方法 java中aware_java中await方法_59

四、缓存

1.Redis概念:

Nosql,C编写,包含多种数据结构(字符串、列表、集合、散列表、有序集合),支持网络,基于内存还能持久化性能高效每秒可以处理超过10万次读写操作,遵守BSD协议,支持分布式易拓展、支持多种语言的k-v存储数据库。

2.Redis数据类型:

java中await方法 java中aware_技术整理_60


java中await方法 java中aware_并发编程_61


java中await方法 java中aware_java_62


java中await方法 java中aware_数据库_63


java中await方法 java中aware_技术整理_64


java中await方法 java中aware_java_65


java中await方法 java中aware_并发编程_66


java中await方法 java中aware_java中await方法_67


java中await方法 java中aware_并发编程_68


java中await方法 java中aware_java_69

2.Redis与Memcached区别:

java中await方法 java中aware_数据库_70

3.Redis的应用场景:

java中await方法 java中aware_java中await方法_71


java中await方法 java中aware_并发编程_72

4.Redis为什么速度:

java中await方法 java中aware_java_73

5.为什么用Redis而不用map/guava做缓存:

java中await方法 java中aware_并发编程_74

6.Redis的持久化机制:

java中await方法 java中aware_数据库_75


java中await方法 java中aware_并发编程_76

7.如何保持缓存与数据库双写时一致:

java中await方法 java中aware_数据库_77


java中await方法 java中aware_技术整理_78


java中await方法 java中aware_数据库_79

8.缓存穿透:

java中await方法 java中aware_java_80

五、并发编程

1.线程与进程的区别:

java中await方法 java中aware_java_81

2.多线程中的上下文切换:

java中await方法 java中aware_技术整理_82

3.java内存模型:

java中await方法 java中aware_技术整理_83

4.原子操作,JUC中原子操作类有哪些:

java中await方法 java中aware_java_84

5.CAS操作及缺点:

java中await方法 java中aware_并发编程_85

6.java中的volatile变量作用:

java中await方法 java中aware_并发编程_86

7.volatile和atomic变量区别:

java中await方法 java中aware_技术整理_87

8.lock接口与synchronized区别:

java中await方法 java中aware_技术整理_88

9.乐观锁和悲观锁的理解及实现:

java中await方法 java中aware_java_89

10.死锁:

java中await方法 java中aware_技术整理_90

11.callable及future:

java中await方法 java中aware_数据库_91

13.futureTask的底层原理:

java中await方法 java中aware_数据库_92

14.阻塞队列及实现原理:

java中await方法 java中aware_技术整理_93

15.不可变对象对并发应用的帮助

java中await方法 java中aware_并发编程_94

16.生产消费者模型作用:

java中await方法 java中aware_并发编程_95

17.copyOnWriteArrayList应用场景:

java中await方法 java中aware_技术整理_96

18.java单例:

java中await方法 java中aware_java中await方法_97

19.双重检查锁定DCL的单例:

java中await方法 java中aware_java_98

20.AQS:

java中await方法 java中aware_并发编程_99

wait、notify、notifyAll为什么不在thread类中:

java中await方法 java中aware_数据库_100

六、分布式

1.分布式幂等性接口设计:

java中await方法 java中aware_并发编程_101

2.分布式session方案:

java中await方法 java中aware_java中await方法_102

java中await方法 java中aware_java中await方法_103

3.分布式事务:

java中await方法 java中aware_数据库_104

4.ZAB协议:

java中await方法 java中aware_java_105

5.Zookeeper和Redis区别:

java中await方法 java中aware_数据库_106

6.Zookeepr节点宕机处理:

java中await方法 java中aware_技术整理_107

7.Zookeeper四种类型数据节点:

java中await方法 java中aware_java_108

8.Dubbo和cloud区别:

java中await方法 java中aware_数据库_109

9.Dubbo协议:

java中await方法 java中aware_java_110

七、数据库

1.mysql存储引擎:

java中await方法 java中aware_并发编程_111

2.innodb与myisam区别:

java中await方法 java中aware_java中await方法_112

3.表设计字段选择:

java中await方法 java中aware_数据库_113

4.mysql的varchar(M)最多存储数据:

java中await方法 java中aware_java中await方法_114

5.事务基本特性:

java中await方法 java中aware_java_115

6.事务并发引发问题:

java中await方法 java中aware_java中await方法_116

7.mysql索引:

java中await方法 java中aware_技术整理_117

8.三星索引:

java中await方法 java中aware_技术整理_118

9.innodb一颗b+树存放可以存放多少行数据:

java中await方法 java中aware_技术整理_119

10.如何提高insert性能:

java中await方法 java中aware_java_120

11.全局锁、共享锁、排他锁:

java中await方法 java中aware_java中await方法_121

12.mysql死锁:

java中await方法 java中aware_java_122


随心所往,看见未来。Follow your heart,see night!

欢迎点赞、关注、留言,一起学习、交流!