随笔分类 -  Java面试题

摘要:在Spring Boot应用程序中,捕获全局异常是一个重要的方面,它可以帮助我们处理在应用程序运行时可能发生的各种错误情况。通过适当地捕获和处理这些异常,我们可以改善用户体验并及时采取必要的措施。 阅读全文
posted @ 2024-05-22 11:48 猫鱼吐泡泡 阅读(210) 评论(0) 推荐(0) 编辑
摘要:循环依赖通常发生在两个或多个Spring Bean之间,它们通过构造器、字段(使用@Autowired)或setter方法相互依赖,从而形成一个闭环。Spring通过三级缓存机制、@Lazy注解以及避免构造器循环依赖等方式来解决循环依赖问题。这些机制使得Spring容器能够更加灵活地处理bean之间的依赖关系,提高系统的可维护性和可扩展性。 阅读全文
posted @ 2024-05-16 17:31 猫鱼吐泡泡 阅读(335) 评论(0) 推荐(2) 编辑
摘要:@Autowired是Spring框架提供的注解,@Resource是Java EE 5规范提供的注解。 @Autowired默认按照类型自动装配,而@Resource默认按照名称自动装配。 @Autowired支持@Qualifier注解来指定装配哪一个具有相同类型的bean,而@Resource 默认按照名称进行注入,如果指定了name或者type属性,则会按照指定的名称或者类型来查找对应的Bean实例进行注入。 阅读全文
posted @ 2024-05-16 08:06 猫鱼吐泡泡 阅读(548) 评论(0) 推荐(2) 编辑
摘要:Spring是一个基于Java的企业级应用程序开发框架,它使用了多种设计模式来实现其各种特性和功能。本文将介绍一些在Spring中使用的常见设计模式以及相应的代码示例和说明。 阅读全文
posted @ 2024-05-14 18:54 猫鱼吐泡泡 阅读(574) 评论(0) 推荐(1) 编辑
摘要:当一个线程被启动后,如果再次调start()方法,将会抛出IllegalThreadStateException异常。 这是因为Java线程的生命周期只有一次。调用start()方法会导致系统在新线程中运行执行体,但是如果线程已经结束,则不能再次使用,需要重新创建一个新的线程对象并调用start()方法。 阅读全文
posted @ 2024-05-13 09:45 猫鱼吐泡泡 阅读(192) 评论(0) 推荐(0) 编辑
摘要:在Java中,线程池中工作线程出现异常的时候,默认会把异常往外抛,同时这个工作线程会因为异常而销毁,我们需要自己去处理对应的异常,异常处理的方法有几种:在传递的任务中去处理异常,对于每个提交到线程池中的执行的任务,可以提前通过异常进行捕获,这样即便出现了异常,也不会影响线程池中的工作线程,使用Future来捕获异常结果,在线程池中提供了一个submit(Callable 阅读全文
posted @ 2024-05-12 12:06 猫鱼吐泡泡 阅读(338) 评论(0) 推荐(1) 编辑
摘要:Spring Bean是单例模式,即在整个应用程序上下文中只有一个实例。在多线程环境下,Singleton Scope Bean可能会发生线程安全问题。Spring Bean是否线程安全取决于Bean的作用域和Bean本身的实现。在使用Singleton Scope Bean时需要特别注意线程安全问题,而Prototype Scope Bean则可以放心地在多个线程中使用。 阅读全文
posted @ 2024-05-11 09:55 猫鱼吐泡泡 阅读(551) 评论(0) 推荐(0) 编辑
摘要:在Spring框架中,@PostConstruct注解、init-method属性、以及afterPropertiesSet()方法通常用于初始化Bean的逻辑。它们都提供了在Bean创建和初始化完成后执行的方法,但执行顺序有所不同。 阅读全文
posted @ 2024-05-10 12:08 猫鱼吐泡泡 阅读(1291) 评论(0) 推荐(0) 编辑
摘要:Spring的IOC(控制反转)是一种设计模式,它允许开发者将对象的创建和管理交给Spring框架来完成。在Spring中,IOC允许开发者将对象依赖关系从代码中分离出来,从而使代码更加灵活、可重用和易于管理。 IoC 全称Inverse of Control(反向控制或控制反转)。 在类和类之间存 阅读全文
posted @ 2024-04-28 10:26 猫鱼吐泡泡 阅读(543) 评论(0) 推荐(0) 编辑
摘要:在Java开发中,我们经常需要获取和处理时间,这需要使用到各种不同的方法。其中,使用SimpleDateFormat类来格式化时间是一种常见的方法。虽然这个类看上去功能比较简单,但是如果使用不当,也可能会引发一些问题。 阅读全文
posted @ 2024-04-26 11:57 猫鱼吐泡泡 阅读(563) 评论(2) 推荐(0) 编辑
摘要:在Java中,volatile关键字是一种特殊的修饰符,用于确保多线程环境下的变量可见性和顺序性。当一个变量被声明为volatile时,它可以确保以下两点: 内存可见性:当一个线程修改了一个volatile变量的值,其他线程会立即看到这个改变。这是因为volatile关键字会禁止CPU缓存和编译器优 阅读全文
posted @ 2024-04-23 15:39 猫鱼吐泡泡 阅读(194) 评论(0) 推荐(0) 编辑
摘要:ThreadLocal是Java中用于解决多线程共享变量导致的线程安全问题的一种机制。它为每个线程分配一个独立的变量副本,从而避免了线程间的数据竞争。这个我们从上一篇文章《Java面试题:请谈谈对ThreadLocal的理解?》中已经了解。然而,如果使用不当,ThreadLocal也可能导致内存泄露。 阅读全文
posted @ 2024-04-22 08:03 猫鱼吐泡泡 阅读(564) 评论(0) 推荐(0) 编辑
摘要:ThreadLocal是一种特殊的变量存储机制,它提供了一种方式,可以在每个线程中保存数据,而不会受到其他线程的影响。这种机制在多线程编程中非常有用,因为它允许每个线程拥有自己的数据副本,从而避免了数据竞争和线程之间的干扰,以空间换时间。 在Java中,ThreadLocal的实现主要涉及到三个类:ThreadLocal、ThreadLocalMap和WeakReference。ThreadLocal类是核心类,用于保存线程局部变量,并提供相应的访问方法。ThreadLocalMap是一个哈希表,用于存储每个线程的本地变量。WeakReference类是一个辅助类,用于处理弱引用问题。 阅读全文
posted @ 2024-04-21 07:47 猫鱼吐泡泡 阅读(279) 评论(0) 推荐(0) 编辑
摘要:HashMap 是一种基于哈希表的动态数据结构,它允许使用任意不可变对象作为键(key)来存储和检索数据。然而,在某些情况下,使用对象作为 HashMap 的键可能会遇到一些问题。首先,我们需要明确对象作为 HashMap 的键需要满足一些条件:不可变性:对象的属性不能被修改,因为如果属性被修改,那么原有的键值对在哈希表中就会失效。可哈希性:对象必须能够被哈希,即它的哈希码必须是确定的,且在对象被创建后不会改变。 阅读全文
posted @ 2024-04-20 19:18 猫鱼吐泡泡 阅读(647) 评论(0) 推荐(0) 编辑
摘要:Spring事务失效的原因有哪些? 阅读全文
posted @ 2021-12-20 21:26 猫鱼吐泡泡 阅读(1780) 评论(0) 推荐(0) 编辑
摘要:阿里面试题: (a,b,c)组合索引, 查询语句select...from...where a=.. and c=..走索引吗? 阅读全文
posted @ 2021-12-19 09:59 猫鱼吐泡泡 阅读(1947) 评论(0) 推荐(0) 编辑
摘要:当我们面试Java开发岗位时,面试官问的频率出现最多的问题,就是这个HashMap,不管是传统型公司还是互联公司,HashMap是必问的,所以作者爆肝整理了HashMap的23个问题以及答案,请查收! 阅读全文
posted @ 2021-09-13 22:03 猫鱼吐泡泡 阅读(354) 评论(0) 推荐(0) 编辑
摘要:面试官Q1:请问String s = new String("xyz");产生了几个对象? 对于这个Java面试题,老套路先上代码: 打印结果如下: 上面程序中的"=="是判断两个对象引用的地址是否相同,也就是判断是否为同一个对象,s1与s2 返回为true,s1与s3返回则是false。说明s1与 阅读全文
posted @ 2019-07-26 07:14 猫鱼吐泡泡 阅读(10255) 评论(4) 推荐(4) 编辑
摘要:面试官:请问HashSet有哪些特点? 应聘者:HashSet实现自set接口,set集合中元素无序且不能重复; 面试官:那么HashSet 如何保证元素不重复? 应聘者:因为HashSet底层是基于HashMap实现的,当你new一个HashSet时候,实际上是new了一个map,执行add方法时 阅读全文
posted @ 2019-07-25 06:45 猫鱼吐泡泡 阅读(1116) 评论(0) 推荐(1) 编辑
摘要:面试官:sychronized关键字有哪些特性? 应聘者: 可以用来修饰方法; 可以用来修饰代码块; 可以用来修饰静态方法; 可以保证线程安全; 支持锁的重入; sychronized使用不当导致死锁; 可以用来修饰方法; 可以用来修饰代码块; 可以用来修饰静态方法; 可以保证线程安全; 支持锁的重 阅读全文
posted @ 2019-07-24 07:09 猫鱼吐泡泡 阅读(1534) 评论(0) 推荐(1) 编辑

点击右上角即可分享
微信分享提示