1. 计算机网络
1、什么是计算机网络
2、什么是协议
3、什么是IP地址
4、什么是子网
5、什么是DNS
6、什么是NAT
7、什么是带宽和延迟
8、什么是VPN
9、路由器和交换机的区别
10、OSI与TCP/IP模型
11、TCP与UDP的区别
12、TCP三次握手四次挥手
13、HTTP和HTTPS的区别
14、HTTPS连接建立的过程
15、对称加密和非对称加密
16、GET和POST请求的区别
17、HTTP常见响应状态码
18、转发和重定向的区别
19、Cookie和Session的区别
20、浏览器输入Url后的过程
21、什么是DDoS攻击
22、什么是SSL/TLS
23、什么是跨域
2. Linux
1、什么是Linux
2、什么是Linux内核
3、Linux基本组件
4、进程和线程的区别
5、用户态和内核态
6、操作系统的内存管理
7、Linux常用命令
8、查看当前运行进程
9、查看磁盘使用情况
10、查看内存使用情况
11、查看修改文件权限
12、查看网络接口状态
13、挂载文件系统
3. Java基础
1、八大基础类型
2、Java三大特性
3、重载和重写的区别
4、public、protected、(default)不写、private修饰符的作用范围
5、==和equals的区别
6、hashcode()值相同,equals就一定为true
7、为什么重写equals(),就要重写hashCode()?
8、&和&&的区别
9、String、StringBuilder、StringBuffer的区别
10、String rap = new String("ctrl");创建了几个对象
11、什么是反射
12、浅拷贝和深拷贝的区别
13、构造器能被重写吗
14、并发和并行
15、实例变量和类变量
16、抽象类和接口的区别
17、Error和Exception的区别
18、如果try里有一个return语句,那么finally里的代码会不会被执行,什么时候被执行,return前还是后
19、final关键字有哪些用法
20、jdk1.8的新特性
21、throw和throws的区别
22、说一下你熟悉的设计模式
23、实例化对象有哪几种方式
24、java中什么样的类不能被实例化
25、序列化和反序例化,序列化的优点
26、什么是单点登录,实现单点登录的方式
27、如何防止表单提交
28、泛型是什么?有什么好处
29、值传递和引用传递
30、什么是字节码?采用字节码的最大好处是什么
31、final、finally、finalize的区别
32、this、super关键字用法
33、static存在的意义
34、break、contine、return的区别及作用
35、面向对象和面向过程的区别
36、面向对象五大基本原则
37、什么是内部类,什么是匿名内部类
38、java中IO流分为几种
39、BIO、NIO、AIO有什么区别
40、java获取反射的三种方法
41、什么是字符串常量池,String是最基本的数据类型吗
42、String有哪些特性,String为什么是不可变的
43、说一下自动装箱与拆箱
44、Integer a = 127与Integer b = 127相等吗
45、Java和C++的区别
4. Java集合
1、什么是集合,集合的特点
2、集合和数组的区别
3、常用的集合类有哪些
4、List,Set,Map三者的区别?List、Set、Map是否继承自Collection接口?存取元素时,各有什么特点
5、集合框架底层数据结构
6、哪些集合类是线程安全的
7、Java集合的快速失败机制fail-fast
8、怎么确保一个集合不能被修改
9、什么是迭代器Iterator,有什么特点
10、如何边遍历边移除Collection中的元素,为什么
11、Iterator和ListIterator有什么区别
12、遍历List有哪几种方式,实现原理是怎样的
13、说一下ArrayList的优缺点
14、ArrayList 和 LinkedList的区别是什么
15、如何实现数组和List之间的转换
16、ArrayList和Vector的区别是什么
17、插入数据时,ArrayList、LinkedList、Vector谁速度快,为什么
18、多线程场景下如何使用ArrayList
19、为什么ArrayList的elementData加上transient修饰
20、ArrayList扩容机制是什么?扩容过程是怎样的
21、List和Set的区别
22、说一下HashSet的实现原理
23、HashSet如何检查重复?HashSet是如何保证数据不可重复的
24、HashCode和Equals的相关规定
25、HashSet和HashMap的区别
26、BlockingQueue是什么
27、PriorityQueue是什么
28、在Queue中poll()和remove以及add()和offer()有什么区别
29、说一下HashMap的实现原理
30、HashMap在JDK1.7和JDK1.8中有哪些不同
31、HashMap的put方法的具体流程
32、HashMap的扩容操作是怎么实现的
33、HashMap是怎么解决哈希冲突的
34、什么是哈希?什么是哈希冲突
35、HashMap的数据结构
36、Hash函数是什么
37、能否使用任何类作为Map的key
38、为什么HashMap中的String、Integer这样的包装类适合作为Key
39、HashMap为什么不直接使用HashCode处理后的哈希值直接作为table的下标
40、HashMap的长度为什么是2的幂次方,为什么是两次扰动?
41、HashMap和HashTable的区别
42、如何决定使用HashMap还是TreeMap
43、HashMap和ConcurrentHashMap的区别
44、ConcurrentHashMap和Hashtable的区别
45、ConcurrentHashMap底层实现原理,JDK1.7和JDK1.8的区别
46、Array和ArrayList有何区别
47、如何实现Array和List之间的转换
48、Comparable和Comparator的区别
49、Collection和Collections有什么区别
50、TreeMap和TreeSet在排序时如何比较元素,Collections工具类中的sort()方法如何比较元素
51、ConcurrentHashMap,为什么用synchronized代替ReentrantLock
52、Hash为什么使用链表、红黑树,为什么不一上来就使用红黑树
53、说说你对红黑树的理解
54、为什么链表长度大于8,并且表的长度大于64的时候,链表会转换成红黑树
55、为什么转成红黑树是8呢?而重新转为链表阈值是6呢
56、为什么负载因子是0.75?
57、HashMap什么时候会扩容,为什么不是满了扩容
58、HashMap的扩容过程
59、HashMap的头插法和尾插法,为什么要从头插法改为尾插法?
2020版面试题、2024版面试题、面试题总结