面试总结
文章平均质量分 95
5detutu
这个作者很懒,什么都没留下…
展开
-
LinkedList
1. 简介LinkedList是一个实现了List接口和Deque接口的双端链表。 LinkedList底层的链表结构使它支持高效的插入和删除操作,另外它实现了Deque接口,使得LinkedList类也具有队列的特性; LinkedList不是线程安全的,如果想使LinkedList变成线程安全的,可以调用静态类Collections类中的synchronizedList方法:List list=Collections.synchronizedList(new LinkedList(...));原创 2021-02-25 23:08:30 · 181 阅读 · 0 评论 -
ArrayList源码分析
目录1. 简介1.1 ArrayList 和 Vector 的区别1.2 ArrayList 和 LinkedList区别2. ArrayList 源码解读2.1 初始化2.2 新增和扩容2.3 扩容的本质2.4 删除2.5 迭代器1. 简介ArrayList的底层是数组队列,相当于动态数组。与 Java 中的数组相比,它的容量能动态增长。在添加大量元素前,应用程序可以使用ensureCapacity操作来增加ArrayList实例的容量。这可以减少递增式再...原创 2021-02-25 00:04:37 · 177 阅读 · 2 评论 -
认证和授权
1. 概念Authentication(认证)是验证您的身份的凭据(例如用户名/用户ID和密码),通过这个凭据,系统得以知道你就是你,也就是说系统存在你这个用户。所以,Authentication 被称为身份/用户验证。 Authorization(授权)发生在Authentication(认证)之后。授权嘛,光看意思大家应该就明白,它主要掌管我们访问系统的权限。比如有些特定资源只能具有特定权限的人才能访问比如admin,有些对系统资源操作比如删除、添加、更新只能特定人才具有。2. cook...原创 2021-02-24 22:36:11 · 244 阅读 · 0 评论 -
ZooKeeper
目录1. Zookeeper 介绍1.1 简介1.2 特点1.3 典型的应用场景1.4 哪些开源项目应用了zookeeper2. Zookeeper 重要概念2.1 Data model(数据模型)2.2 znode(数据节点)2.2.1 znode 4种类型2.2.2 znode 数据结构2.3 版本(version)2.4 ACL权限控制2.5 Watcher(事件监听器)2.6 会话(Session)3. ZooKeeper 集群3.1.原创 2021-02-22 23:28:21 · 203 阅读 · 0 评论 -
计算机网络
目录1. 网络体系1.1 应用层1.1.1 域名系统1.1.2 HTTP协议1.2 运输层1.3 网络层1.4 数据链路层1.5 物理层2. TCP2.1 三次握手图解2.2 为什么要三次握手2.3 第二次握手中回传了ACK,为什么还要回传SYN2.4 为什么要四次挥手3. TCP和UDP的区别4. TCP 如何保证可靠传输4.1 ARQ协议4.1.1 停止等待ARQ协议4.1.2 连续ARQ协议4.2 滑动窗口和流量控制4.3原创 2021-02-21 15:25:27 · 239 阅读 · 0 评论 -
redis
目录1. 简介2. 缓存数据的处理的流程3. 为什么要用redis缓存4. redis常见的数据结构4.1 String4.2 list4.3 hash4.4 set4.5 sorted set5. redis 单线程模型6. redis为什么使用单线程7. redis6.0 为何引进多线程8. 多线程的实现机制9. redis 设置过期时间9.1 作用9.2 原理9.3 过期删除策略9.4 内存淘汰机制10. 持久化机制11.原创 2021-02-20 17:09:36 · 110 阅读 · 0 评论 -
RocketMQ
目录1. 消息队列1.1 优点1.1.1 异步1.1.2 解耦1.1.3 削峰1.2 缺点1.2.1 降低了系统的可用性1.2.2 增加系统的复杂度1.2.3 重复消费问题1.2.4 消息的顺序消费问题1.2.5 分布式事务1.2.6 消息堆积问题2. RocketMQ2.1 队列模型和主题模型2.1.1 队列模型2.1.2 主题模型2.1.3 RocketMQ中的消息模型2.2 架构图2.2.1 Broker2.2.2 Nam原创 2021-02-19 12:51:53 · 717 阅读 · 2 评论 -
MySQL
目录1. MySQL的基本架构1.1 概览2. 存储引擎2.1 MyISAM 对比 InnoDB3. 索引3.1 索引的设计规范3.1.1 限制每张表上的索引数量,建议单张表索引不超过 5 个3.1.2 禁止给表中的每一列都建立单独的索引3.1.3 每个 Innodb 表必须有个主键3.1.4 索引列的顺序3.1.5 避免建立冗余索引和重复索引(增加了查询优化器生成执行计划的时间)3.1.6 对于频繁的查询优先考虑使用覆盖索引3.1.7 索引 SE..原创 2021-02-16 18:05:56 · 501 阅读 · 2 评论 -
JVM
目录1. 概述2. 运行时的数据区域2.1 程序计数器2.2 Java虚拟机栈2.3 本地方法栈2.4 堆2.5 方法区2.5.1 方法区和永久代的关系2.5.2 常用参数2.5.3 永久代 (PermGen) 替换为元空间 (MetaSpace)2.6 运行时常量池2.7 直接内存3. HotSpot 虚拟机对象探秘3.1 对象的创建3.1.1 类加载检查3.1.2 分配内存3.1.3 初始化零值3.1.4 设置对象头3.1.5原创 2021-02-14 21:13:05 · 442 阅读 · 0 评论 -
JAVA8
目录1. 接口的默认方法(Default Methods for Interfaces)2. Lambda表达式(Lambda expressions)3. Lamda 表达式作用域(Lambda Scopes)3.1 访问局部变量3.2 访问字段和静态变量4. 函数式接口(Functional Interfaces)4.1 概念4.2 示例5. 方法和构造函数引用(Method and Constructor References)5.1 引用静态方法5.2 引原创 2021-02-14 19:44:54 · 153 阅读 · 2 评论 -
并发基础
1. 线程、程序和进程1、进程进程是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着,同时,每个进程还占有某些系统资源如 CPU 时间,内存空间,文件,输入输出设备的使用权等等。换句话说,当程序在执行时,将会被操作系统载入内存中。 线程是进程划分成的更小的运行单位。线程和进程最大的不同在于基本上各进程是独立的,而各线程则不一定,因为同一进程中的线程极有原创 2021-02-13 11:22:28 · 143 阅读 · 0 评论 -
Java集合
目录1、集合概述1.1 集合概览2、List、Set和Map2.1 List数据结构Arraylist 和 Vector 的区别Arraylist 与 LinkedList 区别2.2 Set数据结构2.3 Map数据结构HashMap 和 Hashtable 的区别HashMap 和 HashSet 区别HashMap 和 TreeMap 区别HashSet 如何检查重复HashMap 的底层实现2.4 三者的区别Collect.原创 2021-02-13 06:08:45 · 330 阅读 · 1 评论 -
代理模式
目录代理模式静态代理动态代理JDK动态代理介绍使用步骤CGLIB动态代理介绍使用步骤JDK 动态代理和 CGLIB 动态代理对比静态代理和动态代理的对比代理模式代理模式是一种比较好的理解的设计模式。简单来说就是我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。代理模式的主要作用是扩展目标对象的功能,比如说在目标对象的某个方法执行前后你可以增加一些自定义..原创 2021-02-11 22:29:37 · 83 阅读 · 0 评论 -
java基础
1、 关于 JVM JDK 和 JRE1.1 JVMJava 虚拟机(JVM)是运行 Java 字节码的虚拟机。JVM 有针对不同系统的特定实现(Windows,Linux,macOS),目的是使用相同的字节码,它们都会给出相同的结果。什么是字节码?采用字节码的好处是什么?在 Java 中,JVM 可以理解的代码就叫做字节码(即扩展名为.class的文件),它不面向任何特定的处理器,只面向虚拟机。Java 语言通过字节码的方式,在一定程度上解决了传统解释型语言执行效率低的问题,同时又保..原创 2021-02-07 23:16:46 · 603 阅读 · 2 评论 -
2020-12-28
基础1、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?对于short s1 = 1; s1 = s1 + 1;由于s1+1运算时会自动提升表达式的类型,所以结果是int型,再赋值给short类型s1时,编译器将报告需要强制转换类型的错误。对于short s1 = 1; s1 += 1;由于 +=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。2、char型变量中能不能存贮一个中文汉字?为什原创 2020-12-28 19:04:17 · 128 阅读 · 0 评论