1.jdk jre是什么
jdk基础开发包 jre java运行环境,Java程序通过javac编译生成字符行(.class)文件,给jvm编译成机器能看懂的机器语言,意义在于将java的编译与系统解耦开,实现在不同系统环境下的运行
2.内部类配合接口多继承
3.多态及向下转型
4.hashmap底层
hashmap底层可以理解为就是一个数组,map对象通过hash取模以链表的形式储存在对应的数组位置中
5.fast-failed机制
当集合发生非线程安全时抛出异常
6.BIO NIO AIO
同步与异步:用户盯着消息的完成情况(同步)系统盯着消息的完成情况(异步)
阻塞与非阻塞:用户等着消息完成就不干其他事(阻塞)用户不等消息完成就开始做其他事情(非阻塞)
7.零拷贝
数据直接在堆外内存拷贝
8.netty
nio底层通信框架(适用场景是底层)
9.消息队列和栈
消息队列先进先出,栈先进后出
10.AES和RSA
AES对称加密,通信双方用同样的秘钥加密解密
RSA非对称加密,通信双方用各自的私钥加密,公钥验签
11.jvm内存模型
年轻代,年老代,持久代
12.tcp三次握手四次分手
tcp三次握手四次分手整个过程具有原子性不可切分
13.http和tcp
http是tcp的封装,http是应用层协议
14.悲观锁,乐观锁,无锁算法
悲观锁:先锁,认为一定有写的争抢,适合频繁写的情况
乐观锁:先不锁,认为没有写的争抢,适合写比较少的情况
无锁:乐观锁的一种实现,判断加锁对象的版本号判断是否与期望版本号相同来实现数据的排他性
15.线程池
为线程提供缓冲区,限制同时运行线程的数量,同时有维持线程降低创建销毁性能消耗的作用
16.消息队列
什么时候取消息由消费者决定(客户端也可以作为消息的订阅者),避免消费能力小于生产能力,并解耦了服务请求者和服务提供者
17.linux
一切皆文件,根目录(即“/”目录)下文件目录的解耦思想,熟悉常用命令
18.三大范式
原子性,部分函数依赖,传递依赖
19.常用sql关键字
group by,order by,limit,distinct,explain,case when then else
20.join
内连接:不保留驱动表的空匹配
外链接:保留驱动表的空匹配
左外连接:左边为驱动表
21.mysql分表分库,主从复制,分布式的思考
22.redis
储存“热”数据,内存数据库,避免磁盘io(实际上默认会持久化)
23.红黑树
消除二叉树偏向一边的问题的解决方案
24.nginx和lvs
负载均衡方案
25.面向服务框架
dubbo,spring boot,spring cloud
26.了解分布式各领域的主流技术优势,适用场景