
java八股文
文章平均质量分 90
java八股文相关
qq_45923849
这个作者很懒,什么都没留下…
展开
-
java八股文之企业场景
如果一个接收者不能处理某个请求,它会把这个请求传给下一个接收者,以此类推。这种模式非常适合用于实现过滤器或拦截器等应用场景,也可以用来处理GUI事件、web请求预处理等。后台的管理系统,最常见的就是RBAC模型来指导实现权限,RBAC(Role-BasedAccessControl)就是基于角色的访问控制。策略模式是一种行为设计模式,核心思想是将一组算法封装成独立的类,并让它们彼此之间可以互换。使用非对称加密(或对称加密),给前端一个公钥让他把数据加密后传到后台,后台负责解密后处理数据。原创 2025-03-28 19:36:25 · 843 阅读 · 0 评论 -
java八股文之JVM
线程共享的区域:主要用来保存对象实例,数组等,内存不够则抛出OutOfMemoryError异常。组成:年轻代+老年代– 年轻代被划分为三部分,Eden区和两个大小严格相同的Survivor区,一个对象在Eden区存活后就会放入Survivor区– 老年代主要保存生命周期长的对象,一个对象在多次Survivor区存活后就会放入老年区Jdk1.7和1.8的区别– 1.7中有有一个永久代,存储的是类信息、静态变量、常量、编译后的代码。原创 2025-03-26 21:34:02 · 2082 阅读 · 0 评论 -
java八股文之并发编程
一段很长的时间内都只被一个线程使用锁,可以使用了偏向锁,在第一次获得锁时,会有一个CAS操作,之后该线程再获取锁,只需要判断markword中是否是自己的线程id即可,而不是开销相对较大的CAS命令。Java中的synchronized有偏向锁、轻量级锁、重量级锁三种形式,分别对应了锁只被一个线程持有、不同线程交替持有锁、多线程竞争锁三种情况。底层使用的Monitor实现,里面涉及到了用户态和内核态的切换、进程的上下文切换,成本较高,性能比较低。注:所有种类本质为线程池的默认创建,得到不同的侧重的线程池。原创 2025-03-23 22:09:38 · 1071 阅读 · 0 评论 -
java八股文之消息中间件
其核心在于通过选举一个“领导者”来处理客户端请求,并将这些请求作为日志条目复制到其他“跟随者”节点,以确保所有节点数据的一致性。每个节点在任一时刻都处于三种状态之一:领导者、跟随者或候选人(用于选举新领导者)。Raft通过任期(逻辑时钟)和严格的日志复制规则保证了即使部分节点故障,系统仍能保持一致性和可用性。在kafka中,一个topic的数据存储在不同的分区中,每个分区都有按照顺序存储的偏移量,这就导致如果一个消费者关联了多个分区,分区就不能保证连续性。Kafka高可用机制主要体现在两个方面。原创 2025-03-06 22:44:20 · 737 阅读 · 0 评论 -
java八股文之微服务
创建类实现IRule接口,可以指定负载均衡策略(全局)在客户端的配置文件中,可以配置某一个服务调用的负载均衡策略(局部)原创 2025-03-01 21:36:54 · 898 阅读 · 0 评论 -
java八股文之常见的集合
数组的首地址+索引乘以存储数据的类型大小在根据数组索引获取元素的时候,会用索引和寻址公式来计算内存所对应的元素数据。如果数组的索引从1开始,寻址公式中,就需要增加一次减法操作(数组的首地址-1),对于CPU来说就多了一次指令,性能会降低。原创 2025-03-19 23:35:35 · 639 阅读 · 0 评论 -
java八股文之框架
Spring框架中的Bean默认是单例的,不是线程安全的。因为一般在Spring的bean的中都是注入无状态的对象,没有线程安全问题,如果在bean中定义了可修改的成员变量,是要考虑线程安全问题的,可以使用多例或者加锁来解决。原创 2025-02-28 23:38:42 · 550 阅读 · 0 评论 -
java八股文之Redis
当修改了数据库的数据同时也要同时更新redis缓存的数据,缓存好数据库的数据要保持一致保证双写一致:1. 延时双删:更新数据前先删除缓存,数据更新完成后,等一会儿再删除一次缓存,但是延时多少不好确定,依然有不一致的可能。当一直性要求较高时,可以使用Redis提供的读写锁。在进行读操作时添加共享锁,可以保证读读不互斥,读写互斥。当进行写操作时,使用排它锁,读写,读读都互斥,来保证双写一致。需要注意的是,读方法和写方法需要使用的是同一把锁。3. 使用MQ通知:一致性要求不是特别高时,可以使用异步通知的思想。原创 2025-02-16 21:28:37 · 1102 阅读 · 0 评论 -
java八股文之数据库
索引(index)是帮助MySQL高效获取数据的数据结构(有序)提高数据检索的效率,降低数据库的IO成本(不需要全表扫描)通过索引列对数据进行排序,降低数据排序的成本,降低了CPU的消耗MySQL的InnoDB引擎采用的B+树的数据结构来存储索引相对于红黑树,B+数阶数更多,是一个矮胖书,所以路径更短磁盘读写代价B+树比B树更低,非叶子节点只存储指针,叶子阶段存储数据B+树便于扫库和区间查询,叶子节点是一个双向链表将数据存储和数据放在了一起,索引结构的叶子节点保存了一整行的数据。原创 2025-02-23 19:03:56 · 520 阅读 · 0 评论