阿粉最近迷上了 Redis,为什么呢?感觉 Redis 确实功能很强大呀,一个基于内存的 Key-Value 存储的数据库,竟然有这么多的功能,而阿粉也要实实在在的把 Redis 来弄一下,毕竟面试的时候,Redis 可以说是一个非常不错的加分项。分布式锁为什么需要分布式锁?目前很多的大型项目全部都是基于分布式的,而分布式场景中的数据一致性问题一直是一个不可 ......
333
0
0
2022-12-28
一、介绍昨天介绍了API接口设计token鉴权方案,其实token鉴权最佳的实践场景就是在单点登录系统上。在企业发展初期,使用的后台管理系统还比较少,一个或者两个。以电商系统为例,在起步阶段,可能只有一个商城下单系统和一个后端管理产品和库存的系统。随着业务量越来越大,此时的业务系统会越来越复杂,项目会划分成多个组,每个组负责各自的领域,例如:A组负责商城系统 ......
365
0
0
2022-12-28
在这篇文章中,我将会介绍23种设计模式,并附带了实例,希望对您有帮助。文章目录抽象工厂模式工厂方法模式建造者模式原型模式单例模式适配器模式桥接模式组合模式装饰者模式外观模式享元模式代理模式责任链模式命令模式迭代器模式中介者模式备忘录模式观察者模式状态模式策略模式模版方法模式访问者模式单例模式代码代理模式示例代码享元模式示例代码装饰者模式示例代码观察者模式示 ......
459
0
0
2022-12-27
    我们在实际开发中,肯定会用到树结构,如部门树、菜单树等等。Java后台利用递归思路进行构建树形结构数据,返回给前端,能以下拉菜单等形式进行展示。今天,咱们就来说说怎么样将List集合转换成TreeList。一、jar依赖       &nbs ......
389
0
0
2022-12-27
MyBatis简单介绍【1】MyBatis是一个持久层的ORM框架【Object Relational Mapping,对象关系映射】,使用简单,学习成本较低。可以执行自己手写的SQL语句,比较灵活。但是MyBatis的自动化程度不高,移植性也不高,有时从一个数据库迁移到另外一个数据库的时候需要自己修改配置,所以称只为半自动ORM框架。传统JDBC介绍【1】 ......
435
0
0
2022-12-27
要想要理解透彻JMM(Java内存模型),首先我们要从CPU缓存模型和指令重排序讲起!首先我们讲一下CPU缓存模型为什么要弄一个CPU高速缓存呢?类比我们开发网站系统使用缓存(比如Redis)是为了解决程序处理速度和访问常规关系型数据库速度不对等的问题。CPU缓存则是为了解决CPU处理速度和内存处理速度不对等的问题。我们甚至可以把内存看作外存的高速缓存,程序 ......
303
0
0
2022-12-27
内部类(下篇)前言一、匿名内部类二、Lambda表达式1.背景2.函数式接口3.Lambda表达式的语法4.Lambda表达式的基本使用(1)无返回值无参数(2)无返回值有参数(3)有返回值无参数(4)有返回值有参数总结前言上一篇介绍了内部类的前三种类型,链接如下:《JAVA EE》内部类(上篇)接下来将详细介绍匿名内部类以及Lambda表达式的用法和注意事 ......
271
0
0
2022-12-27
内部类(上篇)前言一、成员内部类二、静态内部类三、方法内部类总结前言内部类的设计也是一种封装的思想,封装体现的就是保护性和易用性。内部类可分为四大类:成员内部类静态内部类方法内部类匿名内部类内部类存在的原因:内部类和外部类可以方便地访问彼此的私有域(属性和方法)内部类使用private关键字修饰可以对外部类的外部完全隐藏(内部类就当作外部类的属性看待)内部类 ......
266
0
0
2022-12-27
Java 不再是最受欢迎的三大编程语言之一 根据最新的 TIOBE 指数,现在的排名是:Python 排名第一,C 第二,C++ 第三,Java 第四。2001 年以来,TIOBE 指数历史上 C++ 第一次超过了 Java。C++ 的激增,部分原因可能要归功于 2020 年 12 月发布的 C++ 20 稳定版。但在其它排行榜和调查中,Java 的表 ......
259
0
0
2022-12-25
1、两者父类不同 HashMap是继承自AbstractMap类,而Hashtable是继承自Dictionary类。不过它们都实现了同时实现了map、Cloneable(可复制)、Serializable(可序列化)这三个接口。2、对外提供的接口不同 Hashtable比HashMap多提供了elments() 和contains() 两个方法。 elme ......
268
0
0
2022-12-22
文章目录1JVM参数1.1 标准参数1.2 -X 参数(非标准参数)1.3 -XX 参数(非Stable参数)1.3.1性能参数1.3.2行为参数1.3.3调试参数1.4其他参数(一定要背下来)2设置参数的方式3 五大常用命令(一定要背下来)3.1 JPS3.2 jinfo3.3 jstat3.4 jstack 堆栈信息3.5jmap4调优常用工具4.1jc ......
304
0
0
2022-12-22
文章目录SerialParNewParallel ScavengeSerial OldParallel OldCMS (Concurrent Mark Sweep)G1理解吞吐量和停顿时间如何选择合适的垃圾收集器呢首先我们要知道垃圾收集器有三种类型:串行收集器 Serial 和 Serial Old 只能有一个垃圾回收线程执行,用户线程暂停。(适用于内存较小 ......
291
0
0
2022-12-22
文章目录标记—清除算法标记—复制算法标记—整理算法分代收集介绍完怎样判定一个对象是不是垃圾之后,就该瞅一瞅垃圾是怎样回收的了 首先我们要知晓,垃圾收集是建立在两个分代假说之上的:①弱分代假说:绝大多数对象都是朝生夕灭的 ②强分代假说:熬过越多次垃圾收集的对象就越难消亡收集器应该将Java堆划分出不同的区域,然后将回收对象依据其年龄分配到不同的区域中存活。给出 ......
288
0
0
2022-12-22
文章目录1引用计数法2可达性分析3一个对象真的非死不可吗?3.1对象的自我救赎3.2finalize的作用3.3finalized的问题3.4finalize的执行过程(生命周期)学过了JVM的内存模型,了解了JVM将其管理的内存抽象为不同作用的内存工作区域,这个区域是连续,然后分为五个部分,各司其职。 现在,让我们来学习一下JVM中的重头戏,垃圾收集想要把 ......
280
0
0
2022-12-22
文章内容引用自 咕泡科技 咕泡出品,必属精品文章目录1ThreadLocal使用2ThreadLocal原理源码分析2.1get方法2.1.1入口2.1.1.1ThreadLocal中的ThreadLocalMap对象2.1.1.2强引用2.1.1.3软引用2.1.1.4弱引用2.1.1.5虚引用2.1.2 初始化方法初始化创建Map2.2Set方法2.2. ......
309
0
0
2022-12-22