当前位置:   article > 正文

剑指Offer —— 面试题(五)_一个对象从加载到jvm,再到被gc清除,都经历了什么过程

一个对象从加载到jvm,再到被gc清除,都经历了什么过程

一个对象从加载到JVM,再到被GC清除,都经历了什么过程

  1. 首先把字节码文件内容加载到方法区
  2. 然后再根据类信息在堆区创建对象
  3. 对象首先会分配在堆区中年轻代的eden区,经过一次Minor GC后,对象如果存活,就会进入Suvivor区。在后续的每次Minor GC中,如果对象一直存活,就会在Survivor区来回拷贝,每移动一次,年龄加一。
  4. 当年龄超过15后,对象依然存活,对象就会进入老年代。
  5. 如果经过Full GC,被标记为垃圾对象,那么就会被GC线程清理掉。

说一下HashMap的Put方法

  1. 根据key通过哈希算法与与运算得出数组下标
  2. 如果下标元素为空,则将key和value封装为对象(JDK1.7为Entry对象,JDK1.8时Node),放入该位置。
  3. 如果下标不为空,则需要插入对象,JDK1.7采用头插法插入当前链表,JDK1.8采用尾插法插入当前链表,同时JDK1.8还需要判断当前位置是红黑树Node还是链表Node,插入后再判断是否需要扩容,不需要则结束Put方法。

TCP的三次握手和四次挥手

TCP协议是7层网络协议的传输层协议,负责数据的可靠传输。

在建立TCP连接时,需要通过三次握手来建立,过程是:

  1. 客户端向服务器端发送请求(SYN=1) 等待服务器响应;
  2. 服务器收到请求并确认,回复一个指令(SYN=1,ACK=1);
  3. 客户端收到服务器的回复指令并返回确认(ACK=1)。

在断开TCP连接时,需要通过四次挥手来断开,过程是:

  1. 客户端向服务器发送连接释放报文段(FIN=1),等待服务器响应;
  2. 服务器收到连接释放报文段并发出确认(ACK=1),客户端到服务器的连接关闭,此时TCP处理半关闭状态,需要等到服务器向客户端发送数据结束;
  3. 服务器向客户端发送连接释放报文段(FIN=1,ACK=1),并等待客户端的确认;
  4. 客户端收到服务器的连接释放报文段并给出确认(ACK=1),连接释放。

零拷贝是什么

零拷贝指的是,应用程序在需要把内核中的一块区域数据转移到另外一块内核区域时,不需要经过复制到用户空间,再转移到目标内核区域去,直接实现转移。应用程序直接调用TransferTo()命令,实现转移,不需要两次复制,提高了效率。

浏览器发出一个请求到收到响应经历了哪些步骤?

  1. 浏览器解析用户输入的URL,生成一个HTTP格式的请求。
  2. 先根据URL域名从本地hosts文件查找是否有映射IP,如果没有就将域名发送给电脑所配置的DNS进行域名解析,得到IP地址。
  3. 根据IP地址向对应主机建立TCP连接。
  4. 建立连接后,浏览器向目标服务器发送HTTP请求。
  5. 服务器收到请求后,处理相关请求,返回响应结果。
  6. 关闭TCP连接。
  7. 浏览器根据结果解析和渲染界面。

请再悄悄加点油,无论如何都想听你说:我终于成为不负众望的人了。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/838173
推荐阅读
相关标签
  

闽ICP备14008679号