每天一套面试题Day16-小米高频(2)

链接题目来自牛客

我的每日一套面试题专栏,每天更新一起打卡

7.说说JVM的垃圾回收算法。

标记-复制(新生,无碎片),标记-清除(老年,有碎片)->标记-整理(老年,无)

8.介绍下双亲委派模型,如何打破它?

双亲委派模型是Java类加载机制,子类加载器先委托父类加载器尝试加载类,父类无法加载时才由自身加载,避免重复加载并保证核心类安全。 类加载器的层次结构:引导类加载器(Bootstrap ClassLoader),扩展类加载器(Extension ClassLoader),应用类加载(Application ClassLoader),自定义类加载器(Custom ClassLoader)

打破: (1)通过线程上下文类加载器(Thread Context ClassLoader) (2)重写loadClass方法,改变委托逻辑(如不先委托父类,直接自己加载)。 (3)OSGi的动态模块加载,通过Bundle类加载器打破双亲委派,每个模块(Bundle)有独立的类加载器。

9.JDK动态代理是什么?和cglib区别?

我的博客 JDK动态代理和CGLIB都是Java中实现AOP(面向切面编程)的重要技术,它们可以在运行时动态地创建代理对象,用于在不修改原始代码的情况下增强方法功能。

对比维度 JDK动态代理 CGLIB动态代理
代理原理 基于接口实现 基于继承实现
依赖关系 目标类必须实现接口 目标类可以是普通类
性能表现 JDK 1.8+ 性能有大幅优化 早期版本性能优势明显,现在差距不大
生成方式 使用JDK自带API生成 使用ASM框架生成字节码
限制条件 无法代理无接口的类 无法代理final类和方法
外部依赖 JDK自带,无额外依赖 需要引入CGLIB库

Spring AOP的默认策略:

  • 如果目标对象实现了接口,默认使用JDK动态代理
  • 如果目标对象没有实现接口,则使用CGLIB

10.从「敲下一个 URL」到「页面出现在屏幕」整条链路全景

DNS 主机到本地域名服务器递归查询,本地域名服务器,为了完成对客户端的递归查询承诺,向根、顶级、权限域名服务器发起查询,并接收来自它们的迭代查询响应,最终拿到域名对应的IP。

ARP协议,由目的IP得到目的MAC(路由器的MAC)

TCP三次握手建立连接

应用层:生成 HTTP 请求 传输层:TCP 分段,添加端口号 网络层:IP 封装,添加 IP 地址 数据链路层:添加 MAC 地址,形成帧 物理层:转换为比特流传输

由IP协议指路到达服务器

服务器再一层层拆开,拆到应用层,解析,响应经过HTTP应用层,TCP传输层,IP网络层,网络接口层等封装,返回客户端

浏览器解析渲染

TCP四次挥手断开连接 (连接管理:根据 HTTP 版本和头信息决定是否保持连接或关闭,现代HTTP/1.1默认长连接,可能不会立即断开)

作者:我是猫熊 链接:https://www.nowcoder.com/discuss/817499795240546304?sourceSSR=users 来源:牛客网

11.TCP 与 UDP 的 10 大核心区别是什么?

有连接 可靠(序号,ACK,超时重传,拥塞控制,流量控制) 有顺序 基于字节流 基于报文 首部20-60 首部8

TCP面向字节流,UDP面向用户数据报。 TCP首部20-60字节,UDP8字节 TCP三次握手建立连接,四次挥手释放连接.TCP有连接,UDP无连接.所以TCP只支持单播,但是UDP支持组播. TCP可靠,滑动窗口ACK,重发,UDP不可靠。 TCP是有序的,UDP不保证顺序。 所以TCP可以用于准确性要求高的,如FTP,HTTP,UDP支持实时性好的。比如视频流。 TCP有拥塞控制,UDP无。

12.说说 TCP 的三次握手

彼此双方知道序列号,确保对方能收能发 SYN=1,seq=x;ACK=1,ack=x+1,seq=y;ACK=1,ack=y+1,seq=x+1

第二次,ACK = 1, ack = x + 1 (意思是:“你刚才发的序列号x我收到了,我期望你下一个数据从x+1开始发”) SYN = 1, seq = y (意思是:“我也要和你建立连接,我的序列号从y开始”)

#面试真题##坚持#
每日一套面试真题 文章被收录于专栏

记录刷过的面试真题

全部评论

相关推荐

今天周一休息,突发奇想写一篇阶段总结。如题,我已经去了一个和Java彻底毫无关联的行业。曾经我以为自己能在计算机行业发光发热,没想到刚入行一年多就当了逃兵。从最开始的热爱到现在一看到代码就厌恶,不知道自己经历了什么。所以我去干什么了?答案是:在成都当了租房销售。上班那会压力大了就念叨着去干租房中介,但是一直下不去这个决心,想着自己学了四年多的计算机知识,终究还是不甘心。终于在某一天准备八股文的时候,看着无数篇和工作内容关系不大的理论知识,那一刻下定决心,决定尝试一下销售行业,也算是给自己一个交代。后面阴差阳错的投了成都自如去当租房管家,没想到面试很顺利,在当天一百多个面试的人里面,我成为了为数不多通过的几个幸运儿之一。目前已经培训通过,正式入职,也开了单,也有压力但是每天过得很开心,真心喜欢那种和人交流的感觉,哪怕是最后没有选择找我租房。说这些也是想告诉那些大三,大四正在找Java实习而焦虑的同学:你们现在还年轻,选择很多,容错率也很高,可以尽情去尝试自己喜欢的行业和工作。不用因为某一次的面试没通过或者简历石沉大海而焦虑,更不用因为身边人都在挤编程的独木桥就强迫自己跟风。也算是自己的碎碎念吧,也希望自己能在新的领域取得一点小成就。也祝牛油工作顺利!
沉淀小子:干啥都不丢人啊,生存是必须要的,销售很考验一个人综合素质能力的,好的销售人脉和资源可不比写字楼的白领差啊
点赞 评论 收藏
分享
03-10 11:23
门头沟学院 Java
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务