
总结
文章平均质量分 65
minyunfei6
这个作者很懒,什么都没留下…
展开
-
线程池的使用:ExecutorService、CompletionService和CompletableFuture的区别
当我们需要处理批量任务的时候,经常会使用线程池来提高处理速度,但线程池的使用方式有多种,今天主要来介绍一下ExecutorService、CompletionService和CompletableFuture的区别。原创 2024-09-17 17:03:09 · 1223 阅读 · 0 评论 -
mysql可重复读不能解决幻读吗?
可重复读是数据库的四个隔离级别之一,可重复读可以保证在一个事物之内读取到的数据永远是相同的(通过mvcc表快照实现的),哪怕这期间有其它事务对数据做了修改,也不会影响当前事务的查询。原创 2024-09-07 15:51:36 · 713 阅读 · 0 评论 -
linux死锁问题和cpu使用率过高问题排查
死锁问题和cpu使用率过高都是需要我们找出对应的问题线程。死锁问题需要我们找出哪两个线程出现了死锁情况。cpu使用率过高需要我们找出哪个或哪些线程占用了大量的cpu。原创 2024-08-24 22:05:38 · 476 阅读 · 0 评论 -
Linux查看jvm相关参数以及设置调优参数
jcmd会显示出来对应的Java进程id。原创 2024-08-24 17:50:10 · 1742 阅读 · 0 评论 -
spring事件发布器ApplicationEventPublisher的使用
spring中有一个事件发布器,使用了观察者模式,当有事件发布的时候,事件监听者会立刻收到发布的事件。今天我们来介绍下这个事件发布器怎么使用。原创 2024-07-18 23:01:56 · 1536 阅读 · 0 评论 -
枚举的高阶用法之枚举里写方法以及注入spring的bean
一般我们使用枚举都是用来定义一些常量。接着再写一下根据name查找对应枚举的方法。然后比如我们的业务场景是这样的:我们有一个OrderTypeService接口及其实现类。根据接口的方法名我们一眼就知道,processPc是用来处理PC订单的;processPhone是用来处理PHONE订单的。然后再实际调用这两个方法的地方就需要我们进行if-else的判断。这里的if-else判断的缺点是:代码扩展性很差,如果以后又增加了其它订单类型,我们还需要改这里的if-else逻辑。原创 2024-07-14 22:26:42 · 1596 阅读 · 2 评论 -
ThreadLocal加切面实现线程级别的方法缓存
实现效果:当一个线程多次请求A方法时,只会触发一次A方法的实际调用,会将方法结果缓存起来,避免多次调用。原创 2024-04-06 17:51:47 · 1030 阅读 · 0 评论 -
arthas的简单使用
arthas的简单使用,watch和trace命令使用介绍。原创 2023-07-16 13:55:37 · 244 阅读 · 0 评论 -
桥接模式的学习与使用
桥接模式的核心思想是通过桥接接口(Bridge)将抽象部分和实现部分连接起来。抽象部分和实现部分可以独立地变化,而不会相互影响。这使得系统更加灵活,可以根据需求动态地选择和切换实现部分,同时也方便了系统的扩展和维护。原创 2023-06-30 18:13:53 · 365 阅读 · 0 评论 -
装饰者模式学习与使用以及优缺点
*** @Description: 具体装饰者// 这里可以对初始的颜值sign进行处理 return " 颜值是:" + sign;} }/*** @Description: 具体装饰者// 这里可以对初始的sign进行处理 return " 身高为" + sign;} }/**3. @Description: 具体装饰者// 这里可以对初始的体重sign进行处理 return " 体重为" + sign;} }原创 2023-05-14 13:14:50 · 116 阅读 · 0 评论 -
策略模式的学习和使用以及和简单工厂模式的区别
**3. @Description: 客户端// 生产女人 PersonContext personWomanContext = new PersonContext(new PersonWomanStrategy());// 生产男人 PersonContext personManContext = new PersonContext(new PersonManStrategy());} }原创 2023-05-14 10:39:31 · 106 阅读 · 0 评论 -
一文搞懂PostConstruct和ApplicationContext(ApplicationContextAware)的加载顺序
*说白了就是spring是初始化完一个bean再去初始化另一个bean;所以下面扩展一下这些bean得BeanPostProcessor接口里的方法的执行顺序是怎么样的呢?原创 2023-04-25 22:48:51 · 2590 阅读 · 0 评论 -
解释一下ThreadLocalMap的value为什么不是弱引用
引用指向值A,那么当Athreadlocal还存在其它强引用的时候,Athreadlocal不会被回收;而值A没有其它强引用,此时值A会被回收掉,当我们再通过Athreadlocal的get方法从ThreadLocalMap中获取值得时候就获取不到了,导致了值A丢失。,那么在当前线程的ThreadLocalMap中就会有一个entry键值对,entry的key是弱引用指向Athreadlocal,entry的value是强引用指向值A。比如现在我们把值A通过set方法放到了Athreadlocal里即。原创 2023-04-14 14:46:57 · 829 阅读 · 0 评论 -
java设计模式之抽象工厂模式
    ***设计模式系列***抽象工厂模式    提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体的类。抽象工厂方法模式的四个角色1、抽象工厂:它声明了一组用于创建一族产品的方法,每一个方法对一个一种产品。2、具体工厂:它实现了在抽象工厂中声明的创建产品的方法,生成一组具体产品,这些产品构成了一个产品族,每一个产品都位于某个产品等级结构中。3、抽象产品:原创 2020-12-27 16:31:45 · 164 阅读 · 0 评论 -
java设计模式之工厂方法模式
设计模式系列工厂方法模式 工厂方法模式提供一个抽象工厂接口来声明抽象工厂方法,而由其子类来具体实现工厂方法,创建具体的产品对象。 工厂方法模式的四个角色 1、抽象产品角色:它是定义产品的接口,是工厂方法模式所创建的对象的超类型,也就是产品对象的公共父类。 &原创 2020-11-29 19:00:03 · 331 阅读 · 0 评论 -
问题记录系列之读取指定配置文件得值时会被application得值(若存在)覆盖掉
问题说明:我想读取a配置文件的里的b的值 但如果application文件里也有b,这时就算我们指定了读取a配置文件最后取到的值还是application里的b的值。 代码举例说明:上面是两个配置文件 接下来我们指定读取onelog这个配置文件接下来是取到的结果可以看到 虽然我们指定了读取onelog配置文件的test的值 但最后的值还是application里的test的原创 2020-11-23 12:06:46 · 260 阅读 · 0 评论 -
java设计模式之简单工厂模式
设计模式系列简单工厂模式解释:定义一个工厂类,它可以根据参数的不同返回不同类的实例,被创建的类的实例通常都具有共同的父类。简单工厂模式一般都含有以下三个角色:1.Factory(工厂角色):该模式的核心,负责实现创建所有产品实例的内部逻辑。2.Product(抽象产品角色):它是工厂类创建的所有产品对象的父类。3.ConcreteProduct(具体产品角色):它是简单工厂模式的创建目标,所有被创建的对象都充当这个角色的某个具体类的实例。下面我将以一个例子来说明一下:使用简单工厂模式来模拟女原创 2020-11-22 17:36:31 · 267 阅读 · 0 评论 -
解决拦截器无法注入bean的问题和springboot读取配置文件map数据
说明:这两个放一起是因为同一个需求里的 ,最近要做一个下载excel的日志记录任务,因为下载Excel是早就做好了的 所以要求对原有方法尽量少的改动。我就想着用拦截器去实现在目标方法执行完之后区进行日志的记录。需要记录下载的文件名 我是把需要拦截的url和文件名放到了配置文件的map里key是url,value是文件名。所以第一个问题就是拦截器无法注入bean@Configurationpublic class AllInterceptor implements WebMvcConfigurer原创 2020-11-22 14:38:12 · 434 阅读 · 0 评论 -
get方式传递多个参数给实体类或单个参数的写法
1.代码@Datapublic class Stu { private Integer num; private String name;}@SpringBootApplication@RestController@RequestMapping("/CaiNiaoController")public class CaiNiaoController { /** * success * @param num * @return原创 2020-11-16 12:02:32 · 6329 阅读 · 0 评论 -
Guava的一些基本用法 (持续更新)
20201110内容:首先引入pom文件 com.google.guava guava 11.0.2 代码: public static void main(String[] args) { List<String> list=Lists.newArrayList(); list.add("xiaomi"); list.add("huaw原创 2020-11-10 11:43:32 · 379 阅读 · 2 评论 -
java8的Stream流的一些简单常用方法实例:limit,map,filter和foreach
public class Test { public static void main(String[] args) { //定义一个手机list List<String> phones=new ArrayList<>(); phones.add("小米");phones.add("华为");phones.add("苹果");phones.add("三星");phones.add("魅族"); System.o原创 2020-11-07 15:00:53 · 411 阅读 · 0 评论 -
Java利用反射将list里的值赋到vo实体类里
**首先贴上代码** private static GxbVO PushVo(List<String> listnr){ GxbVO vo=new GxbVO(); Field[] declaredFields = GxbVO.class.getDeclaredFields(); for(int a=0;a<listnr.size();a++...原创 2020-04-21 10:06:25 · 3603 阅读 · 5 评论 -
日期类型转字符串 oracle和java的区别
## 一、首先看一下在oracle里日期类型转字符串select sysdate,to_char(sysdate, ‘yyyy-mm-dd hh-mm-ss’) “yyyy-mm-dd hh-mm-ss”,to_char(sysdate, ‘yyyy-mm-dd hh-mi-ss’) “yyyy-mm-dd hh-mi-ss”,to_char(sysdate, ‘yyyy-mm-dd h...原创 2020-01-20 14:50:04 · 282 阅读 · 0 评论 -
力扣练手20 判断有效的括号java版
题目描述:给定一个只包括 ‘(’,’)’,’{’,’}’,’[’,’]’ 的字符串,判断字符串是否有效。有效字符串需满足:左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。注意空字符串可被认为是有效字符串。示例 1:输入: “()”输出: true示例 2:输入: “()[]{}”输出: true示例 3:输入: “(]”输出: false示例 4:输入...原创 2019-06-09 15:47:52 · 473 阅读 · 0 评论 -
力扣练手01 罗马数字转整数 java版
题目描述如下 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符 数值I 1V 5X 10L 50C 100D 500M 1000例如, 罗马数字 2 写做 II...原创 2019-05-28 22:20:12 · 389 阅读 · 0 评论 -
ExecutorService 创建固定线程池
Callable接口总结1、接口源码展示: * @see Executor@since 1.5@author Doug Lea@param the result type of method {@code call}/@FunctionalInterfacepublic interface Callable {/*Computes a result...原创 2019-04-11 11:21:15 · 1568 阅读 · 0 评论 -
jdk1.8谷歌版本中文文档
jdk1.8谷歌版本中文文档文档下载原创 2019-03-27 16:23:46 · 3414 阅读 · 3 评论 -
CentOS 7.2 64位 ftp 530 Login incorrect解决方案
1、首先检查用户名和密码是否有误2、终极方案 博主就是用该方案解决的 检查/etc/vsftpd/vsftpd.conf 配置文件查看是否有这一行 没有的话添加上去 pam_service_name=vsftpdPAM 服务名称,这里的设置决定PAM将为vsftpd使用配置文件接着检查 /etc/pam.d/vsftpd 配置文件注释掉这一行 然后再重启ft...原创 2019-04-10 10:42:53 · 2342 阅读 · 0 评论 -
Java版八皇后问题解法
package 八皇后;public class EightQueen { private static final int QUEENNUM=8; //定义皇后数量为8 private static int[] queencols=new int[QUEENNUM];//定义一个数组 表示8列棋子皇后摆放的位置 private static int solve...原创 2019-03-11 16:30:16 · 199 阅读 · 0 评论 -
Java版约瑟夫杀人法
package com.zrar.nsfwpt.sszyfw.blh;public class YSF { private static final int MAX=20;//犯人总数目 private static final int KILL=5;//每数到五,杀一人 ,杀人后从一开始重新数(用节点来代表人) public class Node{ ...原创 2019-03-11 13:47:25 · 590 阅读 · 0 评论 -
力扣14练手 编写一个函数来查找字符串数组中的最长公共前缀 java版
题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。下面是代码 两种方法 第一种自己想出来的很耗...原创 2019-06-04 22:35:35 · 4356 阅读 · 1 评论 -
力扣练手21 合并两个有序链表 java版
题目描述将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。示例:输入:1->2->4, 1->3->4输出:1->1->2->3->4->4原代码:/** * Definition for singly-linked list. * public class ListNode { * ...原创 2019-06-23 16:23:14 · 262 阅读 · 0 评论 -
史上最靠谱的阿里EasyExcel使用入门(附源码)
先附上官方的的github地址 :[https://github.com/alibaba/easyexcel]斜体样式(https://github.com/alibaba/easyexcel)2.环境搭建:需要引入的依赖:<groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId&...原创 2019-10-05 16:50:45 · 3842 阅读 · 8 评论 -
centos7.2 安装和启动docker
第一步通过 uname -r 命令查看你当前的内核版本 因为Docker 要求 CentOS 系统的内核版本不低于 3.10 ,查看本页面的前提条件来验证你的CentOS 版本是否支持 Docker第二步直接执行yum -y install docker 进行安装docker;因为Docker 软件包和依赖包已经包含在默认的 CentOS-Extras 软件源里第三步...原创 2019-09-12 10:08:30 · 178 阅读 · 0 评论 -
echarts使用datazoom属性对图形坐标轴进行缩放
首先贴上效果图再附上上图的访问链接:http://m520c.com/cat/sjtj.do贴上使用方法在setoption里加上这个属性这里的datazoom里写了俩个 其中type=‘slide’ 是实现滚动条就是以滚动条的方式滑动而type=‘inside’ 是实现了用鼠标滑轮进行图形的缩放 这里不是图形大小的缩放而是数据展示的缩放;展示更少或更多的数据而start和end...原创 2019-09-09 23:16:39 · 8479 阅读 · 2 评论 -
力扣练手66 加一Java版
题目描述给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。最高位数字存放在数组的首位, 数组中每个元素只存储一个数字。你可以假设除了整数 0 之外,这个整数不会以零开头。示例 1:输入: [1,2,3]输出: [1,2,4]解释: 输入数组表示数字 123。示例 2:输入: [4,3,2,1]输出: [4,3,2,2]解释: 输入数组表示数字 432...原创 2019-07-21 15:18:42 · 222 阅读 · 0 评论 -
CentOS 7.2 64位 安装和启动2.12-2.20kafka初级教程
环境:jdk1.8 zk:3.45 文件下载路径:zk和kafka jdk下载、解压、安装 我的是放在了usr/local下第一步:配置jdk环境变量vim /etc/profile #set java environment JAVA_HOME=/usr/local/jdk1.8.0_171 CLASSPATH=....原创 2019-08-05 22:57:29 · 167 阅读 · 0 评论 -
力扣练手58 最后一个单词的长度Java版
题目描述给定一个仅包含大小写字母和空格 ' ' 的字符串,返回其最后一个单词的长度。如果不存在最后一个单词,请返回 0 。说明:一个单词是指由字母组成,但不包含任何空格的字符串。示例:输入: "Hello World"输出: 5我首先想到的是split 但感觉好像不太好 换了种思路:从尾开始遍历package leetcode.easy.week01;publi...原创 2019-07-15 22:13:57 · 214 阅读 · 0 评论 -
力扣练手28 实现indexOf()
题目描述实现 strStr() 函数。给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第 一个位置 (从0开始)。如果不存在,则返回 -1。示例 1:输入: haystack = "hello", needle = "ll"输出: 2示例 2:输入: haystack = "aaaaa", ...原创 2019-07-03 22:09:25 · 201 阅读 · 0 评论 -
力扣练手26 删除排序数组中的重复项 (java版)
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定...原创 2019-06-24 22:46:52 · 322 阅读 · 0 评论