剑指Java知识点

计算机网络
1. OSI开放式互联参考模型
2. TCP/IP
3. TCP三次握手
4. TCP四次挥手
5. TCP和UDP的区别
6. TCP滑动窗口
7. TCP的滑动窗口
8. 超文本传输协议HTTP主要特点
9. 在浏览器地址栏键入URL,按下回车之后经历的流程
10. GET请求和POST请求的区别
11. Cookie和Session的区别
12. HTTP和HTTPS的区别
13. Socket相关


1. 如何设计一个关系型数据库?
2. 为什么要使用索引?
    什么样的信息能成为索引?
    索引的数据结构?
3. 优化索引
    利用二叉查找树、B树、B+树、Hash以及BitMap
4. 密集索引和稀疏索引的区别
5、索引模块衍生出来的问题(以MySQL为例)
        如何定位并优化慢查询SQL?
        联合索引的最左匹配原则的成因?
        索引是建立的越多越好吗?
7. MyISAM和InnoDB关于锁方面的区别?
    适用场景
    数据库锁的分类
8. 数据库事务的四大特性
9. 事务隔离级别以及各级别下的并发访问问题?
10. InnoDB可重复读隔离级别下如何避免幻读?
11. RC、RR级别下的InnoDB的非阻塞读如何实现?
12. MySQL数据库设计三大范式

Redis
1. 缓存中间件--Memcache和Redis的区别
2. 为什么Redis这么快?
3. 多路IO复用模型
4. Redis常用数据类型
5. 从海量key里查询出某一个固定前缀的key
6. 如何通过Redis实现分布式锁
7. Redis延时队列


Linux
1. 如何查找特定的文件
2. 检索文件内容
3. 对文件内容做统计
4. 批量替换文本内容



JVM
1. 平台无关性如何实现?
2. JVM如何加载.class文件?
3. 反射
4. ClassLoader类加载器
    ClassLoader的作用
    ClassLoader的种类
    自定义ClassLoader的实现
5. 类加载器的双亲委派机制
6. loadClass和forName的区别
    类的加载方式
    类的装载过程
    loadClass和forName的区别
7. JVM三大性能调优参数-Xms、-Xmx、-Xss的含义
8. Java内存模型中堆和栈的区别--内存分配策略

GC
1. 对象被判定为垃圾的标准
2. 垃圾回收算法 (5种)
3. 垃圾收集器
4. Object的finalize()方法的作用是否与C++的析构函数作用相同
5. Java中的四种引用

多线程与并发
1. 进程和线程的区别
    Java进程和线程的关系
2. 线程的start和run方法的区别?
3. Thread和Runnable的关系?
4. 如何给run()方法传参?
5. 如何实现处理线程的返回值?
6. sleep和wait的区别
7. notify和notifyall的区别
8. yield函数
9. interrupt函数
10. 线程的状态以及状态之间的转换
11. synchronized底层实现原理
12. 自旋锁
13. 自适应自旋锁
14. 锁消除
15. 锁粗化
16. 偏向锁、轻量级锁、重量级锁汇总
17. synchronized和ReentrantLock的区别
18. Executors类创建不同的线程池
19. Fork/Join框架
20. 为什么要使用线程池?










全部评论

相关推荐

1 3 评论
分享
牛客网
牛客企业服务