TP 提前批 Java 后端 面经
笔试
笔试总共2小时,分为:专业基础(1小时)、逻辑推导(15分钟)、智力测试(15分钟)、数学计算(15分钟)、图像规律(15分钟)
10道计算机基础
-
利用ICMP无法达到以下哪种目的:
-
确认达到目的地中间可以有多少种路径
-
确认到达目的地中间的通信延迟情况
-
确认主机在不在线
-
确认MTU大小
-
-
网络数据传输中,数据接收提取的过程是:
-
比特流-顿-包-段-数据
-
数据一段一包一帧一比特流
-
比特流-帧-段-包数据
-
比特流一段一包一帧一数据
-
-
在C语言中,关于静态变量的说法,以下错误的是
-
在一个C文件内(但在函数体外) ,一个被声明为静态的变量可以被该c文件内所用函数访问,但不能被该C文件外其它函数访问
-
若全局变量仅由单个函数访问,则可以将这个变量改为该函数的静态局部变量,以降低模块间的耦合度
-
函数内定义的静态局部变量,函数退出后静态变量占用的内存并不会被释放
-
如果函数内定义的静态变量过大,可能导致栈溢出
-
-
对于TCP/P协议,以下描述中,正确的是
-
IP、ICMP和TCP都是网络层的协议
-
IP协议是一种无连接不可靠的分组传送协议
-
UDP是无连接的,所以无法获取任何错误,甚至通信的目标主机未打开端口
-
TCP协议是可靠的服务,当客户端第一次向服务端发送会话请求的时候,就会把数据传输过去
-
-
5.下面关于采用抢占式调度方式系统中系统调用完成时返回的描述,不正确的是
-
有可能把调用者进程放入就绪队列而执行别的进程
-
只有当调用者进程仍具有最高优先级时,才返回到调用者进程继续执行
-
引发重新调度
-
无条件返回调用者进程,从调用位置的下一条指令处继续执行
-
-
下面程序运行后的结果为
char *p1,*p2,str[20]="ABCDEFG"; p1="abcd"; p2="efgh"; strcpy(str+1,p2+1); strcpy(str+3,p1+3); printf("%s\n",str);//Afgd
-
若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则最节省运算时间的存储方式是
-
单链表
-
仅有尾指针的单循环链表
-
仅有头指针的单循环链表
-
双链表
-
-
操作系统中,哪一部分代码一定不可以在不同指令集的CPU间移植
-
体系结构
-
驱动程序
-
内存管理
-
任务调度
-
-
序列7,12,15,10,22,9,23,4,5,6是采用下列排序算法第二轮排序的结果,则该排序算法只能是
-
插入排序
-
归并排序
-
选择排序
-
快速排序
-
-
某二叉树的后序遍历序列为BFGDECA,中序遍历序列为BAFDGCE,则该二叉树的先序遍历序列为
-
ABCDFGE
-
ABCDGFE
-
BADCEGF
-
ABDCFEG
-
个人面试过程
提前批 非计算机
一面(25 min):
自我介绍
问本科成绩、硕士成绩、研究的课题、现在住在那里
考研还是保研,什么时候学的 Java ,用过什么框架
问了曾经的比赛奖项,都是什么水平、具体解决了什么,担任职责,问了项目的一些具体内容
目前的课题组方向跟你要找的工作有什么联系?
网络7层模型,每层模型都有哪些协议
为什么逛 StackOverFlow?
说一下输入网址后,发生了什么事情?
Springboot 和 SpringMVC 的区别
如何自定义 springboot-starter?
Mybatis 的数据库连接池用的什么
线程池的参数有什么?
创建线程有哪几种方法
http 和 https 的区别
Mysql 的事务
Mysql 的事物隔离级别有哪些
二面(40 min):
自我介绍
考研还是保研,成绩如何
谈谈你对 java 反射的理解(反射是什么?反射有哪些方法?具体有哪些应用?)
反射优缺点是什么?
说一下 java 垃圾回收(内存分配的方式,垃圾回收目的、垃圾回收器)
Java IO 的设计模式有哪些?(Adatper模式、Decorator模式)
谈谈如何保证线程安全?(ThreadLocal 栈封闭、synchronized、ReentranceLock、原子类型和安全容器)
synchronized底层如何实现的?(monitor 指令)
谈谈 spring 怎么实现依赖注入的?
依赖注入有哪些方式呢?
MySQL 的索引的数据结构有哪些?
B+树为什么检索快?B+树怎么优化呢?
现在让你设计一个秒杀系统,你如何设计?
秒杀系统中如何保证页面快速加载?如何防止用户一直刷新?
智力题:五个洞找狐狸,答234432(又问为什么第二次从第三个洞开始找起,不从第四个洞?)
编程题:最大递增子序列的个数
答得不是很好,一周后还是给了三面
三面(15 min):
自我介绍
没有技术问题,全是聊兴趣爱好什么的。
反问环节
座谈会:SP+5
总结的面试题目
算法题
-
一个0,1数组,你最多能将k个0变成1,问能形成的连续1的最大长度。滑动窗口
-
环形子数组的最大和
https://leetcode-cn.com/problems/maximum-sum-circular-subarray/
-
给定一个整数数组,以及一个整数 k,问是否存在可以将该整数数组划分为k个非空子集,使得所有的非空子集的内部和都是相同的。
-
给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数。 (即,使用函数rand5()来实现函数rand7())
public static int rand5(){ return new Random().nextInt(5)+1; } public static int rand7(){ int res=25; // 之所以大于 21 才取余,是为了保留更多随机生成的数,如果设为 7 ,那么只有 1~7 才会返回,哪些大于 7 的都舍弃了 while (res>21){ // rand5()-1 产生 [0,4] // 乘以 5 产生0,5,10,15,20这5个数 // 加上 rand5() 产生[1,25] res=5*(rand5()-1)+rand5(); } return res %7 +1 ;//取余后落到 [0,6],加一后落到 [1,7] }
5. 寻找数组中的主要元素
public static int maxSubSum(int[] a){ a[1]=Math.max(a[1],a[0]); for (int i = 2; i < a.length; i++) { a[i]=Math.max(Math.max(a[i],a[i-1]),a[i-2]+a[i]); } return a[a.length-1]; }
智力题
-
25匹马,比赛多少次可以决出前3和前5名?分别是7次和8 次
-
12 小球称重最少需要多少次才能找出重量不一样的球, 答案,N 次称重最多可以从(3^n-3)/2 个小球找出重量不同的球
-
五个洞排一排狐狸每晚可以移动到相邻的洞里,每天白天可以查一个洞,问最少几次一定能找到狐狸,具体怎么操作。6次
第一次抓第二个,不在二中,则在一三四五中,晚上只能跑到二三四五中, 第二次抓第三个,不在三中,则在二四五中,晚上跑到一三四五中(为什么第二次抓第三个?) 第三次抓第四个,不在四中,则在一三五中,晚上跑到二四中, 第四次抓第四个,不在四中,则在二中,晚上跑到一三中, 第五次抓第三个,不在三中,则在一中,晚上跑到二中, 第六次抓第二个,一定能抓到。 234432最多六天
-
1000瓶酒,一瓶有毒,几只老鼠找出有毒的。10只,二分法或者二进制法