
java面试
文章平均质量分 84
AAA码农烧烤
这个作者很懒,什么都没留下…
展开
-
Spring Cloud生态
参考视频。原创 2025-03-04 17:36:32 · 938 阅读 · 0 评论 -
MySQL详解
行级锁是一种锁定粒度最小的锁机制,它只对当前操作的数据行进行加锁。当一个事务对某一行数据加锁后,其他事务可以同时对其他行数据进行读写操作,只有当其他事务也需要访问被锁定的这一行数据时,才会受到锁的限制。表级锁是一种锁定粒度最大的锁机制,它对整个表进行加锁。当一个事务对某个表加锁后,其他事务无法对该表进行任何读写操作,直到锁被释放。默认存储引擎先加索引才能加外键约束外键约束后,只能新增另一张表已有的k值不支持事务回滚后,innodbtest id=1的value不变,而myisamtest减少了100,原创 2025-02-20 17:48:06 · 913 阅读 · 0 评论 -
Object类详解
主要的有getClass,hashCode,equals,clone,toString,notify,notifyAll,wait。方法时,会创建一个新的对象实例,新对象和原对象在内存中占据不同的地址,所以使用。方法比较原对象和克隆对象时,结果必然是。clone方法,浅拷贝,要使用。原创 2025-02-20 15:38:46 · 244 阅读 · 0 评论 -
jvm内存管理
当 Survivor 区中相同年龄所有对象大小的总和大于 Survivor 区空间的一半时,年龄大于或等于该年龄的对象就可以直接进入老年代,而不需要等到达到最大年龄阈值。在每次 Minor GC 时,如果对象没有被回收,就会被移动到 Survivor 区,并且对象的年龄会加 1。例如,当运行一个内存消耗较大的 Java 程序时,如果不限制堆内存大小,程序可能会不断申请内存,最终导致系统出现内存不足的情况。Java 8 引入了元空间,元空间使用的是本地内存,默认情况下,元空间的大小仅受限于系统的可用内存。原创 2025-02-20 12:38:29 · 881 阅读 · 0 评论 -
Netty使用
NIO(New I/O)NIO是一种同步非阻塞的I/O模型,在Java 1.4 中引入了NIO框架,对应 java.nio 包,提供了 Channel , Selector,Buffer等抽象。Netty 是一个基于 Java NIO 的高性能网络编程框架,可用于快速开发可维护、高性能的网络服务器和客户端。在 Java 7 中引入了 NIO 的改进版 NIO 2,它是异步非阻塞的IO模型。BIO(Blocking I/O)同步阻塞I/O模式,数据的读取写入必须阻塞在一个线程内等待其完成。原创 2025-02-20 11:21:49 · 319 阅读 · 0 评论 -
反射机制详解
Java 反射机制是指在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为 Java 语言的反射机制。原创 2025-02-20 10:58:31 · 213 阅读 · 0 评论 -
线程池介绍
当有 6 个任务提交时,3 个核心线程会先执行 3 个任务,另外 2 个任务会被放入任务队列,第 6 个任务由于队列已满,会创建一个新线程(此时线程总数达到 4)来执行该任务。当线程池中的核心线程都在执行任务,并且任务队列已满时,线程池会创建新的线程来处理新提交的任务,直到线程数量达到最大线程数。当提交的任务数量超过核心线程数,且任务队列已满时,线程池会尝试创建新的线程,直到线程数量达到最大线程数。当提交的任务数量小于等于核心线程数时,线程池会创建新的线程(直到达到核心线程数)来执行这些任务。原创 2025-02-20 10:47:01 · 572 阅读 · 0 评论 -
Java锁代码解析
两个线程分别把一个变量增加10000次,理论上变量最后的值是20000,实际上小于20000counter++countercountercountercountercountercountercountercountercountercounter在上述过程中,线程 1 和线程 2 都进行了一次自增操作,但由于数据竞争,内存中counter的值只增加了 1,而不是预期的 2,这就导致了数据不一致。原创 2025-02-19 23:56:33 · 1184 阅读 · 0 评论 -
Spring Cloud
Spring Cloud是一个基于Spring Boot实现的微服务架构开发工具,它提供了快速构建分布式系统中的一些常见模式的工具,例如配置管理、服务发现、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式会话和集群状态管理等。:微服务架构中,每个服务实例在启动时会向Eureka注册自己的信息,Eureka维护一个服务实例列表,客户端通过Eureka获取服务实例地址,从而实现服务之间的调用。:在调用服务时,Ribbon可以根据配置的负载均衡策略(如轮询、随机等)选择合适的服务实例。原创 2025-02-12 10:22:52 · 588 阅读 · 0 评论 -
项目场景拷打
通过分布式缓存(Redis)和负载均衡技术(Nginx),可以有效应对每秒数千次的并发请求,确保系统在高流量下稳定运行。同时,结合应用层优化、数据库优化、服务拆分、监控报警等手段,可以进一步提升系统的性能和可靠性。原创 2025-02-11 23:03:50 · 1016 阅读 · 0 评论 -
PRC框架-Dubbo
推荐使用基于HTTP/REST的框架(如Spring Boot、Flask)或JSON-RPC框架。原创 2025-02-11 22:54:06 · 891 阅读 · 0 评论 -
ORM框架(Object-Relational Mapping,对象关系映射框架)
MyBatis是一款基于Java的持久层框架,通过XML描述符或注解将对象与存储过程或SQL语句进行映射,实现了面向对象编程与关系数据库的映射。原创 2025-02-11 22:38:24 · 1000 阅读 · 0 评论 -
微服务..
Spring Cloud是一个基于Spring Boot的开源框架,用于构建分布式系统。它提供了一系列的工具和库,用于简化微服务架构的开发和部署。Spring Cloud的核心功能包括服务注册与发现、配置管理、断路器、智能路由、微代理、控制总线、全局锁、决策竞选、分布式任务调度等。2.原创 2025-02-09 22:57:41 · 813 阅读 · 0 评论 -
MySQL
1. count运算上的区别:因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好 的查询是不需要消耗多少资源的。而对于InnoDB来说,则没有这种缓存。2. 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型 更快,但是不提供事务支持。但是InnoDB 提供事务支持事务,外部键等高级数据库功能。原创 2025-02-09 21:28:07 · 1078 阅读 · 0 评论 -
JVM-Java虚拟机
JVM是Java语言的一部分,它是一个虚拟的计算机,通过它可以执行Java程序。原创 2025-02-09 21:15:49 · 784 阅读 · 0 评论 -
java多线程
通过继承AQS并实现其抽象方法(如。原创 2025-02-09 20:57:07 · 812 阅读 · 0 评论 -
消息队列MQ
削峰解耦1.通过异步处理提高系统性能(削峰、减少响应所需时间);2.降低系统耦合性。在不使用消息队列服务器的时候,用户的请求数据直接写入数据库,在高并发的情况下数据库压力剧 增,使得响应速度变慢。但是在使用消息队列之后,用户的请求数据发送给消息队列之后立即 返回,再由消息队列 的消费者进程从消息队列中获取数据,异步写入数据库。由于消息队列服务器处理速度快于数据库(消息队列也比数 据库有更好的伸缩性),因此响应速度得到大幅改善。原创 2025-02-09 20:36:57 · 600 阅读 · 0 评论 -
Spring
如果使用XML配置,Spring会解析。原创 2025-02-09 18:24:27 · 732 阅读 · 0 评论 -
Redis
所谓 Redis 的并发竞争 Key 的问题也就是多个系统同时对一个 key 进行操作,但是最后执行的顺序和我们期望的顺 序不同,这样也就导致了结果的不同!布隆过滤器,将所有可能存在的数据哈 希到一个足够大的bitmap中,一个一定不存在的数据会被 这个bitmap拦截掉,从而避免了对底层存储系统的查询压力。另外也有一个更为简单粗暴的方法(我们采用的就是这种),如果一个查询返回的数据为空(不管是数据不存在,还是系统故障),我们仍然把这个空结果进行缓存。黑客故意请求不存在的数据,所有请求落在数据库,崩掉。原创 2025-02-09 17:55:14 · 272 阅读 · 0 评论 -
Java集合源码导读
Java 集合, 也叫作容器,主要是由两⼤接⼝派⽣⽽来:⼀个是 元素;另⼀个是 Collection 接⼝,主要⽤于存放单⼀ Map 接⼝,主要⽤于存放键值对。对于 Collection 接⼝,下⾯⼜有三个主要的⼦ 接⼝:List、 Set 和 Queue。Set无序,不可重复List有序,可重复Queue有序,先进先出。原创 2025-02-08 10:54:04 · 935 阅读 · 0 评论