猿辅导 java岗 社招面试的技术题目汇总
JDK JRE JVM 的区别?
JVM 就是我们常说的 java 虚拟机,它是整个 java 实现跨平台的 最核心的部分,所有的 java
程序会首先被编译为.class 的类文件,这种类文件可 以在虚拟机上执行,也就是说 class 并
不直接与机器的操作系统相对应,而是经过虚拟机间接与操作系统交互,由虚拟机将程序解
释给本地系统执行。
JDK = JRE+Java 开发工具
JRE = JVM+核心类库(libs)
JVM 是用来执行字节码文件的
浏览器输入一个网址会发生什么变化?
详细说一下DNS 域名解析服务器?DNS 用的是什么协议(UDP)
TCP 三次握手,那四次挥手呢?为什么要四次挥手?
TCP 怎么保证可靠通信?
超时重传和确认机制
TCP 和 UDP 的区别?
TCP 是面向连接的,TCP 传输的是字节流,TCP 只能点对点,保证传输的可靠性
UPD 不是面向连接的,传输的是报文,可以一对多,多对一,多对多,提供尽最大努力交付
的
进程和线程区别?
Spring 常用注解?
Spring 事务传播机制?(不知道)
Spring 事务隔离级别?(只知道有五种)
OSI 分层模型
TCP/IP 分层模型?
网络拥塞一定会导致丢包吗?为什么?
ArrayList 中删除值为指定的数,能够直接 remove 吗?会有什么问题(如果直接 remove,
比如remove 了位置为 0 的元素,则后面的元素会前移,之前的 index 为 1 的 index 就变成
了0,所以会有问题)
算法题:有三台服务器,分别是一定容量,也就是权重,如果来了若干个包,怎么分配让每
个服务器处理的包的数量和权重成正比?可以把权重相加,比如第一个为10,第二个为 20,第三个为 30.那么加起来就是 60.来一个
包,rand 一下产生一个 0-1 之间的小数,再乘以 60.如果落在 0-10 就分配给第一个服务器,
如果落在10-30 就分配给第二个服务器,如果落在 30-60 就分配给第三个服务器。
就有点大数定律来求概率的意思,当时没有想到这个方法。。。
#面经##社招##猿辅导##Java工程师#