面试踩坑合集



前言


一、String

1、String的常用方法

length()获取字符串长度
indexOf()输入数字获取对应的字符串
substring()截取字符串输入长度
substring(str,end)截取固定长度
equals()对比
comcat字符串拼接
time清空前后空格

二、多线程

1、有几种线程池

1 newCachedThreadPool()带缓存的线程池

2 newFixedThreadPool(int nThreads),重用指定数目(nThreads)的线程,其背后使用的是无界的工作队列

3 newSingleThreadExecutor(),它的特点在于工作线程数目被限制为 1,操作一个无界的工作队列

4 newScheduledThreadPool方法创建一个按照一定时间周期来执行的线程池。

5.newWorkStealPool 一个拥有多个任务队列的线程池,可以减少连接数,创建当前可用cpu数量的线程来并行执行。

三、集合

1、hashmap和hashtable的区别

hashmao线程不安全,Hashtable线程安全,所以table的效率要小于map。

2、红黑树转链表的条件

当树的元素小于等于6时就会转为链表,增加查询速度。

四、SpringMvc

1、springMVC的处理流程

DispatcherServlet, HandlerMapping , HanderAdaptor , Controller, ViewResolver。

在这里插入图片描述
具体流程:

  1. 用户通过浏览器发起 HttpRequest 请求到前端控制器 (DispatcherServlet)。
  2. DispatcherServlet 将用户请求发送给处理器映射器 (HandlerMapping)。
  3. 处理器映射器 (HandlerMapping)会根据请求,找到负责处理该请求的处理器,并将其封装为处理器执行链 返回 (HandlerExecutionChain) 给 DispatcherServlet
  4. DispatcherServlet 会根据 处理器执行链 中的处理器,找到能够执行该处理器的处理器适配器(HandlerAdaptor) --注,处理器适配器有多个
  5. 处理器适配器 (HandlerAdaptoer) 会调用对应的具体的 Controller
  6. Controller 将处理结果及要跳转的视图封装到一个对象 ModelAndView 中并将其返回给处理器适配器 (HandlerAdaptor)
  7. HandlerAdaptor 直接将 ModelAndView 交给 DispatcherServlet ,至此,业务处理完毕
  8. 业务处理完毕后,我们需要将处理结果展示给用户。于是DisptcherServlet 调用 ViewResolver,将 ModelAndView 中的视图名称封装为视图对象
  9. ViewResolver 将封装好的视图 (View) 对象返回给 DIspatcherServlet
  10. DispatcherServlet 调用视图对象,让其自己 (View) 进行渲染(将模型数据填充至视图中),形成响应对象 (HttpResponse)
  11. 前端控制器 (DispatcherServlet) 响应 (HttpResponse) 给浏览器,展示在页面上。

五、Sql

1、把班级看做一张表,男女平均年纪和人数总数,根据性别分组

SELECT COUNT(*) AS 总人数,sex AS 性别, AVG(age) AS 平均年龄 FROM hanshu GROUP BY sex

2、Mysql事务的四大特性

原子性,一致性,隔离性,持久性。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值