- 博客(67)
- 资源 (1)
- 收藏
- 关注

原创 八大排序算法(java实现) 冒泡排序 快速排序 堆排序 归并排序 等
八大排序算法一、直接插入- 1.基本思路- 2.代码实现- 3.时间复杂度和空间复杂度二、希尔排序- 1.基本思路- 2.代码实现- 3.时间复杂度和空间复杂度三、简单选择- 1.基本思路- 2.代码实现- 3.时间复杂度和空间复杂度四、堆排序- 1.基本思路- 2.代码实现- 3.时间复杂度和空间复杂度五、冒泡排序- 1.基本思路- 2.代码实现- 3.时间复杂度和空间复杂度六、快速排序- 1.基本思路- 2.代码实现- 3.时间复杂度和空间复杂度七..
2020-06-17 19:48:33
22963
44
原创 死锁的四个必要条件以及如何避免死锁
死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。死锁需要必要的条件才能产生,下面为大家介绍死锁的四个必要条件。
2023-02-26 21:04:07
898
原创 为什么阿里巴巴禁止把SimpleDateFormat定义为static类型的
在阿里巴巴Java开发手册(嵩山版)V1.7.0中,编程规范-(七)并发处理中强制要求:SimpleDateFormat 是线程不安全的类,一般不要定义为 static 变量
2022-08-07 16:35:53
347
原创 java8 lambda常用方法汇总
在日常工作中,经常会用到 java8 的 lambda 新特性,可以让代码变得简洁,便于理解,并减少代码量,本文主要列举常用的 lambda 方法,主要涉及:forEach、collect、map、reduce、flatMap、peek、distinct、sorted、filter、allMatch、anyMatch、findFirst、Optional。...
2022-08-07 16:05:10
630
原创 设计模式系列【Java】一:工厂模式(简单工厂、工厂方法模式、抽象工厂模式)
设计模式系列【Java】一:工厂模式(简单工厂、工厂方法模式、抽象工厂模式)
2022-04-05 20:59:19
427
原创 spring boot 接口参数校验 @PathVariable @RequestBody @RequestParam
本文主要演示常见的 Spring Boot 接口写法,以及对应的参数校验方式。涉及注解:@PathVariable @RequestBody @RequestParam
2022-03-10 21:47:57
3305
1
原创 ExecutorCompletionService用法简介
一、ExecutorCompletionService二、Demo演示一、ExecutorCompletionService通常在执行一批需要返回结果的任务时,我们可以使用线程池来提高程序运行效率,通过线程池的 submit(Callable task) 不断提交异步任务,并将 Future 保存下来,之后遍历 Future,调用 get() 方法获取结果。虽然任务都是异步执行的,但是 get Future 结果是阻塞的。例如第一个 future 需要计算5s才能返回结果,但是其他 futu..
2022-02-20 16:23:47
1036
原创 java接口保存文件到本地指定目录下
java接口保存文件到本地指定目录下.md一、需求二、后端代码三、postman模拟页面上传一、需求通过接口将 file 保存到本地指定目录下动动发财小手,关注 + 点赞 + 收藏不迷路。二、后端代码package com.web.controller;import lombok.extern.slf4j.Slf4j;import org.springframework.web.bind.annotation.PostMapping;import org.springfra
2022-02-18 15:15:32
6082
原创 java8 lambda常用方法汇总
在日常工作中,经常会用到 java8 的 lambda 新特性,可以让代码变得简洁,便于理解,并减少代码量,本文主要列举常用的 lambda 方法,主要涉及:forEach、collect、map、reduce、flatMap、peek、distinct、sorted、filter、allMatch、anyMatch、findFirst、Optional。
2022-02-10 08:59:09
966
原创 最不经常使用LFU(least frequently used)算法java实现
LFU(least frequently used)最不经常使用算法 java实现
2022-01-09 23:17:10
1361
原创 最近最少使用LRU(Least Recently Used)算法java实现
最近最少使用 LRU(Least Recently Used)算法java实现
2021-12-12 22:44:25
1618
原创 https与http的区别以及https加密原理
本篇文章主要介绍为啥 HTTPS 会比 HTTP 安全,二者之间的区别,以及HTTPS背后的加密原理是什么?
2021-12-07 00:05:19
3623
原创 vscode Markdown TOC 插件生成目录去除autoauto
vscode Markdown TOC 插件生成目录去除autuoauto一、插件安装二、配置去除autoautovscode Markdown TOC 插件生成目录去除autuoauto日常在使用 vscode 编辑markdown文件时,可以使用 Markdown TOC 插件,快速的生成TOC目录,但是生成的目录中含有很多autoauto,可以通过配置快速的去除autoauto一、插件安装打开扩展,搜索 Markdown TOC,此时会出现多个插件,下载版本号为:1.5.6的..
2021-11-17 15:55:45
1005
原创 linux查看系统日志常见命令以及方法
linux查看系统日志常见命令以及方法一、head二、tail三、cat四、grep五、查看日志的方法linux查看系统日志常见命令以及方法在日常工作中,为了排查定位问题,经常需要登录到linux系统,查看异常error日志,本文列举一些常见命令。一、headhead 命令可用于查看文件的开头部分的内容,有一个常用的参数 -n 用于显示行数,默认为 10,即显示 10 行的内容。命令格式:head [参数] [文件]参数:-n<行数> 显示的行数。显示..
2021-11-17 14:48:00
9592
原创 @ConfigurationProperties没有动态刷新解决方案(Apollo配置中心官方推荐方式)
@ConfigurationProperties没有动态刷新解决方案(Apollo配置中心官方推荐方式)一.发现的问题二.Apollo配置中心官方推荐方式三.EnvironmentChangeEvent解决方案源码@ConfigurationProperties没有动态刷新解决方案(Apollo配置中心官方推荐方式)Apollo(阿波罗)是一款可靠的分布式配置管理中心,诞生于携程框架研发部,能够集中化管理应用不同环境、不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限..
2021-11-15 11:23:05
5291
原创 Double计算精度丢失(金融入门知识点)
Double计算精度丢失(金融入门知识点)一.double精度丢失二.为什么double会精度丢失三.BigDecimal错误的用法四.BigDecimal正确的用法Double计算精度丢失(金融入门知识点)最近工作发现不少同事对于double精度丢失还不了解,对于一些新手java程序员,这倒是还可以理解,但是如果是已经工作了几年的老鸟,还不清楚,那就要抓紧补课了。废话不多说,进入今天的正题。一.double精度丢失public static void main(String[..
2021-11-09 23:12:24
7252
原创 mysql日志系统(redo log、bin log)
mysql日志系统(redo log、bin log)一.redo log二.bin log(归档日志)1.为什么会有两份日志呢?2.bin log 的三种模式2.1.Statement Level模式2.2.Row Level模式2.3.Mixed模式(混合模式)三.redo log 和 bin log 的不同点四.redo log 写入的两阶段提交mysql日志系统(redo log、bin log)一.redo logMysql 每一次更新操作都需要写..
2021-10-17 22:58:23
177
原创 Mysql数据库Sql语句优化汇总
Mysql数据库Sql语句优化汇总一.基础优化二.索引相关三.其他优化Mysql数据库Sql语句优化汇总一.基础优化1.selct * from table 改为 select field_1, field_2, field_3 from table,只查询需要的字段,减小通信数据包的大小2.sql后面加上 limit 限制,防止查询的数据量太大,导致系统OOM3.使用批量 insert 代替for循环单条 insert4.设计良好的数据库结构,允许部分数据冗余,尽量避免jo..
2021-10-17 16:17:45
209
原创 分布式基础-CAP定理的含义
分布式基础-CAP定理的含义一.分布式系统的三个指标1.1 Partition tolerance(分区容错)1.2 Consistency(一致性)1.3 Availability(可用性)二.分布式系统中Consistency 和 Availability 为啥不能同时满足分布式基础-CAP定理的含义随着微服务的发展,分布式系统(distributed system)正变得越来越重要,java后端系统多是分布式系统,很少有单机部署了。在引入分布式系统的同时,也带来了复..
2021-09-11 21:46:21
195
原创 求两个List是否存在交集 retainAll()方法报 java.lang.UnsupportedOperationException 异常
求两个List是否存在交集 retainAll()方法报 java.lang.UnsupportedOperationException 异常一.背景二.错误示例三.正确示例四.源码解析五.总结求两个List是否存在交集 retainAll()方法报 java.lang.UnsupportedOperationException 异常一.背景工作中遇到一个很简单的需求,求两个list中是否存在相同的元素,即求两个list是否存在交集,例如listA = [1, 2, 3],li..
2021-08-21 23:00:56
1179
原创 7种JVM垃圾回收器详解 & 垃圾收集参数汇总
1. jvm垃圾回收器1.1. Serial收集器1.2. ParNew收集器1.3. Parallel Scavenge收集器1.4. Serial Old收集器1.5. Parallel Old收集器1.6. CMS收集器1.7. G1收集器1.8. 总结1.9. 垃圾收集器参数汇总1. jvm垃圾回收器本篇文章主要介绍下图7种垃圾回收器,相关的垃圾回收算法可以看一下之前的文章。只有在新生代和老年代垃圾回收器之间有连线,才可以搭配使用,比如老年代垃圾回收器设置的是C..
2021-03-07 14:54:04
1650
原创 postman接口批量调用 Collection Runner
postman接口批量调用 Collection Runner一.准备工作二.操作步骤三.执行结果postman接口批量调用 Collection Runnerpostman可以很方便的调用接口,但是当我们需要批量调用同一个接口,并且读取文件动态修改入参的时候,就可以使用Collection Runner这个功能,提高效率。一.准备工作1.首先新建一个collection test,并添加一个request,如下图所示:2.测试接口:localhost:8355/test ..
2021-02-24 10:06:31
2048
原创 MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介)
MySQL可重复读隔离级别为何没有解决幻读(MVCC原理简介)一.MCVV简介二.可重复读隔离级别能解决幻读?三.什么是当前读和快照读?四.MVCC的实现原理五.RC,RR级别下的InnoDB快照读有什么不同?六.如何解决幻读七.事务是么时候开始
2020-11-07 23:36:35
7923
10
原创 求一个有序数组值为k的位置
求一个有序数组值为k的位置,如果包含多个,分别输出对应的位置,要求最差时间也是logN代码如下import java.util.ArrayList;import java.util.Arrays;import java.util.List;import java.util.Random;/**Description: 二分查找**/public class BinarySearch {public static int searchIndex(int key, Integer[]
2020-10-24 16:46:08
177
原创 Object对象的wait、notify和notifyAll使用方法
Object对象的wait、notify和notifyAll使用方法一.先说答案,再进行讲解二.正确示例三.错误示例1四.错误示例2Object对象的wait、notify和notifyAll使用方法Object的wait、notify 和 notifyAll是Object提供的同步方法,也就是所有对象都生而带来的方法,估计搞java的没有不知道这几个方法的。那么他究竟是怎么使用的呢?一.先说答案,再进行讲解wait() 与 notify()/notifyAll() 是Obj..
2020-10-21 19:39:02
642
原创 spring 七种事务传播行为
spring事务传播行为详解一、什么是事务传播行为?二、Spring中七种事务传播行为三、REQUIRED,REQUIRES_NEW,NESTED异同四、三种Transactional不回滚问题五、异常:Transaction rolled back because it has been marked as rollback-only原因spring事务传播行为详解前言Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是..
2020-09-27 09:55:32
617
1
原创 redis缓存一致性方案
redis缓存一致性方案工作中经常会用redis来缓存热点数据,可以减轻底层数据库的压力,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性问题。一.缓存同步方式1.先删除缓存,再写库2.先写MySQL数据库,再删除Redis缓存二.存在的问题两种同步方式都存在问题,举例说明如下:如果删除了缓存Redis,还没有来得及写库MySQL,另一个线程就来读取,发现缓存为空,则去数据库中读取数据写入缓存,此时缓存中为脏数据。如果先写了库,
2020-09-16 18:49:21
411
原创 Java内存模型 都是干货
Java内存模型一.主内存与工作内存二.内存间的交互操作三.volatile变量的特殊规则四.原子性、可见性与有序性1.原子性(Atomicity)2.可见性(Visibility)3.有序性(Ordering)五.先行发生原则Java内存模型Java虚拟机规范中试图定义一种Java内存模型(Java Memory Model, JMM)来屏蔽掉各种硬件和操作系统的内存访问差异,以实现让Java程序在各种平台下都能达到一致的内存访问效果。一.主内存与工作内存Jav..
2020-08-09 21:35:47
154
原创 java运行时数据区简介
1.java运行时数据区域程序计数器java虚拟机栈抛出OutOfMemoryError异常的两种情况本地方法栈java堆方法区运行时常量池直接内存1.java运行时数据区域程序计数器程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。字节码解释器工作时就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。..
2020-07-21 08:12:34
267
原创 使用Linux命令找出日志文件中访问量最大的top10 IP地址
使用Linux命令找出日志文件中访问量最大的top10 IP地址描述日志文件linux命令linux命令详解使用Linux命令找出日志文件中访问量最大的top10 IP地址描述检验是否熟悉linux命令常见问题:使用 Linux命令找出日志文件中访问量最大的top10 IP地址日志文件日志文件test.log内容如下:2020-07-14 07:00:00 10.11.131.1 test2020-07-14 07:00:00 10.11.131.2 test2020-..
2020-07-20 00:01:10
2253
elastic job lite console 部署控制台
2018-03-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人