09 2020 档案
摘要:Redis提供了一系列不同的持久化选项: RDB持久化以指定的时间间隔执行数据集的时间点快照(point-in-time snapshots)。 AOF持久化记录服务器接收到的每个写入操作,这些操作将在服务器启动时再次播放,重建原始数据集。命令的记录格式与Redis协议本身的格式相同,以追加的方式记
阅读全文
摘要:我们可以使用下面三个注解来注入依赖项: @Resource–在javax.annotation包中定义,此注释是JSR-250注释的一部分,与javaee一起打包。 @Inject–在javax.inject包中定义。为了访问@inject注解,javax.inject库必须声明为Maven依赖项。
阅读全文
摘要:Spring框架建议您AOP实现上使用Spring AspectJ AOP实现,因为它为您提供了更多的控制并且易于使用。 有两种方式可以实现Spring AOP AspectJ: 基于注解(下面我们将讨论) 基于xml配置 Spring AspectJ AOP 实现提供了很多注解: @Aspect
阅读全文
摘要:众所周知,在Java中,类提供对象的蓝图,您可以从类创建对象。在Java中有许多不同的方法来创建对象。 以下是一些在Java中创建对象的方法: 1、 使用new关键字 使用new关键字是创建对象的最基本方法。这是在java中创建对象的最常见方法。几乎99%的对象都是这样创建的。通过使用这个方法,我们
阅读全文
摘要:序列化是一种将对象状态转换为字节流的机制。反序列化是使用字节流在内存中重新创建实际Java对象的反向过程。此机制用于持久化对象。 创建的字节流与平台无关。因此,在一个平台上序列化的对象可以在另一个平台上反序列化。 为了使Java对象可序列化,我们实现java.io.Serializable可序列化接
阅读全文
摘要:此类提供线程局部变量。这些变量不同于普通的对应变量,因为每访问一个(通过其get或set方法)线程都有自己独立初始化的变量副本。 基本上,除了编写不可变的类之外,它是实现线程安全的另一种方法。 由于对象不再是共享的,所以不需要同步来提高应用程序的可伸缩性和性能。 它扩展了类对象。 ThreadLoc
阅读全文
摘要:1、线程在Java中,任何时间点都存在以下任何一种状态 New Runnable Blocked Waiting Timed Waiting Terminated 下图显示了线程在任何时刻的各种状态。 2、线程的生命周期 New(新线程):创建新线程时,它处于新状态。当线程处于此状态时,线程尚未开始
阅读全文
摘要:循环链表 循环链表是一个链接列表,所有节点都连接在一起形成一个圆。结尾处没有空值。循环链表可以是单循环链表或双循环链表。 循环链表的优点:(一)任何节点都可以作为起点。我们可以从任何一点开始遍历整个列表。我们只需要在第一个被访问的节点再次被访问时停止。 (二)对队列的实现很有用。不像队列的实现,如果
阅读全文
摘要:链表是一种线性数据结构,其中的元素不存储在连续的内存位置。链接列表中的元素使用指针链接,如下图所示: 简单地说,链接列表由节点组成,每个节点包含一个数据字段和一个到列表中下一个节点的引用(链接)。
阅读全文
摘要:JVM(Java虚拟机)充当运行Java应用程序的运行时引擎。JVM实际上调用主要的方法存在于java代码中。JVM是JRE(Java运行时环境)的一部分。 Java应用程序被称为WORA(Write-Once-Run-Anywhere)。这意味着程序员可以在一个系统上开发Java代码,并且可以期望
阅读全文
摘要:这是我阅读JVM规范的注释,我画了一个图表,帮助我理解。 1、每个线程的数据区域(不共享) 每个线程的数据区域包括程序计数器寄存器、JVM堆栈和本机方法堆栈。它们都是在创建新线程时创建的。 程序计数器寄存器:用于控制每个线程的每次执行。 JVM堆栈:它包含如下图所示的帧。 原生方法栈:支持原生方法,
阅读全文
摘要:队列是一种线性结构,它遵循执行操作的特定顺序。顺序是先进先出(FIFO)。队列的一个很好的例子是客人排队在餐馆用餐,其中最先到达的客人首先被服务。堆栈(stack)和队列(queue)之间的区别在于删除。在堆栈中,我们移除最近添加的项;在队列中,移除最先添加的项。
阅读全文
摘要:stack是一种线性数据结构,它遵循执行操作的特定顺序。顺序可以是LIFO后进先出(Last In First Out)或FILO先进后出(First In Last Out)。 有许多实际的堆栈示例。考虑一个例子,在食堂里盘子一个一个叠在另一个上面。位于顶部的盘子第一个被使用,即放置在最底部位置的
阅读全文
摘要:众所周知,集合是定义明确的不同对象的集合。集合的每个成员称为集合的元素。因此,换句话说,我们可以说一个集合永远不会包含重复的元素。但是如何在Java Set接口中实现的类(例如HashSet,LinkedHashSet,TreeSet等)实现这种唯一性。在本文中,我们将讨论这种独特性背后的隐藏真理。
阅读全文
摘要:HashMap包含一个Node数组,Node可以表示具有以下对象的类: int hash K key V value Node next 现在我们来看看它是如何工作的。首先我们将看到hash的执行过程。 Hashing 哈希是使用hashCode()方法将对象转换为整数形式的过程。为了获得更好的Ha
阅读全文
摘要:HashMap是一个实现Map接口Java集合框架。HashMap的最重要特征是它具有恒定的时间性能以进行检索和插入, 决定HashMap性能的两个因素是: Initial Capacity(初始化容量) Load Factory(负载系数) 在我们解释HashMap的Initial Capacit
阅读全文