随笔分类 - 八股文
摘要:一. 基本概念 1、什么是 Netty? Netty 是由 JBOSS 提供的一个 Java 开源框架。Netty 提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络 IO 程序,是目前最流行的 NIO 框架,Netty 在互联网领域、大数据分布式计算领域、游戏行业、通信
阅读全文
摘要:Kafka 1. Kafka如何保证消息不丢失 2. Kafka如何保证消息的顺序性 3. Kafka高可用机制 集群模式 分区备份机制 4. Kafka数据清理机制 5. Kafka实现高性能的设计
阅读全文
摘要:消息中间件 RabbitMQ 1. RabbitMQ如何保证消息不丢失 2. RabbitMQ消息重复消费怎么解决 3. RabbitMQ死信交换机?(延迟队列) 4. RabbitMQ大量消息堆积如何解决? 5. RabbitMQ高可用机制了解过吗?
阅读全文
摘要:SpringCloud 项目中有没有做过限流?怎么做的? Nginx限流-控制速率 Nginx限流-控制连接数 网关限流 令牌桶与漏桶的区别 回答小结 分布式理论CAP&BASE CAP定理 BASE理论 小结 采用的哪种分布式事务解决方案?(Seata/MQ) seata seata-XA(CP)
阅读全文
摘要:SpringCloud 五大组件 服务注册与发现 Eureka/Nacos Eureka(youruika)工作流程 如果8083超过90秒(3次)没有发送心跳,就会被认为宕机,在注册中心状态就为宕机,不会再提供给别的服务8083的端口 Nacos工作流程 AP:高可用 CP:强一致 负载均衡 Ri
阅读全文
摘要:常见技术场景 单点登录如何实现 权限认证如何实现 上传数据的安全性如何控制 负责项目遇到了哪些棘手的问题 日志怎么采集 查看日志的命令 生产问题怎么排查 怎么快速定位系统的瓶颈 火焰图
阅读全文
摘要:策略模式 出行策略选择 可以在上面加上公里数进行改进,自动帮助用户选择,用户不需要知道所有的策略,只需要知道自己要去的地方离自己的出发地有多远即可 登录案例
阅读全文
摘要:工厂模式 案例1-汽车工厂 简单工厂模式 并不是一种设计模式,而是一种编程习惯 案例2-咖啡店 工厂方法模式 这时,新增产品无需修改原先的代码,直接新增工厂即可 抽象工厂模式 小结
阅读全文
摘要:JVM JVM实践 JVM调优参数设置 JVM调优参数有哪些 JVM调优的工具 Java内存泄露的排查思路 内存溢出是内存不够,内存泄露是某些对象无法回收导致 CPU飙高排查方案思路
阅读全文
摘要:JVM(3) 垃圾回收 对象什么时候可以被垃圾器回收? 引用计数法 可达性分析算法 JVM垃圾回收算法有哪些? 标记清除算法(用的少) 复制算法 (将内存分为了两块大小相等的区域) 标记整理算法 说一下JVM的分代回收 说一下JVM有哪些垃圾回收器 详细说一下G1垃圾回收器 年轻代总共占比5%-6%
阅读全文
摘要:JVM(2) 类加载器 什么是类加载器,类加载器有哪些? 什么是双亲委派模型? 类装载的执行过程(七个) 加载 连接 验证 准备 解析 初始化 例: 使用 卸载 用户代码执行完毕,jvm就开始销毁创建的class对象,就是卸载。
阅读全文
摘要:JVM(Java Virtual Machine) JVM组成 什么是程序计数器? 例子:执行helloworld流程,每次执行记录行号,当前线程执行到了第几行,方便下次继续执行。 Java堆 java1.7与1.8的区别 什么是虚拟机栈 虚拟机栈又叫java栈,java方法栈。先进后出,一个线程一
阅读全文
摘要:JAVA多线程 线程池 1. 线程池的核心参数 2. 线程池的执行原理 3. 线程池中常见的阻塞队列 java int 类整数的最大值是 2 的 31 次方 - 1 = 2147483648 - 1 = 2147483647 可以用 Integer.MAX_VALUE 表示它,即 int value
阅读全文
摘要:Java多线程 线程安全知识 1. synchronized关键字的底层原理 底层是一个monitor,在class文件中体现,加锁,解锁,为了防止代码出现bug,最后又解锁了一次,相当于一个try catch finally代码块。 Monitor实现 lock对象关联一个monitor 初级总结
阅读全文
摘要:Java多线程 线程基础知识 1. 进程与线程 程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。 进程就是用来加载指令、管理内存、管理IO的。 当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个
阅读全文
摘要:HashMap源码分析 HashMap常见属性 扩容默认为 数组容量 * 加载印子 即16 * 0.75 put方法 put添加数据流程图 每次添加数据之后都判断是否需要扩容 总结 hashMap扩容的流程 hashMap的寻址算法 总结 hashMap在1.7情况下多线程死循环的问题
阅读全文
摘要:Java集合--HashMap(二叉树,散列表) hashmap 相关面试题 二叉树 满二叉树(了解) 除最后一层无任何子节点外,每一层上的所有结点都有两个子结点二叉树。 国内定义:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为K,且结点总数
阅读全文
摘要:Java集合--arraylist 与 linkedlist 1. 集合框架体系 2. list相关面试题 2.1 数组 数组中的下标如何找到对应的值?对应一个寻址公式 **例如 ** **代入公式 array[1]=10+14=14 array[2]=10+24==18 int类型四个字节 **
阅读全文
摘要:mybatis 一. mybatis执行流程 理解了各个组件的关系 Sql的执行过程(参数映射、sql解析、执行和结果处理) 二. mybatis支持延迟加载 1. 立即加载 查询用户信息的同时也可以查询到相关订单信息 UserMapper: OrderMapper: UserTest.java 打
阅读全文
浙公网安备 33010602011771号