下面主要是Java学习的目录,我会不断完善,总结所学的知识
- 一 面试前的准备
- 二 Java
- 2.1 Java基础
- 2.1.1 重载和重写的区别
- 2.1.2 String 和 StringBuffer、StringBuilder 的区别是什么?String 为什么是不可变的?
- 2.1.3 自动装箱与拆箱
- 2.1.4 == 与 equals
- 2.1.5 关于 final 关键字的一些总结
- 2.1.6 Object类的常见方法总结
- 2.1.7 Java 中的异常处理
- 2.1.8 获取用键盘输入常用的的两种方法方法1:通过 Scanner
- 2.1.9 接口和抽象类的区别是什么
- 2.2 Java集合框架
- 2.2.1 Arraylist 与 LinkedList 异同
- 2.2.2 ArrayList 与 Vector 区别
- 2.2.3 HashMap的底层实现
- JDK1.8之前
- JDK1.8之后
- 2.2.4 HashMap 和 Hashtable 的区别
- 2.2.5 HashMap 的长度为什么是2的幂次方
- 2.2.6 HashMap 多线程操作导致死循环问题
- 2.2.7 HashSet 和 HashMap 区别
- 2.2.8 ConcurrentHashMap 和 Hashtable 的区别
- 2.2.9 ConcurrentHashMap线程安全的具体实现方式/底层具体实现
- JDK1.7(上面有示意图)
- JDK1.8 (上面有示意图)
- 2.2.10 集合框架底层数据结构总结
- 2.3 Java多线程
- 一 面试中关于 synchronized 关键字的 5 连击
- 1.1 说一说自己对于 synchronized 关键字的了解
- 1.2 说说自己是怎么使用 synchronized 关键字,在项目中用到了吗
- 1.4 说说 JDK1.6 之后的synchronized 关键字底层做了哪些优化,可以详细介绍一下这些优化吗
- 二 面试中关于线程池的 4 连击
- 2.2 说说 synchronized 关键字和 volatile 关键字的区别
- 三 面试中关于 线程池的 2 连击 3.1 为什么要用线程池?
- 3.2 实现Runnable接口和Callable接口的区别
- 3.3 执行execute()方法和submit()方法的区别是什么呢?
- 3.4 如何创建线程池
- 四 面试中关于 Atomic 原子类的 4 连击 4.1 介绍一下Atomic 原子类
- 4.3 讲讲 AtomicInteger 的使用
- 4.4 能不能给我简单介绍一下 AtomicInteger 类的原理
- 五 AQS
- 5.1 AQS 介绍
- 5.2 AQS 原理分析
- 一 面试中关于 synchronized 关键字的 5 连击
- 2.4 Java虚拟机
- 2.5 设计模式
- 2.1 Java基础
- 三 计算机网络常见面试点总结
- 3.1 TCP、UDP 协议的区别
- 3.2 在浏览器中输入url地址 ->> 显示主页的过程
- 3.3 各种协议与HTTP协议之间的关系
- 3.4 HTTP长连接、短连接
- 3.5 TCP 三次握手和四次挥手(面试常客)
- 四 Linux
- 4.1 简单介绍一下 Linux 文件系统?
- 4.2 一些常见的 Linux 命令了解吗?
- 五 MySQL
- 5.1 InnoDB的理解
- 5.2 数据库索引了解吗?
- 5.2.2 最左前缀原则
- 5.2.3 Mysql如何为表字段添加索引???
- 5.3 当MySQL单表记录数过大时,数据库的CRUD性能会明显下降,一些常见的优化措施如下:
- 5.4 事务隔离级别(图文详解)
- 事物的特性(ACID)
- 六 Redis
- 6.1 Redis原理
- 6.2 为什么要用 redis /为什么要用缓存
- 6.4 redis 和 memcached 的区别
- 6.5 redis 常见数据结构以及使用场景分析
- 6.6 redis 设置过期时间
- 6.7 redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?)
- 6.8 redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复)
- 6.9 redis 事务
- 6.10 缓存雪崩和缓存穿透问题解决方案
- 6.11 如何解决 Redis 的并发竞争 Key 问题
- 6.12 如何保证缓存与数据库双写时的数据一致性?
- 七 Spring
- 7.1 Spring Bean 的作用域
- 7.2 Spring 事务中的隔离级别
- 7.3 Spring 事务中的事务传播行为
- 7.4 AOP
- 7.5 IOC
- 八 消息队列
- 8.1 什么是消息队列
- 8.2 为什么要用消息队列
- (1) 通过异步处理提高系统性能(削峰、减少响应所需时间)
- (2) 降低系统耦合性
- 8.3 使用消息队列带来的一些问题
- 8.4 JMS VS AMQP
- 8.4.1 JMS
- 8.4.2 AMQP
- 8.4.3 JMS vs AMQP
- 8.5 常见的消息队列对比
- 九 Dubbo
- 一 重要的概念
- 二 Dubbo 的架构
- 2.1 Dubbo 的架构图解
- 2.2 Dubbo 工作原理
- 三 Dubbo 的负载均衡策略
- 3.1 先来解释一下什么是负载均衡
- 3.2 再来看看 Dubbo 提供的负载均衡策略
- 3.2.1 Random LoadBalance(默认,基于权重的随机负载均衡机制)
- 3.2.2 RoundRobin LoadBalance(不推荐,基于权重的轮询负载均衡机制)
- 3.2.3 LeastActive LoadBalance
- 3.2.4 ConsistentHash LoadBalance
- 3.3 配置方式
- 四 zookeeper宕机与dubbo直连的情况
- 十 数据结构
- Queue
- 什么是队列
- 队列的种类
- Java 集合框架中的队列 Queue
- Set
- 什么是 Set
- HashSet 和 TreeSet 底层数据结构
- List
- 什么是List
- ArrayList 和 LinkedList 源码学习
- Map
- 树
- 二叉树
- 完全二叉树
- 平衡二叉树(Self-balancing binary search tree)
- B-,B+,B*树
- LSM 树
- BFS及DFS
- Queue
- 十一 算法
- 十二 实际场景题
- 十三 BATJ真实面试题
- 说一下转发(Forward)和重定向(Redirect)的区别
- 在浏览器中输入url地址到显示主页的过程,整个过程会使用哪些协议
- TCP 三次握手和四次挥手
- 为什么要三次握手
- 为什么要传回 SYN
- 传了 SYN,为啥还要传 ACK
- IP地址与MAC地址的区别
- HTTP请求,响应报文格式
- 事务传播行为
- 隔离级别
- Spring AOP IOC 实现原理
- 美团进阶篇
- 1 消息队列MQ的套路
- 美团终结篇
- 1.1 Object类的常见方法总结
- 1.2 hashCode与equals
- 1.3 ==与equals
- 2 ConcurrentHashMap 相关问题
- 3 谈谈 synchronized 和 ReenTrantLock 的区别
- 5 Nginx
