- 博客(14)
- 收藏
- 关注
转载 Java设计模式-工厂模式详解以及在JDK源码中的应用
https://blog.csdn.net/m0_65260253/article/details/127909823?spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-2-127909823-blog-131508313.235%5Ev43%5Epc_blog_bottom_relevance_base2&depth_1-utm_source=dis
2024-03-13 16:26:51 56
转载 Java实现7种单例模式 以及部分源码应用
https://blog.csdn.net/weixin_44186179/article/details/129669147
2024-03-07 20:06:04 40
原创 基于Java谈谈常用设计模式
设计模式是面向对象编程的重要组成部分,它们提供了在不同情境下解决常见问题的方法。在Java中,设计模式有助于编写更具可维护性和可扩展性的代码。在本博客中,我们介绍了一些常见的设计模式,包括单例模式、工厂模式、适配器模式、装饰器模式、观察者模式和策略模式,并提供了相应的示例代码。
2023-12-15 11:55:07 414
原创 static静态方法使用yml配置文件的值
被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。PreDestroy()方法在destroy()方法执行执行之后执行.首选要在配置类里建一个static的变量,然后使用@Value获取yml配置文件的值。最后关键就是使用@PostConstruct注解将yml中配置的值赋给本地的变量,这样就可以在静态方法里使用了。...
2022-07-20 20:07:32 2085 1
原创 @RequestHeader 和 @RequestAttribute 使用场景和区别
下面讲讲这两个注解的使用场景。使用场景: Spring MVC提供了 @RequestHeader注解,其作用是将请求头中的参数值映射到控制器的参数中。常用属性如下:name:@RequestHeader(“host”)。required:。defaultParameter:使用场景: 注意:属性和参数是不同的。很多小伙伴可能对 参数(parameter)和属性(Attribute)的区别不是很了解。简单一句话,参数是需要用户或者浏览器传,属性是我们拦截请求写入或者修改的。比如:httpServle
2022-07-05 11:01:06 4977
原创 如何实现接口的幂等性(Redis实现案例)
1.什么是幂等性 (定义) HTTP/1.1中对幂等性的定义是:一次和多次请求某一个资源对于资源本身应该具有同样的结果(网络超时等问题除外)。也就是说,其任意多次执行对资源本身所产生的影响均与一次执行的影响相同。Methods can also have the property of “idempotence” in that (aside from error or expiration issues) the side-effects of N > 0 identical requ
2021-11-14 22:07:25 3936 1
原创 CAS机制详解以及ABA问题的危害和解决方案
CAS机制详解以及ABA问题的危害和解决方案首先,先讲一下 CAS机制到底怎么运作。让我们一探究竟。1.什么是CAS机制CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。这样说或许有些抽象,我们来看一个例子:1.在内存地址V当中,存储着值为10的变量。2.此时线程1想要把变量的值
2021-10-16 18:49:16 4345 6
原创 线程简介
什么是线程现代操作系统在运行一个程序时,会创建一个进程。例如,启动一个Java程序,操作系统就会创建一个java进程。现在操作系统操作的最小单位是线程,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈、局部变量等属性,并且能够访问共享的内存变量。处理器在这些线程上高速切换,让使用着感觉到这些线程在同时执行。一个java程序的运行不仅仅是main()方法的运行,而是main线程和多个其他的线程的同时运行。为什么要使用多线程使
2020-06-23 17:15:02 173
原创 String StringBuffer StringBuilder的区别
简单的事情做到极致也是一种能力。首先,说一下目前我还没进行整理的情况下,我的理解:String 不可修改 修改后相当于又新创建创建一个字符串比如:String a = "abc";//1String a = "abd";//2实际上的操作1是:首先java虚拟机(依稀记得有个叫做字符串常量池)在堆上创建一个字符串常量。然后执行操作2 ,首先根据java虚拟机的机制,会先去字符串常量池中找有没有 abd 如果有,直接将地址赋值给引用a,如果没有则新创建一个字符串常量StringBuilder
2020-06-18 20:26:33 213
原创 mysql中的回表查询与索引覆盖
了解一下MySQL中的回表查询与索引覆盖。回表查询要说回表查询,先要从InnoDB的索引实现说起。InnoDB有两大类索引,一类是聚集索引(Clustered Index),一类是普通索引(Secondary Index)。InnoDB的聚集索引InnoDB聚集索引的叶子节点存储行记录,因此InnoDB必须要有且只有一个聚集索引。1.如果表定义了PK(Primary Key,主键),那么PK就是聚集索引。2.如果表没有定义PK,则第一个NOT NULL UNIQUE的列就是聚集索引。3.否则I
2020-06-11 19:19:30 178
原创 递归和迭代方式判断二叉树是否镜像对称小结
二叉树的一些问题,一般都能采用递归和迭代两种方式去解决。首先,***方式一:递归。采用递归解决问题,通常我们可以分解出三个角度去得出解题思路。1.明确递归结束条件2.明确递归过程3.明确短路的条件***现在我们针对判断二叉树是否镜像对称的问题,套用一下。题目描述:给定一个二叉树,检查它是否是镜像对称的。例如,二叉树 [1,2,2,3,4,4,3] 是对称的。1/ |2 2/ \ / |3443但是下面这个 [1,2,2,null,3,null,3].
2020-05-18 19:21:33 360 1
原创 二叉树的最大深度问题的两种普遍解法
二叉树的最大深度给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明: 叶子节点是指没有子节点的节点。示例题目:给定二叉树 [3,9,20,null,null,15,7],3/ 9 20/ 15 7返回它的最大深度 3 。节点的数据结构如下:/Definition for a binary tree node.public class TreeNode {int val;TreeNode left;Tre
2020-05-14 18:40:05 824
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人