模拟面试1

1.常见的HTTP协议状态码有哪些?

    常见的状态码有:1xx代表服务器端已经接受了请求。2xx代表请求已经被服务器端成功接收,最常见的有200、201状态码。3xx代表路径被服务器端重定向到了一个新的URL,最常见的有301、302状态码。4xx代表客户端的请求发生了错误,最常见的有401、404状态码。5xx代表服务器端的响应出现了错误。

2.介绍一下分代回收机制?

GC算法分别包括标记-清除,标记-整理,复制算法以及分代回收四种(其实是三种)。
标记-清除:将空间里的对象进行扫描,挂掉的进行一个标记,然后对其进行统一回收,缺点是容易造成空间碎片化,当有大对象放入时可能会再次触发垃圾回收机制;
标记-整理:清理的过程和之前一样,只不过在清理后会整体对空间进行整理,将对象再次排列。缺点是效率低;
复制算法:将内存空间一分为二,也就是Suevivor区的from和to两部分,每次只使用一个,当使用的空间触发垃圾回收以后,将所有存活对象复制到另一部分,然后将使用的空间直接全部清除干净。
分代回收:这个一般是说指jvm的GC算法,在新生代使用复制算法,老生代使用标记-整理或标记-清除算法。

3.说一说Redis的单线程模型?

    Redis基于Reactor模式开发了网络事件处理器,这个处理器就叫做文件事件处理器(file event handler).这个文件事件处理器是单线程的,所以Redis才叫做单线程的模型,文件事件处理器采用了IO多路复用机制同时监听多个socket,根据socket上的事件来选择对应的事件处理器来处理这个事件。

4.介绍一下Java中的序列化与反序列化?

    序列化:对象转换为字节(包含对象的类型、数据等信息)。通过序列化流(ObjectOutputStream)把对象以流的方式写入到文件中保存。

    反序列化:字节重构为对象。通过反序列化流(ObjectInputStream)把文件中保存的对象以流的方式读取出来使用。

猜你喜欢

转载自blog.csdn.net/m0_65260253/article/details/131710042
今日推荐