
原创
文章平均质量分 68
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 · 1743 阅读 · 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 · 1597 阅读 · 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 评论 -
享元模式的学习与使用
享元模式的核心思想是将对象的状态分为内部状态和外部状态,并共享内部状态以减少对象的数量。这样可以节省内存空间,并提高系统的性能。原创 2023-06-24 16:34:15 · 242 阅读 · 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 评论 -
盛世芳华游戏与微信公众号结合的DDD项目,已接入chatgpt。附源码。
盛世芳华游戏与微信公众号结合的DDD项目,已接入chatgpt。附源码。原创 2023-03-23 18:11:13 · 260 阅读 · 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 · 6331 阅读 · 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 评论 -
日期类型转字符串 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 评论 -
使用webmagic模拟post表单提交爬取易查分成绩
使用webmagic模拟post表单提交爬取易查分成绩#不废话直接上图简单来说就是在一图输入学生姓名 点击查询就会跳转到二图,当然这里二图我把班级姓名信息以及去掉了;下面就是分析通过上图我们可以看到点击查询后实际上是发送了一个post表单提交;根据返回回来的结果再跳转到分数结果的地址;所以这里我们就直接使用webmaigc来模仿psot表单提交 把学生姓名提交过去;这是一个请求...原创 2019-12-14 10:43:13 · 2680 阅读 · 2 评论 -
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 评论 -
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 评论 -
史上最靠谱的阿里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 评论 -
力扣练手27 移除元素
题目描述给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度。 不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。 元素的顺序可以改变。你不需要考虑数组中超出新长度后面的元素。 示例 1:给定 nums = [3,2,2,3], val = 3, 函数应该返回新的长度 2, ...原创 2019-07-01 23:26:36 · 154 阅读 · 0 评论 -
力扣练手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 评论 -
力扣14练手 编写一个函数来查找字符串数组中的最长公共前缀 java版
题目描述编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串 “”。示例 1:输入: [“flower”,“flow”,“flight”]输出: “fl”示例 2:输入: [“dog”,“racecar”,“car”]输出: “”解释: 输入不存在公共前缀。说明:所有输入只包含小写字母 a-z 。下面是代码 两种方法 第一种自己想出来的很耗...原创 2019-06-04 22:35:35 · 4356 阅读 · 1 评论 -
力扣练手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 评论 -
jdk1.8谷歌版本中文文档
jdk1.8谷歌版本中文文档文档下载原创 2019-03-27 16:23:46 · 3414 阅读 · 3 评论 -
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 评论 -
力扣练手 38 报数 Java版
题目描述报数序列是一个整数序列,按照其中的整数的顺序进行报数,得到下一个数。其前五项如下:1. 12. 113. 214. 12115. 1112211 被读作 "one 1" ("一个一") , 即 11。11 被读作 "two 1s" ("两个一"), 即 21。21 被读作 "one 2", "one 1" ("一个二" , ...原创 2019-07-07 16:24:39 · 196 阅读 · 0 评论 -
力扣练手26 删除排序数组中的重复项 (java版)
题目描述:给定一个排序数组,你需要在原地删除重复出现的元素,使得每个元素只出现一次,返回移除后数组的新长度。不要使用额外的数组空间,你必须在原地修改输入数组并在使用 O(1) 额外空间的条件下完成。示例 1:给定数组 nums = [1,1,2],函数应该返回新的长度 2, 并且原数组 nums 的前两个元素被修改为 1, 2。你不需要考虑数组中超出新长度后面的元素。示例 2:给定...原创 2019-06-24 22:46:52 · 322 阅读 · 0 评论 -
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 评论 -
Oracle数据库如何DMP文件?
功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接(通过net8 assistant中本地–>服务命名 添加正确的服务命名其实你可以想成是客户端与服务器端修了条路,然后数据就可以被拉过...原创 2019-08-26 10:08:37 · 316 阅读 · 0 评论