最新Java校招面试题及答案
大对象直接进入老年代,如很长的字符串数组,虚拟机提供一个;XX:PretenureSizeThreadhold 参数,令大于这个参数值的对象直接在老年代中分配,避免在 Eden 区和两个 Survivor 区发生大量的内存拷贝;
6)内存泄漏和内存溢出 答: 概念:
内存泄漏的原因分析:
小结:本小节涉及到 JVM 虚拟机,包括对内存的管理等知识,相对较深。除了以上问题,面试官会继续问你一些比较深的问题,可能也是为了看看你的极限在哪里吧。 (五)Java 8 相关知识点关于 Java8 中新知识点,面试官会让你说说 Java8 你了解多少,下边主要阐述我所了解,并且在面试中回答的 Java8 新增知识点。 1)HashMap 的底层实现有变化:HashMap 是数组 + 链表 + 红黑树(JDK1.8 增加了红黑树部分)实现。 2)JVM 内存管理方面,由元空间代替了永久代。 区别:
3)Lambda 表达式(也称为闭包),允许我们将函数当成参数传递给某个方法,或者把代码本身当做数据处理。 4)函数式接口:指的是只有一个函数的接口,java.lang.Runnable 和 java.util.concurrent.Callable 就是函数式接口的例子;java8 提供了一个特殊的注解 @Functionallnterface 来标明该接口是一个函数式接口。 5)引入重复注解:Java 8 中使用 @Repeatable 注解定义重复注解。 6)接口中可以实现方法 default 方法。 7) 注解的使用场景拓宽: 注解几乎可以使用在任何元素上:局部变量、接口类型、超类和接口实现类,甚至可以用在函数的异常定义上。 8) 新的包 java.time 包
小结:Java8 的一些新特性,面试官一般情况下不要求你有多么精通,主要是看看你有没有一些了解。 (六)网络协议相关网络协议方面,考察最多的包括服务器和客户端在三次握手、四次挥手过程中的状态变化;还有网络拥塞控制,及其解决办法等。 1)三次握手、四次挥手示意图: <img src="https://www.52php.cn/res/2019/03-16/23/90da328b76ccddea4f60dd9cf5145b88.jpg" alt=""> 总共有四种状态:主动建立连接、主动断开连接、被动建立连和被动断开连接 两两组合还是 4 种组合:
2)滑动窗口机制 由发送方和接收方在三次握手阶段,互相将自己的最大可接收的数据量告诉对方。也就是自己的数据接收缓冲池的大小。这样对方可以根据已发送的数据量来计算是否可以接着发送。 在处理过程中,当接收缓冲池的大小发生变化时,要给对方发送更新窗口大小的通知。 3)拥塞避免机制 拥塞:对资源的需求超过了可用的资源。若网络中许多资源同时供应不足,网络的性能就要明显变坏,整个网络的吞吐量随之负荷的增大而下降。 拥塞控制:防止过多的数据注入到网络中,使得网络中的路由器或链路不致过载。 拥塞控制方法:
<img src="https://www.52php.cn/res/2019/03-16/23/263da2b28578374aae35b687ab769227.jpg" alt=""><img src="https://www.52php.cn/res/2019/03-16/23/20f28c2fca25490dae6d42258c5bdccc.jpg" alt=""> 4)浏览器中输入:“www.xxx.com” 之后都发生了什么?请详细阐述。 解析:经典的网络协议问题。 答:
5)常见 HTTP 状态码
6)TCP 和 UDP 的区别: 答:
(编辑:武汉站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |