Java面试题
奋斗的阿杰
这个作者很懒,什么都没留下…
展开
-
谈谈Java内存模型(JMM)以及对volatile关键字的理解
如果重排序之后的执行结果,与按 Happens-before 关系来执行的结果一致,那么这种重排序并不非法(也就是说,JMM 允许这种重排序)Java内存模式是一种虚拟机规范,Java内存模型规定线程之间的共享变量必须存储在主内存中。每个线程都有自己的工作内存,线程的工作内存保存了该线程用到的变量和主内存的副本拷贝,线程对变量的操作都在工作内存中进行。1)如果一个操作 Happens-before 另一个操作,那么第一个操作的执行结果将对第二个操作可见,而且第一个操作的执行顺序排在第二个操作之前。原创 2024-04-01 23:35:25 · 483 阅读 · 0 评论 -
Dubbo负载均衡
Dubbo负载均衡。原创 2024-03-28 22:47:53 · 777 阅读 · 0 评论 -
Java线程池七大核心参数
Java面试题线程池七大核心参数。原创 2024-01-25 23:36:41 · 812 阅读 · 1 评论 -
MySQL数据库索引失效
解决办法是直接带函数新建一个索引,length(id)作为字段新建索引。3.对索引字段进行表达式计算,例如where age+1 = 18。6.索引字段类型为varchar,但是与int类型进行匹配,比如age字段为varchar,where age>10时就不会走索引。4.联合索引中未使用最左侧索引字段,比如联合索引包含字段(name,age),我们只根据age字段进行匹配不会走索引。1.对索引字段使用左或者两侧模糊匹配时索引失效(使用右模糊匹配可以走索引)5.OR条件有一侧条件字段未使用索引。原创 2024-01-23 09:31:38 · 411 阅读 · 0 评论 -
线程和进程的区别
一个进程可以包含多个线程。进程之间的资源是相互独立,而同一进程下的线程之间可以共享进程中的资源。线程是处理器任务调度和执行的基本单位。进程是操作系统资源分配的基本单位。原创 2024-01-23 09:09:01 · 384 阅读 · 0 评论 -
HashMap原理
HashMap面试原创 2024-01-20 23:08:03 · 430 阅读 · 0 评论 -
BIO、NIO、AIO 的区别
BIO、NIO、AIO区别原创 2024-01-19 00:00:07 · 785 阅读 · 0 评论 -
synchronized 锁升级
synchronized 锁升级策略是为了减少性能消耗,提高程序执行效率。第一步:判断对象头中否是当前线程的线程ID,如果是,表示当前线程获得偏向锁,直接执行同步代码。如果不是,使用CAS自旋进行锁竞争。第三部:当自旋超过一定次数,或有其他线程来争抢时,锁会膨胀为重量级锁,除了拥有锁的线程外的其他线程全部阻塞。第二部:当一个线程已拥有偏向锁时,第二个线程通过CAS自旋来竞争锁时,此时升级为轻量级锁。synchronized 锁升级。原创 2024-01-18 00:01:51 · 728 阅读 · 0 评论 -
CAS 原理以及ABA问题
CAS 原理以及ABA问题原创 2024-01-17 00:01:44 · 415 阅读 · 0 评论 -
缓存穿透、缓存击穿、缓存雪崩以及解决方案
缓存穿透、缓存击穿、缓存雪崩以及解决方案原创 2024-01-15 23:45:26 · 434 阅读 · 0 评论 -
TCP 的三次握手和四次挥手
TCP 的三次握手和四次挥手。标志位、序列号、确认号解释。原创 2024-01-14 23:34:22 · 1248 阅读 · 0 评论 -
什么是双亲委派模型?
Java 中的类加载器包括BootstrapClassLoader(启动类加载器),ExtensionClassLoader(扩展类加载器)以及AppClassLoader(应用程序类加载器)。双亲委派的执行流程是,当类加载器进行类加载时,先判断是否存在父加载器,如果存在则调取父类加载器中的loadClass方法,直到最顶层的Bootstrap类加载器,此时开始加载类,如果自己无法加载,则使用子类加载器尝试加载。这种设计的好处是,避免类的重复加载,保证了 Java 的核心 API 不被篡改。原创 2024-01-13 01:02:26 · 445 阅读 · 0 评论 -
谈谈你对 Spring AOP 的理解
Spring AOP JDK动态代理 Cglib静态代理原创 2024-01-11 09:23:11 · 486 阅读 · 0 评论 -
算法:给你一个整数数组 nums 和一个整数k,请你统计并返回该数组中和为 k 的子数组的个数
算法:给你一个整数数组 nums 和一个整数k,请你统计并返回该数组中和为 k 的子数组的个数。用前缀和方法来解决。原创 2024-01-10 10:20:12 · 559 阅读 · 0 评论 -
Spring Bean 默认是单例的,如何保证并发安全
层的bean中定义了当前登录用户ID的类成员变量,导致客户操作时,创建人或修改人记录成其他人的ID,当时的解决方案就是增加了注解@Scope("prototype")启用原型模式。1.Bean由单例改为原型。在类上增加注解@Scope("prototype"),缺点是会增加服务器开销。在实际工作中遇到过这个问题,在。2.避免使用类成员变量。原创 2024-01-09 23:21:33 · 385 阅读 · 0 评论 -
@Autowired 和 @Resource 的区别是什么?
当一个接口存在多个实现类的情况下,@Autowired 和@Resource都需要通过名称才能正确匹配到对应的 Bean。@Autowired 可以通过 @Qualifier 注解来显示指定名称,@Resource可以通过 name 属性来显示指定名称。@Autowired 是 Spring 提供的注解。默认的注入方式为byType(根据类型进行匹配)。@Resource 是 JDK 提供的注解。默认注入方式为 byName(根据名称进行匹配)。原创 2024-01-09 22:29:40 · 630 阅读 · 0 评论 -
java面试题2024
准备换工作了,给自己定个目标,每天至少整理出一道面试题。题型会比较随机,感觉这样更容易随机到面试官要问的东西。整理时我会把我认为正确的回答写出来,比较复杂的也尽量把原理贴出来,争取做到无论为了应付面试,还是为了学习提升,都可以帮助到你。原创 2024-01-08 22:57:54 · 1237 阅读 · 0 评论 -
Spring Boot 自动装配原理
Spring Boot 自动装配原理原创 2024-01-08 22:57:14 · 554 阅读 · 0 评论