一,并发和并行的区别
并发:在一个系统,同一个时间段内处理多件事情的能力,在并发环境下,任务会交替执行,但是在某一个时刻可能只有一个任务在执行,例如单核cpu,任务是通过切换来执行的。
并行:在一个系统,同时处理多件事情的能力,在并行环境下,多个任务是真正意义上的同时进行,通常需要多核cpu
二,描述一下计算机网络的分层模型
物理层,数据链路层,网络层,传输层,会话层,表示层,应用层
三,HTTP协议,TCP协议,IP协议分别是计算机网络七层中的哪层
HTTP协议属于应用层,TCP协议属于传输层,IP属于网络层
四,端口号和IP的信息是通过哪个层添加到报文里的
IP的信息是通过网络层,端口号是通过传输层添加到报文中的
五,端口号的作用是什么
端口号的作用就是在一台主机中区分不同的网络应用程序,实现同一个主机多个应用的并发网络通信
六,描述一下dns的工作流程(使用www.baidu.com举例)
1.首先要查询一下本地的缓存,有就直接用,如果没有的话执行下一步
2.操作系统再查询本地的hosts文件和系统DNS的缓存
3.如果还是没有的话,就问本地的DNS服务器,这种服务器一般都是运营商提供的,或者是用户自己配的
4.如果还没有查到的话,就开始迭代查询,先问根服务器,然后返回.com的TLD DNS的服务器地址
5.然后访问TLD DNS的服务器地址,然后返回baidu.com的权威DNS服务器地址
6.然后访问权威DNS的服务器地址,最后返回这个域名的IP地址到本地DNS服务器上
7.然后DNS服务器把这个结果缓存下来,再给浏览器缓存一下
正常就到前四步就能找到后面几步属于少数情况
七,事务是四大特性,什么叫原子性,隔离性呢
八,隔离级别有哪些
读未提交,读已提交,可重复读,串行化
九,什么叫不可重复读,什么叫幻读,这两个有什么区别
不可重复读:在一个事务中,多次读取同一个数据,但读取的结果却不同。例如事务a读取了一次数据,事务b提交了修改这个数据,事务a再次读取这个数据结果就和第一次读取不同。
幻读:在一个事务中,执行相同的查询操作,但是得到的结果集却不同。例如事务a进行了一次查询,但由于事务b插入了新的数据,导致事务a再次查询时结果集的数量却不同
这两者的区别:幻读通常是指查询到的数量发生了增加或者减少,查询到了其他事务的添加操作的数据;不可重复读是指同一个数据,字段的内容发生了变化,两次查询由于其他事务对此数据进行了修改提交,导致查询结果不同。
十,给你了一张表student_score(student,score,class)然后写出一个查询成绩最高的学生的sql语句
sql
-- 1. 使用CTE计算每个学生的总成绩
WITH StudentTotalScores AS (
SELECT
student_id,
SUM(score) AS total_score
FROM
scores
GROUP BY
student_id
)
-- 2. 在CTE的基础上,找出总成绩最高的学生ID
SELECT
student_id
FROM
StudentTotalScores
WHERE
total_score = (SELECT MAX(total_score) FROM StudentTotalScores);
大概的逻辑就是说先求出每个学生的总成绩然后以此通过用户id进行分组,得到分组之后求出组中最大成绩的学生id
十一,八种基本数据类型有哪些(666前面考那么难现在给我整这出)
byte,short,int,long,float,double,char,boolean
十二,现在有一个list,里面已经初始化好了一些熟悉,使用流式写法求出女生的人数
list.stream().filter("女".equals(person.getGender())).count()
//大概就是这个意思
十三,给你一个2025-12-31 15:32这样的字符串,要转换成时间格式的,转换符要怎么写
"yyyy-MM-dd HH:mm"
十四,描述一下springMVC的执行流程
1.用户从浏览器输入url发送请求到服务端,Web容器tomcat接收这个请求
2.通常是带有"/"的请求会转发给前端控制器DispatcherServlet,前端控制器是所有请求的入口
3.然后DispatcherServlet会请求HanderMapping来查找哪个Controller处理这个请求
HanderMapping会根据url从自己的映射表中找到对应的HanderExecutionChain对象
这个对象包含了
Handler:对应的@Controller中的方法
HandlerInterceptor:一组拦截器,用于在执行器处理前后进行额外处理
4.然后DispatcherServlet要调用HandlerAdapter,DispatcherServlet不会直接调用Handler,因为Handler分为很多种类型,所以需要根据对应的Handler找到合适的适配器HandlerAdapter
5.然后HandlerAdapter执行Handler,在执行前还会做一些准备工作,例如将http请求的参数绑定到对应的controller方法上,执行后会返回一个ModelAndView对象,如果不是跳转页面的话,那就会返回一个被@ResponseBody注解修饰的对象,或者是其他类型。
6.DispatcherServlet然后处理Handler的返回结果
十五,过滤器和拦截器有什么区别啊
1.所属的层次不同:过滤器是属于Servlet的规范的一部分,属于Web容器层面,
而拦截器是属于Spring的一部分,属于框架层面的
2.拦截范围不同:过滤器可以拦截一切web请求,包括静态资源,
而拦截器只可以拦截DispatcherServlet的访问,即Controller方法的请求
3.实现的方式不同:过滤器需要实现Filter接口,需要标准的Servlet配置方式进行注册,或者使用Springboot中的Component注解,
而拦截器则需要实现HandlerInterceptor接口,然后再配置类中实现WebMvcConfigration接口重新addInterceptor方法进行注册。
以上就是此次面试的所有题目