欢迎大家关注我的以下主页,尤其是今日头条!!!谢谢🙏🙏🙏
csdn:雷园的csdn博客
个人博客:雷园的个人博客
简书:雷园的简书
今日头条:来自底层程序员的仰望
面试常见的一些底层知识点(三)
MVC与三层架构的关系
1.两者并无关系
2.三层是从整个应用框架角度的三层
3.MVC是应用程序(BS结构)的视图层划分出来不同的功能的几个模块
4.MVC主要是为了解决应用程序用户界面的样式替换问题,把展示数据的HTML页面尽可能的于业务代码分离,把纯净的界面展示逻辑(用户界面)独立到一些文件中(view),一些和用户交互的程序逻辑(Controller)单独放在一些文件中。
内存空间中堆和栈的区别
1.栈区(stack):编译器自动分配释放,局部变量的值。速度快。
2.堆区(heap):程序员分配释放,如不释放,程序结束时有系统(OS)自动回收,分配方式类似于链表。速度较慢。
Java虚拟机(JVM)
1.抽象计算机:有自己完善的硬件架构、处理器、堆栈、寄存器。
2.多平台运行:分析并执行Java字节码。
3.从操作系统方面看:jvm是一个进程
访问网址的具体流程
1.将主机名通过DNS解析为IP地址。
2.建立TCP连接(三次握手)。
3.发送HTTP请求
4.返回,选择是否断开(keep-alive)
32位与64位的区别
代表处理器字长:每条指令可处理的最大长度。
64位的优点:可以进行更大范围的运算;支持更大的内存;
32位的优点:耗能小。但是处理速度慢。
三次握手
1.客户端发送带有SYN的TCP报文。
2.服务端回应客户端,带ACK标志和SYN标志,询问客户端是否准备就绪。
3.客户端回应服务端
四次挥手(连接终止协议)
注意:TCP是双工的,每个方向必须单独进行关闭。
1.客户端发送FIN
2.服务端发送ACK
3.服务端关闭客户端的连接
4.客户端发送ACK确认关闭
进程和线程的区别
1.进程:有独立的地址空间,一个进程崩溃后,在保护模式下不会对其他进程产生影响,进行进程切换时耗费资源大。
2.线程:一个进程中的不同执行路径,有自己的堆栈和局部变量。多进程比多线程的程序健壮性更好。
TCP/IP五层模型的协议
应用层—传输层—网络层—数据链路层—物理层