JD
● 怎么学的java
● JVM new对象、构造方法之类
● set了解多少
无序、不可重复,分成HashSet(基于HashMap实现)、LinkedHashSet、TreeSet
● 为什么Set是无序的?
根本原因是底层是哈希表存储
补充:hash算法的执行过程:
● 怎么理解非线程安全和线程安全的
(非线程安全:多个线程在执行同一段代码的时候,有可能出现多个线程先后更改数据得到的是脏数据)
(线程安全与之相对应,由于加锁机制,会使得每次执行的结果和单线程执行的结果是一样的)
(例如火车票的超卖)
● Spring学过什么框架都
(ssh、ssm、SpringBoot)
● Spring 容器说一下
(Beanfactory、ApplicationContext都是Spring的接口,用于获取Spring容器中的Bean,)
(不同点在于1、对bean的预加载方式不同,beanfactory是懒加载,applycationcontext是预加载
2、Beancontext只提供IOC/DI的支持,applycationcontext继承了bean工厂,且支持AOP)
● Spring的执行流程(从前端输入)
用户发送请求到前端控制器(DispatcherServlet)。
前端控制器 ( DispatcherServlet ) 收到请求调用处理器映射器 (HandlerMapping),去查找处理器(Handler)。
处理器映射器(HandlerMapping)找到具体的处理器(可以根据 xml 配置、注解进行查找),生成处理器对象及处理器拦截器(如果有则生成)一并返回给 DispatcherServlet。
前端控制器(DispatcherServlet)调用处理器适配器(HandlerAdapter)。
处理器适配器(HandlerAdapter)去调用自定义的处理器类(Controller)。
自定义的处理器类(Controller)将得到的参数进行处理并返回结果给处理器适配器(HandlerAdapter)。
处理器适配器 ( HandlerAdapter )将得到的结果返回给前端控制器 (DispatcherServlet)。
前端控制器(DispatcherServlet )将 ModelAndView 传给视图解析器 (ViewReslover)。
视图解析器(ViewReslover)将得到的参数从逻辑视图转换为物理视图并返回给前端控制器(DispatcherServlet)。
前端控制器(DispatcherServlet)调用物理视图进行渲染并返回。
前端控制器(DispatcherServlet)将渲染后的结果返回
● MySQL的执行过程
● 客户端先发送查询语句到服务器
● 服务器检查缓存,如果存在则直接返回
● 进行sql解析,生成解析树,再预处理,生成第二个解析树,最后再根据真正的解析树,生成最后的执行计划
● 根据执行计划,调用存储引擎的API来执行查询
● 将结果返回给客户端
● 下面函数的返回结果的数学期望值为多少?(答案是一个准确的数值
public double calculate_it() { double x = 0.0d; double y = 0.0d; int total = 0; for(int i = 0;i<7000000;i++) { x = Math.random(); y = Math.random(); if(Math.sqrt(x*x+y*y) < 1) total++; } return total/7000000.0;}#京东Java实习##java实习##日常实习#