1.说一说数组和链表、二叉树有什么区别?
答:
(1)数组:数组可以通过下标访问元素,访问速度较快,而且如果数组有序,可以通过二分查找检索元素,检索效率快。但是对元素进行插入或删除时,需要移动的元素可能较多,效率低。
(2)链表:相较数组而言,存储方式有优化,方便进行插入或删除操作,但是检索效率低。
(3)树存储:利用二叉树既可以保证检索速度,还有较好的增删改效率。
2.堆和栈有什么区别?
答:
堆和栈在不同情景下有不同的含义,一般分为两种情景。
一是在程序内存分区中,堆和栈表示两种内存管理方式。栈由操作系统自动分配与释放,用于存放方法的参数值或者局部变量等,操作方式类似于数据结构中的栈,局部变量按定义的先后顺序依次入栈,随方法的执行结束而结束。堆由程序员分配,如果没有释放则在程序结束时由操作系统进行释放,分配方式类似于链表,具体存放内容由程序员来填充。
二是在数据结构中,栈是一种运算受限的线性表,只能一端进同一端出,这一端称为栈顶,满足后进先出的特性。而堆是一种常用的树型结构,是一种特殊的完全二叉树,当且仅当所有节点都满足不小于或者不大于其父节点的完全二叉树才称为堆。堆一般用数组存储。
3.tcp报文头部有哪些字段?
答:
tcp报文段头部有源端口和目的端口,序列号,确认号,数据偏移,窗口,检验和还有如SYN,ACK,FIN等总共20字节固定部分。
4.你知道数据链路层有哪些协议?
答:
①Ethernet以太网协议,用于实现数据链路层的数据传输和地址封装。
②PPP协议,点到点的链路层协议,用于在全双工的链路上进行点到点的数据传输。
5.ICMP 协议是用来干什么的?
答:
ICMP协议是网络层协议,是因特网控制报文协议,是TCP/IP协议簇的一个子协议,用于在主机、路由器之间传递控制消息。主要用来检测网络通信是否故障,最典型的应用就是PING通过发送请求报文来检测源主机到目的主机的链路是否有问题。
6.说一说TCP三次握手、四次挥手的过程以及为什么
答:
最开始客户端和服务器端都处于closed状态,客户端向服务器端发出连接请求报文,报文中同步序号SYN=1,并选择一个初始序列号x。服务器端收到请求后返回确认报文,SYN=1,ACK=1,确认号ack=x+1,也选择一个初始序列号y。客户端收到确认后还需要再向服务器确认一次,确认报文的序列号为x+1,确认号ack=y+1。三次握手避免请求建立连接的报文丢失而客户端重传后又再次被服务器端接受到,导致建立了两条连接,而客户端以为只建立了一条连接,从而导致出错。
断开连接时,首先由客户端发出断开连接请求,首部中FIN=1,seq=u,进入等待状态,服务器收到请求后返回确认报文,ACK=1,ack=u+1,seq=v,此时客户端向服务器端的连接就已经释放。客户端收到确认后,等待服务器发送释放连接请求,服务器发完数据后发送释放连接请求报文,FIN=1,ack=u+1,如果还有待发送的数据还可以发送假设为seq=w。客户端收到报文后进行确认,ACK=1,ack=w+1,squ=u+1,等待两个最长报文段寿命后结束。可以避免此次的报文对下一次产生影响。
7.说一说final关键字和finally的区别
8.说一说osi七层协议
4.线程之间互斥的方法?
5.上锁有哪些方法?
7.socket 网络编程了解吗?
8.多进程多线程区别?
9.进程间通信方式都有哪些
10.进程调度?
11.TCP拥塞控制算法?
12.缺页中断?
13.进程申请资源的位置?
15.三个线程同时启动,优先级相同,分别打印A、B、C,问如何保证打印顺序为ABC。没答好,三个信号量,初始时刻 Sa=1,Sb=0,Sc=0。
16.TopK问题?
17.死锁的概念。编程时怎么避免死锁?
18.HTTP和HTTPS的区别?
19.字符串匹配?
21.java多线程怎么保证线程安全?
22.创建线程的方式、Thread和Runnable创建线程有什么区别?
23.BFS、DFS?
24.Java的内存空间分配?
25.编译和链接?
26.说一说系统调用?
27.快排原理,时间复杂度,最差情况是什么情况,时间复杂度变多少
29.JVM数据区域,做什么
30.Spring核心组件
31.线程安全是什么,怎么实现
32.静态方法和实例方法的区别
34.Spring与SpringMVC的区别
35.Mysql持久化是什么?是怎么实现持久化的
36.http301、302、202各有什么含义
37.Redis了解过吗?Redis与MemCached的区别
38.堆和栈的区别
39.实现垃圾回收机制
40.冒泡排序
41.java和c++区别
42. 在浏览器中输入 http://www.baidu.com/ 后用到的协议
43java创建对象的方法,反射是什么,
44.SSM框架 IOC;
45单例模式;
46多线程;
47线程间通信;
48线程池;
49.TCP三次握手、四次挥手;
50.递归;
51.Stack Overflow;
52.二叉查找树;
53.快排;
54.归并排序;
55.synchorinized原理
56.Sping和SpingMVC的区别
57.ARP
58.final
59.说说抽象类 怎么定义 抽象类可以继承抽象类吗