- 博客(19)
- 收藏
- 关注
原创 闲聊ArrayList的那些事儿
ArrayList是一个大小可以调整的动态数组,它可以允许所有元素(包括null),它提供了增加、删除、修改、查找方法。ArrayList的数据结构是数组,它会占据一块连续的内存空间,容量是数组的长度(length),增加、删除、查找的时间复杂度是O(n),根据索引访问元素的时间复杂度是O(1)。
2023-12-09 19:58:03
27
原创 五分钟,带你彻底掌握 MyBatis 缓存机制!
MyBatis 是常见的 Java 数据库访问层框架。在日常工作中,开发人员多数情况下是使用 MyBatis 的默认缓存配置,但是 MyBatis 缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。个人在业务开发中也处理过一些由于 MyBatis 缓存引发的开发问题,带着个人的兴趣,希望从应用及源码的角度为读者梳理 MyBatis 缓存机制。
2023-12-09 19:51:31
33
原创 SpringSecurity 全限验证实战!
Spring Security 是 Spring 生态的一个成员,提供了一套 Web 应用安全性的完整解决方案。Spring Security 旨在以一种自包含的方式进行操作,因此你不需要在 Java 运行时环境中放置任何特殊的配置文件。这种设计使部署极为方便,因为可以将目标工件(无论是 JAR 还是 WAR)从一个系统复制到另一个系统,并且它可以立即工作。spring Security,这是一种基于 Spring AOP 和 Servlet 过滤器的安全框架。
2023-12-09 19:45:44
29
原创 手撸了一个API网关,代码已上传,自取~
千里之行始于足下,开始以为写一个网关会很难,但当你实际开始行动时就会发现其实没那么难,所以迈出第一步很重要。
2023-12-09 19:32:09
36
原创 RocketMQ 如何保证消息不丢失
发送消息阶段涉及到Producer到broker的网络通信,因此丢失消息的几率一定会有,那RocketMQ在此阶段用了哪些手段保证消息不丢失了(或者说降低丢失的可能性)。手段一:提供SYNC的发送消息方式,等待broker处理结果。我们在调用producer.send方法时,不指定回调方法,则默认采用同步发送消息的方式,这也是丢失几率最小的一种发送方式。手段二:发送消息如果失败或者超时,则重新发送。发送重试源码如下,本质其实就是一个for循环,当发送消息发生异常的时候重新循环发送。
2023-12-08 19:44:16
550
原创 浅谈 SpringMVC 执行过程
通过深入分析Spring源码,我们知道Spring框架包括大致六大模块, 如Web模块,数据库访问技术模块,面向切面模块,基础设施模块,核心容器模块和模块,其中,在Spring框架的Web模块中,又包含很多前端技术,如SpringMVC,Spring WebSocket,Spring WebPortlet等,在本篇文章中,我们主要分析SpringMVC模块。
2023-12-08 19:34:49
17
原创 实战!SpringCloud 微服务改造项目过程
SpringCloud 的核心是 SpringBoot,相比较于传统的 Spring,SpringCloud 具有很多优点
2023-12-08 19:13:39
123
原创 一篇读懂Volatile关键字
volatile是java的一个关键字,也是面试经常问的一个热门知识,主要有三个特性:1.保证可见性。2.不保证原子性。3.禁止指令重排序。
2023-12-07 22:27:20
19
原创 实战!Redis 分布式锁的 7 种实现方式
分布式锁其实就是,控制分布式系统不同进程共同访问共享资源的一种锁实现的方式,如果不同的系统或者同一个系统的不同主机之间共享了某个临界资源,往往需要互斥来防止彼此干扰,以保证一致性互斥性:任意时刻,只有一个客户端能持有锁锁超时释放:持有锁超时,可以释放,防止不必要的资源浪费,也可以防止死锁可重入性:可重入锁,也叫做递归锁,指的是在同一线程内,外层函数获得锁之后,内层递归函数仍然可以获取到该锁。
2023-12-07 20:29:49
438
1
原创 Java 简介超详细整理,适合新手入门
Java 是由 Sun Microsystems 公司于 1995 年 5 月推出的 Java 面向对象程序设计语言和 Java 平台的总称;
2023-12-07 20:15:35
56
原创 JDK1.8 ConcurrentHashMap 核心源码(面试重点)
ConcurrentHashMap和HashMap一样,是一个存放键值对的容器。使用hash算法来获取值的地址,因此时间复杂度是O(1)。查询非常快。同时,ConcurrentHashMap是线程安全的HashMap。主要通过对指定的Node节点加锁,来保证数据更新的安全性。
2023-12-06 21:21:43
64
1
原创 HashMap超全源码详解(JDK1.8)
HashMap基于哈希表的Map接口实现,是以key-value存储形式存在。JDK1.8版本中其数据结构是:数组+链表+红黑树的形式。下面详解源码及解决的问题。接口方法:成员变量:1.put方法源码及总结总结:2.get方法源码及总结总结:3.resize(扩容)方法源码及总结总结:由JDK1.7的,数组 + 链表JDK1.8变为:数组 + 链表 + 红黑树具体触发条件为:某个链表连接的个数大于8,并且总的容量大于64的时候,那么会把原来的链表转换成红黑树。这么做的好处是什么:红黑树除了添加元素外,
2023-12-05 20:27:26
35
原创 2023最新一线企业Java面试题+经典八股文
身为Java程序员的我们就更不用说了,上班8小时需要做好本职工作,下班后还要不断提升技能、技术栈,才能从容应对现在互联网公司的面试!但事实是:很多Java程序员,对自身是没有一个清楚的认知的,甚至不知道自己短板在哪?我今天写这篇文章的意义就在于劝诫大家如果面试准备阶段没有方向的话,不妨暂时停下来,看一下自己。如果大家目前确实脑子里没有什么思路,LZ今天就给大家分享一份包含了23个知识点,从基础到进阶都有的2023年互联网大厂(Java岗)面试真题汇总。即可获取免费下载方式。
2023-12-04 20:50:30
19
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人