![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java面经
java面经
咖啡只喝手磨
这个作者很懒,什么都没留下…
展开
-
【描述一下Spring 的事务管理 】
Transactional**可以加在类和方法上,但是无论是添加在类上还是方法上,Spring都要为这个类创建代理。来达到在方法执行前能开启事务。方法执行后提交事务的效果,是AOP的一种体现。降低用代码进行事务管理的复杂度。需要做的就是添加**@Transactional。这里的事务是狭义概念的数据库事务。原创 2023-11-29 19:30:07 · 358 阅读 · 0 评论 -
【Spring是如何解决循环依赖】
3,当创建 A的原始对象后,并把它包装成工厂对象放到三级缓存中,接下来就该填充对象属性了,这时候发现依赖了B,接着就又去创建B,同样的流程,创建完B填充属性时又发现它依赖了A又是同样的流程,不同的是:这时候可以在三级缓存中查到刚放进去的原始对象A(放入二级缓存,并从三级缓存中移除)。所以不需要继续创建,用它注入 B,完成 B的创建,既然 B创建好了,所以 A就可以完成填充属性的步骤了,接着执行剩下的逻辑,闭环完成。2,每次创建 bean之前,我们都会从缓存中查下有没有该bean,因为是单例,只能有一个。原创 2023-11-29 19:07:18 · 308 阅读 · 0 评论 -
【谈谈你对Spring的理解】
传统的 java 开发模式中,当需要一个对象时,我们会自己使用 new 调用构造方法创建一个对象。而在 spring 开发模式中,spring 容器使用了工厂模式为我们创建了所需要的对象,不需要我们自己创建了,直接调用spring 提供的对象就可以了,这是控制反转的思想。,在面向对象编程(OOP)思想中,我们将事物纵向抽成一个个的对象。,依赖注入是指在 Spring IOC 容器创建对象的过程中,将所依赖的对象通过配置进行注入。Spring是一个开源,IOC和AOP框架,是为简化企业级应用开发而生的。原创 2023-11-29 16:21:32 · 497 阅读 · 0 评论 -
【SpringMVC中如何返回JSON数据】
3、通过在请求处理方法上使用@ResponseBody注解,对Handler方法返回的结果进行转换。2、在请求处理的方法中将返回值改为具体返回的数据类型,例如数据的集合类List等。1、在项目中加入json转换的依赖,例如jackson。原创 2023-11-29 15:57:36 · 309 阅读 · 0 评论 -
【volatile与synchronized关键字】
是JAVA提供的,保证了共享变量的可见性;被volatile关键字修饰的变量,如果值发生了变化,其他线程立即可见,避免出现脏读现象。原创 2023-11-29 15:39:41 · 370 阅读 · 1 评论 -
【HashMap】
HashMapjdk8.0以后可以是红黑树单链表长度大于8时会变成红黑树,单链表长度小于6时,又会变成单链表链地址法除留余数法直接用hashCode取余,高位的数起不到作用,所有利用异或高16位来增加多样性原创 2023-11-09 12:49:09 · 19 阅读 · 0 评论 -
【Java注解与反射】
学习获取类的信息、操作他们1、反射第一步:加载类,获取类的字节码:Class对象2、获取类的构造器:Constructor对象3、获取类的成员变量:Field对象4、获取类的成员方法:Method 对象首先得获取class对象初始化对象返回获取成员变量的作用:反射的基本作用?原创 2023-11-25 21:44:36 · 365 阅读 · 0 评论 -
【SpringMVC 的工作流程】
3.HandlerMapping 根据请求的url找到具体的处理器,生成处理器对象和处理器拦截器(如果有则生成),返回处理器执行链给DispatcherServlet。2.DispatcherServlet 收到请求后,调用HandlerMapping处理器映射器,请求后去Handler(即方法)。7.HandlerAdaper将Handler执行结果ModelAndView返回给DispatcherServlet;4.DispatcherServlet 调用HandlerAdapter处理器适配器;原创 2023-11-29 15:10:19 · 366 阅读 · 1 评论 -
【Java多线程】
用final修饰线程复用原创 2023-11-21 17:05:09 · 24 阅读 · 0 评论