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

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 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 的三次握手

作者:我是猫熊链接:https://www.nowcoder.com/discuss/8196350319612968967.说说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 的三次握手

作者:我是猫熊

链接:https://www.nowcoder.com/discuss/819635031961296896

来源:牛客网

#秋招吐槽大会#
全部评论

相关推荐

秋招算是告一段落了,最大的感受就是矛盾具有特殊性,不是所有人的建议都对你适用,互联网上也有很严重的信息茧房。同一个岗位有可能薪资可以差特别多,除开学历厂打铁还需自身硬。LZ属于网传天坑专业的双9,照网上的论调早就该退学了,目前收到的offer里面基本都是25以上,其中有一半的是超过30甚至在二线城市的,最高的两个有40以上。就个人经验来说下秋招的影响因素:1.家是哪里的(LZ南方人,即便在北方求学过,投了长光卫星秒挂;沈鼓不理我;长安二面认为我不会去,BG29的重庆四川同学基本OC)2学历(这个影响其实算是比较大的,有些热门厂或者人才计划会卡双9,要么就是强势理工类211本科+华五硕,C9够不够不清楚;学历厂看完本科会看最高学历,赛力斯这种学历厂C9硕今年给的待遇要比北航北理华科东南天大的硕士高,哪怕本科一样硕士成果多方向对口都没用;有些企业校友力量多会对一些学校比较照顾,这个不在此赘述)3项目对口度(LZ项目做的纵向,并非专业领域热门方向,投的很多岗位其实垂直度不算很高,但是今年个人感觉有些单位认为不对口就挂了,比如汇川,寒武纪,小米,vivo,峰飞,中微;小鹏属于对口度高就给面了,身边很多对口度不高的没收到)4成果(大部分人说论文专利对就业没帮助,其实我不是完全认可这个说法的,老师不放实习的情况下没论文的优势远小于有论文,LZ手里有一些一区和EI论文,还有几个授权和申请专利,在吃面试评价的大厂里还是很有优势的,同岗位比其他BG差不多的同学多不少;也有的单位会按照是否发论文增加待遇。当然实习有没有优势我不清楚,我更倾向实习是一种敲门砖,成果是用来给自己提升价值的)5投递时间(投的越早越好,当然可能投太早了有些啥栾企业筛选不到你的简历,投晚了这个可能就没了,零跑一开LZ就投了,到现在面试都没有,给我气笑了)6运气(运气很重要,有时候甚至超过上述所有因素的影响。当然运气既包括企业的筛选,面试的体验等等,牛友肯定有不少例子,我说个我这边最抽象的事,LZ在面宁波方太的时候因为线下有事情调整到线上,本来以为是技术面结果二面还是群面,非研发和研发一起面。LZ有不少校园经历和科研成果,并且群面的时候其他人基本都是双非本硕,双非本211硕的配置,本硕211都屈指可数,除了LZ就一个9硕。本来这么看应该没什么问题了,结果群面就问了两个问题,每个问题都是按顺序轮流答,面试官指定按顺序答,LZ永远第一个,每次回答完后面的人都答的特别充分,甚至说了一些工艺流程的专业术语,大家细品。最后答完了面试官还突然说要用笔回答技术问题,LZ为了去面试亭都没带笔,最后毫无意外挂了)总而言之,LZ认为每个人都是特殊的个体,没有绝对意义上的建设性意见,写这篇帖子也是不要让大家焦虑,祝大家顺利~
秋招,不懂就问
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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