Java 体系目录

Java

  基本数据类型 : https://www.cnblogs.com/LiaHon/p/11043238.html

  序列化 : https://www.cnblogs.com/Jomini/p/12460994.html

  String,Stringbuffer(安全), Stringbuilder  

           String 为什么不可变:https://www.cnblogs.com/Jomini/p/13709607.html

      utf-8 和 GBK 区别   

  ==, equal, hashcode 区别 

    1、== 和 equal 的对比 https://www.cnblogs.com/Jomini/p/13917710.html

    2、equal 和 hashCode 的对比 https://www.cnblogs.com/Jomini/p/13933526.html

  抽象类,接口区别 : https://www.cnblogs.com/Jomini/p/15485005.html

    多态概念 : https://www.jianshu.com/p/caff17dd999c

    1、向上转型,向下转型、安全性 : https://www.cnblogs.com/Jomini/p/13872904.html

    2、重载 与 重写 的区别 :https://www.cnblogs.com/Jomini/p/13858330.html

  java 异常类型 : https://www.cnblogs.com/Jomini/p/13709043.html

  java 泛型 : https://www.cnblogs.com/Jomini/p/13927817.html

  类型参数<T> 和 通配符<?> 区别 :https://www.cnblogs.com/Jomini/p/14159365.html

  类实现排序方式 :https://www.cnblogs.com/Jomini/p/13927639.html

       final 和 static 的区别:https://www.cnblogs.com/Jomini/p/14158560.html

  java 8 特性

    Stream : https://www.cnblogs.com/codecat/p/10912454.html

           https://blog.csdn.net/lindai329/article/details/102700907

  无参构造函数:https://www.cnblogs.com/Jomini/p/15478148.html

  私有无参构造函数 : 可能用于单例模式

  try-resource 使用条件:https://blog.csdn.net/zeng6325998/article/details/109269941

  Obejct 默认方法 https://www.cnblogs.com/Jomini/p/15567311.html

  HashTable 和 ConcurrentHashMap 区别:https://blog.csdn.net/weixin_39651041/article/details/79953811

  Java 引用类型 : https://www.cnblogs.com/liyutian/p/9690974.html

  Java io :  https://www.cnblogs.com/Jomini/p/15580156.html

  

  

 

设计模式

  工厂模式 : https://www.cnblogs.com/caizhiqin/p/11269280.html

         https://zhuanlan.zhihu.com/p/37217085

  代理模式:https://blog.csdn.net/psl1234554321/article/details/106845705/

  

 

集合

  集合类型

  list, map, set 区别

    只有 treeMap 和 treeSet 有序,因为底层二叉树结构

    set 都不允许元素重复

       HashSet和LinkHashSet允许存在null数据

      TreeSet中插入null数据时会报NullPointerException

    map 的键都唯一,value 可重复

      hashMap 只允许一个 null key

      Hashtable不允许null值

      TreeMap 不允许 key 为 null (二叉树节点,key 不能为null) 

       

  集合的初始容量、加载因子、扩容增量:https://www.cnblogs.com/Jomini/p/13830142.html

  arryList

      扩容机制 : https://www.cnblogs.com/Jomini/p/13783395.html

  hashMap 和 hashTable 区别

    ( hashMap数组的默认长度为16 ,注意 hashtable的数组的默认长度是11 

  hashMap : https://blog.csdn.net/weixin_65950986/article/details/139183263

      HashMap 1.7, 1.8: https://blog.csdn.net/niu_8865/article/details/108565345

      扩容机制 : https://www.cnblogs.com/Jomini/p/13814273.html

      哈希碰撞:https://www.jianshu.com/p/379680144004

      HashMap源码面:https://www.cnblogs.com/Jomini/p/13827225.html

      为什么线程不安全:https://www.cnblogs.com/Jomini/p/13906691.html

  concurrentHashMap

                     别人最强总结:https://blog.csdn.net/qq_31709249/article/details/106952137

      扩容机制:https://www.cnblogs.com/Jomini/p/13814601.html

      源码问题:https://www.cnblogs.com/Jomini/p/13814750.html 

      源码问题整理后:https://www.cnblogs.com/Jomini/p/13814601.html

  set 添加元素 : https://www.cnblogs.com/Jomini/p/13960570.html

  treeSet,HashSet区别: https://www.cnblogs.com/williamjie/p/11164123.html

   题目 https://www.cnblogs.com/Jomini/p/15407062.html

 

数据结构和算法:

  算法稳定性概念:https://www.cnblogs.com/Jomini/p/13927569.html

  二叉树、平衡树、红黑树 :https://www.cnblogs.com/Jomini/p/13893067.html

  平衡二叉树、B树、B+树、B*树 : https://www.cnblogs.com/Jomini/p/13887106.html

 

Java并发

  线程 

    概念:https://www.cnblogs.com/xrq730/p/5060921.html

    线程状态https://www.jianshu.com/p/c11569de4dc8

    线程状态转换https://www.jianshu.com/p/c11569de4dc8

    线程之间的通信https://www.cnblogs.com/mengdd/archive/2013/02/20/2917956.html

    线程的中断机制https://www.jianshu.com/p/e0ff2e420ab6

    线程遇到的问题https://www.cnblogs.com/Jomini/p/15451571.html

            https://www.cnblogs.com/boanxin/p/11706795.html

    线程安全:线程安全

    等待池

  ThreadLocalhttps://www.cnblogs.com/Jomini/p/13857837.html 

  线程池

    线程池四种类型场景问题 :https://www.cnblogs.com/Jomini/p/15380602.html

    线程池状态 : https://www.cnblogs.com/Jomini/p/13669993.html

    线程池回收 : https://www.cnblogs.com/Jomini/p/13941221.html

    ThreadPoolExcuator 线程池使用 :https://www.cnblogs.com/Jomini/p/15459196.html

  

    锁的实现原理:https://zhuanlan.zhihu.com/p/75880892

    自旋锁,偏向锁,https://www.cnblogs.com/linghu-java/p/8944784.html

    synchronize 原理 :https://www.cnblogs.com/aspirant/p/11470858.html

    cas :https://mp.weixin.qq.com/s?__biz=MzU3OTkyMDAxNg==&mid=2247483817&idx=1&sn=1d782e56995356dec7eaeb8749260c61&chksm=fd5f8856ca280140e21ded04dd6304ae8832a160505e632800a8ce245e3a1b1fea27b3b3671a&token=268872677&lang=zh_CN&scene=21#wechat_redirect

      https://blog.csdn.net/qq_32998153/article/details/79529704

    wait / sleep区别 https://www.cnblogs.com/hexianl/p/10425756.html

  atomic

  voliate

  J.U.C

    Java 内存模型 (JMM) : https://www.cnblogs.com/Jomini/p/13620845.html

    Java内存模型(JMM) 和 JVM 内存模型区别 :https://www.cnblogs.com/Jomini/p/13625388.html

  场景

    限流

      1、多线程并发安全计数器实现限流 :https://www.cnblogs.com/Jomini/p/13621330.html

  题目https://www.cnblogs.com/Jomini/p/15406279.html

 

JVM

  类加载过程

    类加载流程 :https://www.cnblogs.com/Jomini/p/13625349.html(区别注:final 和 static 类型变量初始化时机)

    双亲委模型 :https://www.jianshu.com/p/9df9d318e838   

  运行时数据区https://www.cnblogs.com/Jomini/p/13176653.html

    线程共享区

        方法区

        堆内存

    线程私有区

        虚拟机栈

        本地方法栈

        程序计数器

  堆的区域分类 : https://www.cnblogs.com/Jomini/p/13798248.html

  堆的组成https://www.cnblogs.com/Jomini/p/13798248.html

    新生代

    老年代

    持久代

  垃圾回收器https://www.cnblogs.com/Jomini/p/13201640.html

    垃圾回收器算法 :

      老年代

        标记清除

        标记整理

      新生代

        复制算法

      分代算法      

    垃圾回收器种类

    垃圾回收器

    CMS 和 G1 :https://www.cnblogs.com/Jomini/p/13900548.html

   内存溢出 (OOM) :https://www.cnblogs.com/Jomini/p/13671993.html

 

Spring

      Bean生命周期 : https://blog.csdn.net/qq_43206800/article/details/109602001

  Beanfactory

    源码

  反射 :https://www.cnblogs.com/Jomini/p/13657565.html

    反射原理 : https://www.cnblogs.com/Jomini/p/13657565.html

    创建实例方式 : https://www.cnblogs.com/Jomini/p/13716328.html

    Class.forName 和 .loadClass 方法的区别 : https://www.cnblogs.com/Jomini/p/13749568.html

 

  IOChttps://www.cnblogs.com/Jomini/p/13830920.html

    源码

    @Autowried 注册原理   https://blog.csdn.net/windrui/article/details/105963635

 

  AOP https://www.cnblogs.com/Jomini/p/13541191.html

    jdk动态代理 : https://www.cnblogs.com/Jomini/p/13658714.html

    Cglib : https://www.cnblogs.com/Jomini/p/13658921.html

    jdk 动态代理 和 Cglib 区别:https://www.cnblogs.com/Jomini/p/15458145.html

    aop : 

  注解的实现原理

  拦截器 和 过滤器 : https://www.cnblogs.com/panxuejun/p/7715917.html

  Spring 工作流程 : https://www.cnblogs.com/Jomini/p/8534371.html

  Spring 常用注入方式 :Setter属性注入,构造方法,注解方式

  Spring 设计模式:

     工厂模式:https://blog.csdn.net/qq_31314141/article/details/104865930

          https://www.cnblogs.com/snailclimb/p/spring-design-patterns.html

     代理模式:https://blog.csdn.net/qq_31314141/article/details/104865930

  Spring

  Spring

     单例模式:

     主要模块 :https://www.cnblogs.com/Jomini/p/13808748.html

             加载原理 :https://www.cnblogs.com/Jomini/p/13785630.html

        请求过程 : https://www.cnblogs.com/Jomini/p/8534371.html

     事务传播机制 :https://www.cnblogs.com/Jomini/p/13785289.html

             事务隔离级别:https://www.cnblogs.com/Jomini/p/14016229.html

        二阶段提交,三阶段提交:https://www.cnblogs.com/Jomini/p/13645531.html

               拦截器 过滤器关系和区别及执行顺序 : https://www.cnblogs.com/Jomini/p/13839743.html  

            注解实现原理  

           @Autowired注解的实现原理:https://blog.csdn.net/windrui/article/details/105963635

           Spring的BeanFactoryPostProcessor和BeanPostProcessor : https://blog.csdn.net/caihaijiang/article/details/35552859 

           beanfactory 和  ApplicationContext : https://blog.csdn.net/qq_31314141/article/details/104865930

              实现 Spring 容器 : https://blog.csdn.net/u011702633/article/details/81094795

                多数据源实现:

     循环依赖解决思路:https://www.cnblogs.com/Jomini/p/15560053.html   

           解决循环依赖 :https://blog.csdn.net/lkforce/article/details/97183065

             https://www.cnblogs.com/Jomini/p/15400050.html

  RestTemplatehttps://blog.csdn.net/jinjiniao1/article/details/100849237

  Springboot 多数据源配置 : https://www.cnblogs.com/cxy2016/p/9973502.html

              https://www.cnblogs.com/java-zhao/p/5413845.html

  题目https://www.cnblogs.com/Jomini/p/15400050.html

       https://zhuanlan.zhihu.com/p/368769721  

 

附:

  进程之间通信

    RPC

  IO模型

Spring secruity

  jwt : https://www.cnblogs.com/Jomini/p/13523124.html

  Oath2.0 

  Spring security 各个组件

 

Mybatis 

  源码 : https://my.oschina.net/u/3995125/blog/3092644

    

SpringCloud

      RestTemplate

  Erueka

  nacos:

    搭建:https://blog.csdn.net/G971005287W/article/details/114151856

    搭建HA高可用 :https://blog.csdn.net/qq_37767455/article/details/120615048

            https://blog.csdn.net/G971005287W/article/details/114162914?spm=1001.2014.3001.5501

  Zuul

  Feign

    实现原理:https://www.cnblogs.com/crazymakercircle/p/11965726.html

      在微服务启动时,Feign会进行包扫描,对加@FeignClient注解的接口,按照注解的规则,创建远程接口的本地JDK Proxy代理实例。

      然后,将这些本地Proxy代理实例,注入到Spring IOC容器中。当远程接口的方法被调用,由Proxy代理实例去完成真正的远程访问,并且返回结果。

  springCloud + Feign + Nacos : https://www.cnblogs.com/ncwuwsh/p/12732516.html

 

Redis   https://www.cnblogs.com/Jomini/p/13679242.html

  数据类型https://blog.csdn.net/gududedabai/article/details/81062234

    set 和 zset 区别:https://blog.csdn.net/az44yao/article/details/117637829

    1、Redis 字典:https://www.cnblogs.com/Jomini/p/13920651.html

    2、Redis 散列表扩容 :https://www.cnblogs.com/Jomini/p/13921928.html

    Zet 的底层数据结构 :https://zhuanlan.zhihu.com/p/193141635 

              https://segmentfault.com/a/1190000037473381

  持久化方式  

  集群原理

  缓存穿透 : https://blog.csdn.net/kongtiao5/article/details/82771694

  redis 分布式锁 : https://www.cnblogs.com/Jomini/p/15418191.html

  RedLock http://redis.cn/topics/distlock.html

  redis分布式锁问题 : https://www.jb51.net/article/165867.htm

  题目 : https://www.cnblogs.com/Jomini/p/15418053.html

  别人总结:https://blog.csdn.net/qq_44472134/article/details/104252693

      redis 为什么那么快

      持久化方式比较

 

Zookeeper   https://www.cnblogs.com/Jomini/p/13644901.html

  消息传播实现:https://www.cnblogs.com/Jomini/p/13808326.html

  paxos 算法

  选举原理

  分布式配置中心

       分布式锁

 

Mq 

  消费幂等 https://blog.csdn.net/wangxindong11/article/details/103405343

 

RabbitMq    https://www.cnblogs.com/Jomini/p/13702370.html

   场景

  

  Rabbitmq和Kafka在项目中的不同使用

    Rabbitmq主要作为消息解耦与实时通信使用,因为本身延时比较低,并且有消费确认机制保证消息可靠性

    Kafka基于批量发送与消费的特性,适合大数据高吞吐量消费应用场景,不用考虑数据的强完整性,比较适合日常普通日志信息传输使用

  Rabbitmq在Websocket实时通信模块中的作用

    Rabbitmq主要作为消息的代理中继器来替代SpringWbsocket的消息代理功能.

    消息发送过来时,Spring将消息通过与代理的连接传输到代理上,通过代理发送到连接到代理并订阅该路由的客户端

    如何保证消息数据不丢失:https://blog.csdn.net/sxlishaobin/article/details/138305342

 

RocketMq  

  事务机制:https://www.cnblogs.com/qdhxhz/p/11191399.html

  应用     : https://my.oschina.net/u/1581079/blog/4254615 

      有注释:https://zhuanlan.zhihu.com/p/249233648

  

 

MySQLhttps://www.cnblogs.com/Jomini/p/13215640.html

  MYISAM 和 INNODB 区别 :https://www.cnblogs.com/Jomini/p/13886802.html

  B, B+ 树区别 :https://www.cnblogs.com/Jomini/p/13887106.html

    为什么使用 B+ 不用 二叉树 https://blog.csdn.net/weixin_35647541/article/details/116113791

    为什么 Mysql 用 B + 树做索引而不用 B 树或红黑树 : https://www.cnblogs.com/Jomini/p/13894898.html

  Mysql 的事务隔离级别 :https://www.cnblogs.com/Jomini/p/14016414.html

  聚集索引 和 非聚集索引:https://www.cnblogs.com/Jomini/p/13213846.html 

  mysql 查询优化 : https://www.cnblogs.com/Jomini/p/15410840.html

  题目 : https://www.cnblogs.com/Jomini/p/15410889.html

 

分布式事务

  分布式事务理论:https://www.cnblogs.com/jian0110/p/14744291.html

  强一致性 Seata 的 AT   https://blog.csdn.net/qq_45076180/article/details/116795591 

               https://www.cnblogs.com/jian0110/p/14744291.html

  最终一致性RocketMq

 

Linux

  定位cpu 跑满 : https://www.cnblogs.com/Jomini/p/13673070.html

  JVM GC 导致 cpu 跑满:https://blog.csdn.net/hotthought/article/details/82987428

 

网络

  HTTP 请求报文(请求行、请求头、请求体),响应报文 : https://www.cnblogs.com/Jomini/p/13964058.html

  OSI 七层模型 : https://www.cnblogs.com/Jomini/p/13964180.html

  三次握手、四次挥手 : https://www.cnblogs.com/Jomini/p/15551014.html

  HTTP 响应码 : https://www.runoob.com/http/http-status-codes.html

  Websocket : https://www.cnblogs.com/chyingp/p/websocket-deep-in.html 

  HTTP RPC 的区别 :https://www.cnblogs.com/helloworldmybokeyuan/p/11626833.html

       RPC主要用于公司内部的服务调用,性能消耗低,传输效率高,服务治理方便;

       HTTP主要用于对外的异构环境,浏览器接口调用,APP接口调用,第三方接口调用等。

  

系统

  进程

    进程切换系统做什么 : https://www.cnblogs.com/Jomini/p/15552238.html

      1、切换页表全局目录

      2、切换内核态堆栈

      3、切换硬件上下文(进程恢复前,必须装入寄存器的数据统称为硬件上下文)

 

    进程之间的通信 : https://blog.csdn.net/Longtermevolution/article/details/107243574

 

场景

  1、如何防止重复提交表单

    https://blog.csdn.net/lanshen110119/article/details/90670069?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link

  2、实现mysql 和 redis 数据一致性 :https://zhuanlan.zhihu.com/p/91770135

  3、redis 分布式锁 过期时间设置:看具体的插入时间,200ms, 300ms, 500ms

       4、 redis 为什么要设置锁的时间 : https://weishihuai.blog.csdn.net/article/details/116326813

    redis 分布式锁设置 :https://blog.csdn.net/weixin_35826493/article/details/113580365?spm=1001.2101.3001.6650.5&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Edefault-5.no_search_link

    https://blog.csdn.net/weixin_39716043/article/details/113580366?utm_term=redis%E5%88%86%E5%B8%83%E5%BC%8F%E9%94%81%E8%AE%BE%E7%BD%AE%E8%BF%87%E6%9C%9F%E6%97%B6%E9%97%B4&utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~sobaiduweb~default-4-113580366&spm=3001.4430

  3、如何划分微服务:https://www.jianshu.com/p/069a6fd3bab2

  4、秒杀系统:https://www.cnblogs.com/Jomini/p/15433224.html

  8、docker 和 虚拟机区别 :

    将各种应用程序和他们所依赖的运行环境打包成标准的容器,容器之间隔离

    虚拟机更擅长于彻底隔离整个运行环境。例如,云服务提供商通常采用虚拟机技术隔离不同的用户。而Docker通常用于隔离不同的应用,例如前端后端以及数据库

    https://www.zhihu.com/question/48174633

  9、单例模式的线程安全问题

  10、生成全局唯一id(基于Redis 实现分布式全局id) https://www.cnblogs.com/dsxie/p/13324489.html

      https://blog.csdn.net/u011488009/article/details/107483319

      https://www.cnblogs.com/agilestyle/p/13194027.html

       11、微服务鉴权:https://www.cnblogs.com/Jomini/p/13546044.html

  12、分布式事务:https://blog.csdn.net/qq_36737803/article/details/112360609

  13、熔断和降级的区别 : https://www.cnblogs.com/qdhxhz/p/9581440.html

  14、基于RocketMQ的分布式事务解决方案 https://www.cnblogs.com/qdhxhz/p/11191399.html

  15、skywalking : 全链路追踪 

        https://www.pianshen.com/article/87011016639/

        https://blog.csdn.net/weixin_39866487/article/details/111581322

  16、Docker如何实现的容器间隔离

 

      进程隔离和资源隔离

      进程隔离使用到了Linux内核Namespace技术,重新编写进程编号以及屏蔽父进层信息

      资源隔离使用overlay其实还是使用的挂载技术,将在宿主机上创建的资源挂载到容器内

 

https://blog.csdn.net/weixin_39651041/article/details/79953811


 

 

 
 
posted @ 2020-09-16 13:56  抽象Java  阅读(346)  评论(0编辑  收藏  举报