Java 面试
文章平均质量分 93
Java 面试
重启试试.
这个作者很懒,什么都没留下…
展开
-
面试总结十三:设计模式
文章目录1.1 代理模式1.2 模板方法模式1.3 适配器模式1.4 策略模式1.5 装饰器模式1.6 观察者模式 1.1 代理模式 代理模式是给某一个对象提供一个代理,并由代理对象控制对原对象的引用。 代理模式的主要角色如下: 抽象主题(Subject)类:通过接口或抽象类声明真实主题和代理对象实现的业务方法。 真实主题(Real Subject)类:实现了抽象主题中的具体业务,是代理对象所代表的真实对象,是最终要引用的对象。 代理(Proxy)类:提供了与真实主题相同的接口,其内部含有对真实主题的引原创 2021-04-15 16:49:43 · 122 阅读 · 0 评论 -
面试总结十二:消息中间件
文章目录一、消息中间件概述1.1 项目中怎样使用MQ1.2 消息中间件的优缺点1.3 消息中间件的区别1.4 ActiveMQ1.5 RabbitMQ1.6 RocketMQ1.7 Kafka二、消息中间件问题2.1 消息的重复消费2.2 消费消息如何保证幂等性2.2.1 唯一约束2.2.2 前置条件2.2.3 检查更新2.3 消息的顺序消费2.4 消息的可靠性传输2.4.1 Producer发送消息阶段2.4.2 Broker处理消息阶段2.4.3 Consumer消费消息阶段2.5 死信队列的理解2.原创 2021-04-15 13:53:45 · 223 阅读 · 0 评论 -
面试总结十一:MySQL
文章目录一、MySQL 基础1.1 数据库三范式1.2 MySQL 组成1.3 MySQL 查询操作1.4 MySQL 查询缓存1.5 MySQL MVCC1.6 MySQL 更新操作二、MySQL 索引2.1 MySQL 索引2.2 MySQL 索引类型2.3 MySQL 索引的优缺点2.3.1 优点2.3.2 缺点2.4 MySQL 索引的数据结构三、MySQL 引擎 一、MySQL 基础 1.1 数据库三范式 所有属性都不能在分解为更基本的数据单位,每一列属性都是不可再分的,确保每一列的原子性。原创 2021-04-14 18:50:14 · 219 阅读 · 0 评论 -
面试总结十:Netty 框架
文章目录一、IO1.1 IO 操作1.2 同步与异步1.3 阻塞和非阻塞二、Netty2.1 Netty 是什么2.2 Netty 的特点2.3 Netty 的优势2.4 Netty 高性能表现2.5 Netty 应用场景2.6 Netty 核心组件 一、IO 1.1 IO 操作 IO 操作主要分为两个步骤,即发起 IO 请求和实际 IO 操作。 1.2 同步与异步 同步:指的是用户进程触发 IO 操作后,等待或者轮询的查看 IO 操作是否就绪。 异步:指的是用户进程触发 IO 操作后,便开始做自己的事原创 2021-04-19 19:06:36 · 186 阅读 · 0 评论 -
面试总结九:Redis
文章目录一、NoSQL1.1 NoSQL数据库类型1.2 键值对存储(key-value)1.3 基于列的数据库(column-oriented)1.4 文档存储(document store)1.5 图形数据库(graph database)二、Redis 概述2.1 Redis 简介2.2 Redis 优点2.3 Redis 与 Memcached 的区别三、Redis 线程模型3.1 Redis 是单线程3.2 Redis 为什么使用单线程3.3 Redis 单线程为什么那么快3.4 Redis 多路原创 2021-01-18 16:02:37 · 195 阅读 · 0 评论 -
面试总结八:Spring Cloud
文章目录一、Spring Cloud1.1 什么是 Spring Cloud1.2 Spring Cloud 优缺点1.2.1 优点1.2.2 缺点1.3 雪崩效应1.4 服务熔断1.5 服务降级二、Spring Cloud 组件2.2 Spring Cloud 五大组件2.3 服务发现与注册2.4 客户端负载均衡2.4.1 Ribbon2.4.2 Ribbon 负载均衡机制2.4.3 Feign2.4.4 Feign 基本流程2.5 服务网关2.6 服务熔断和降级Hystrix 熔断和降级熔断机制 一、原创 2021-04-14 18:10:25 · 160 阅读 · 0 评论 -
面试总结七:Spring
文章目录一、Spring 基础概念1.1 Spring 理解1.2 Spring 优点1.3 Spring 核心1.4 Spring 框架用到的设计模式二、Spring 自动装配2.1 控制反转2.2 依赖注入2.3 IoC 和 DI 的关系2.4 Bean 的作用域2.5 Bean 的生命周期2.6 Bean 的线程安全问题2.7 Spring 循环依赖2.7.1 举例说明2.7.2 添加到三级缓存2.7.3 添加到二级缓存2.7.4 添加到一级缓存2.8 三级缓存三、Spring AOP3.1 AOP原创 2021-04-13 09:07:51 · 191 阅读 · 0 评论 -
面试总结六:JVM 与 GC
文章目录一、JVM 基础1.1 Java 跨平台性1.2 JRE、JDK、JVM 及 JIT1.3 JVM 构成图1.4 堆 heap1.5 虚拟机栈 VM Stack1.6 本地方法栈 Native Method Stact1.7 程序计数器 Program Counter Register1.8 方法区 Method Area1.8.1 运行时常量池1.9 直接内存二、堆的基本组成2.1 新生代 Young Generation2.2 老年代2.3 永久代 Perm Generation2.4 永久代和原创 2021-04-13 10:20:36 · 311 阅读 · 0 评论 -
面试总结五:多线程与高并发
文章目录一、线程概述1.1 线程与进程1.2 线程创建1.3 线程状态1.4 线程启动1.5 线程停止1.6 线程控制1.7 wait 和 sleep 的区别二、多线程2.1 多线程的优缺点2.2 多线程的资源消耗2.3 多线程的调度算法2.4 多线程的调度策略2.5 多线程的上下文切换三、线程池3.1 线程池3.2 线程池好处3.3 线程池组成3.4 线程池工作原理3.5 线程池选择策略3.6 线程池 Executors3.7 线程池 ThreadPoolExecutor3.8 线程池的任务队列3.9 线原创 2021-03-29 18:26:52 · 311 阅读 · 0 评论 -
面试总结四:Java 锁事(二)
文章目录一、Synchronized1.1 线程安全的解决方案维度1.2 对象 JVM 存储1.2.1 对象头1.3 synchronized1.4 synchronized 底层原理1.4.1 同步方法1.4.2 同步代码块1.5 synchronized 重量级原因1.6 synchronized 锁优化二、AQS2.1 AQS 概述2.2 AQS 加锁分析2.2.1 lock2.2.2 acquire2.2.3 acquireQueued2.3 AQS 解锁分析2.3.1 unlock三、Reentr原创 2021-04-13 09:15:04 · 147 阅读 · 0 评论 -
面试总结三:Java 锁事(一)
文章目录一、Java 中的锁1.1 Java 主流锁1.2 悲观锁1.3 Java 主流锁1.4 Java 主流锁1.5 Java 主流锁1.6 Java 主流锁1.7 Java 主流锁二、xxx 一、Java 中的锁 1.1 Java 主流锁 1.2 悲观锁 对于同一个数据的并发操作,悲观锁认为自己在使用数据的时候一定会被修改,因此在获取数据的时候会先加锁,确保数据不会被别的线程修改。Java中synchronized关键字和Lock的实现类都是悲观锁,悲观锁适合写多读少的场景,先加锁可以保证写操作时原创 2021-03-17 18:38:28 · 136 阅读 · 0 评论 -
面试总结二:Java 数据结构
文章目录一、数组结构1.1 数组定义1.2 数组操作1.3 Arrays 的方法1.4 数组和集合的区别二、Collection 框架2.1 List2.1.1 ArrayList2.1.2 LinkedList2.1.3 Vector2.1.4 Stack2.2 Set2.3 Queue2.4 List 和数组的区别2.5 List 和 Set 的区别2.6 Vector、ArrayList、LinkedList 的区别 一、数组结构 1.1 数组定义 数组在内存中占用连续的存储空间 1.2 数组操作原创 2021-01-15 19:05:23 · 225 阅读 · 0 评论 -
面试总结一:Java 基础
文章目录一、基础知识1.1 基本数据类型1.2 基本数据类型存储1.3 基本数据类型包装类1.4 访问修饰符1.5 变量初始化1.5.1 成员变量1.5.2 局部变量1.6 值传递与引用传递二、关键字2.1 static2.2 final2.3 serialization2.4 transient2.5 volatile三、Object 对象3.1 Object 类的常用方法3.2 重写 equals() 方法的规则3.3 hashCode() 与 equals()3.4 main() 方法为什么必须是静态原创 2021-01-15 16:24:12 · 181 阅读 · 0 评论