自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(252)
  • 收藏
  • 关注

原创 领导看到我自用的IDEA插件,也回去悄悄安装了...

还没用过的赶紧去用这几款插件吧,这些插件已经涵盖了我们的大多数开发场景,而且能够为我们带来极大的便利。尤其是摸鱼神器 LeetCode!

2023-01-25 13:04:02 5417 4

原创 一位粉丝大年初三寄来的字节面经

完了之后,面试官评价了句技术栈挺全的!

2023-01-24 13:17:06 2318

原创 MapStruct与lombok加载顺序问题与annotationProcessorPaths的关系?

MapStruct是什么?MapStruct is a code generator that greatly simplifies the implementation of mappings between Java bean types based on a convention over configuration approach.——https://mapstruct.org/从...

2022-12-04 21:51:00 4507 2

原创 idea设置新增文件,自动添加到git

2022-03-26 17:03:00 6630 1

原创 idea使用leecode插件

一、下载安装点击File->Setting->Plugins,搜索leetcode再点击install进行下载。下载完成后重启idea,右下角会有leetcode菜单。二、配置1.点击File->Settings->Tools->leetcode plugin,如图:2.自定义模板配置下面介绍我使用的配置模板为:P$!{question.fronten...

2022-03-24 23:28:00 642

原创 intellij idea不显示git push按钮的解决办法

打开setting选项,找到Menus and Toolbars,然后选选择NavBarVcsGroup,选中VcsNavBarToolbarActions,然后点击右上角的“+”,选择Add action。找到version control systems选项,选择Git,然后选择Repository文件夹下push标签,添加即可。点击ok,最后点击apply,ok即可。...

2022-03-24 23:09:00 3808 1

原创 LeetCode算法-实现strStr()

题目描述给你两个字符串 haystack 和 needle ,请你在 haystack 字符串中找出 needle 字符串出现的第一个位置(下标从 0 开始)。如果不存在,则返回 -1 。说明:当 needle 是空字符串时,我们应当返回 0 。这与 C 语言的 strstr() 以及 Java 的 indexOf() 定义相符。示例 1:输入:haystack = "hello", needle = "ll"输出:2示例 2:输入:haystack = "aaaaa",

2022-03-05 18:23:50 455

原创 Thread.currentThread().getName() 和 this.getName()区别详解

currentThread的详解currentThread方法是Thread类的一个静态方法,用来获取当前运行的代码段,正在被哪个线程调用。我们先来看一眼源码。是一个native方法。直接与系统层面做交互。下面看一段代码 public static void main(String[] args) { String name = Thread.currentThread().getName(); System.out.println(name); }

2022-02-20 18:59:17 1712

原创 教你如何用阿里canal

什么是canal?阿里巴巴 B2B 公司,因为业务的特性,卖家主要集中在国内,买家主要集中在国外,所以衍生出了同步杭州和美国异地机房的需求,从 2010 年开始,阿里系公司开始逐步的尝试基于数据库的日志解析,获取增量变更进行同步,由此衍生出了增量订阅&消费的业务。Canal 是用 Java 开发的基于数据库增量日志解析,提供增量数据订阅&消费的中间件。目前。 Canal 主要支持了 MySQL 的 Binlog 解析,解析完成后才利用 Canal Client 来处理获得的相关数据。

2022-01-16 20:57:20 2031

原创 java如何对接企业微信

前言最近实现社群对接企业微信,对接的过程遇到一些点,在此记录。企业微信介绍企业微信具有和微信一样的体验,用于企业内部成员和外部客户的管理,可以由此构建出社群生态。 企业微信提供了丰富的api进行调用获取数据管理,也提供了各种回调事件,当数据发生变化时,可以及时知道。 我们分为两部分进行讲解,第一部分调用企业微信api,第二部分,接收企业微信的回调。调用企业微信apiapi的开发文档地址:work.weixin.qq.com/api/doc/900… 调用企业微信所必须的东西就是企业的

2022-01-09 12:23:34 3389

原创 mac如何多开程序

1、右键应用程序,在finder中找到他。2、右键程序,点击现实包内容。3、进入contents文件夹,找到macos文件夹,可以看到终端程序,双击打开,即可实现多开,注意多开后,不要关闭终端弹出的窗口。...

2022-01-08 20:37:00 3578 2

原创 为什么java线程池的submit既可以提交runnable也可以提交callable?

前言大家好,今天鸡翅老哥继续带大家深入了解多线程,我们都知道多线程有两种实现方式,一种是实现runnable接口,一种是实现callable接口。那么线程池的submit提交方式,两种都可以作为参数传递。要知道submit是当需要返回值的情况下才使用,runnable是没有返回值,那么submit为什么可以接收两种呢,我们继续往下看。submit方法解析先看下submit的方法,来确定,确实可以提交两种方式。我们定义一个线程池,来执行两个方法,第一种没有返回值,线程池会自动找到runna

2022-01-04 22:43:52 2419 1

原创 为什么java线程池的submit的不抛出异常

前言大家好,这里是经典鸡翅,最近有人问我线程池的execute和submit,有的抛出异常,有的不抛出异常,这里鸡翅老哥给大家整理下。通过源码跟踪跟大家讲解。两个方法我们先用最普通的方式定义一个线程池。ThreadPoolExecutor threadPoolExecutor = new ThreadPoolExecutor(5, 10, 5, TimeUnit.SECONDS, new LinkedBlockingDeque<>(1024), new ThreadPoolEx

2022-01-03 21:52:56 2495

原创 npm更改为淘宝镜像

永久更改npm源npm config set registry https://registry.npm.taobao.org临时使用npm源npm --registry https://registry.npm.taobao.org install express安装cnpmnpm install -g cnpm --registry=https://registry.npmmirr...

2022-01-03 17:33:00 1612

原创 博客园统计阅读量

前言今天教大家如何统计博客园博客的阅读量。效果图侧边栏代码<script id="worker" type="app/worker">/**************** worker 任务线程 负责统计总阅读量 ********************/ console.log("我是worker 任务线程 负责统计总阅读量.."); //我的博客园地址...

2022-01-03 17:17:00 1115 1

原创 MySql分表、分库、分片和分区的区别

一、前言数据库的数据量达到一定程度之后,为避免带来系统性能上的瓶颈。需要进行数据的处理,采用的手段是分区、分片、分库、分表。二、分片(类似分库)分片是把数据库横向扩展(Scale Out)到多个物理节点上的一种有效的方式,其主要目的是为突破单节点数据库服务器的 I/O 能力限制,解决数据库扩展性问题。Shard这个词的意思是“碎片”。如果将一个数据库当作一块大玻璃,将这块玻璃打碎,...

2021-09-16 22:23:00 2881

原创 idea中自定义修改jdk源码,加注释

前言最近打算出jdk源码的博客,想在源码基础上加注释,在此把方法分享给大家。处理方法打开project structures,选择sdk。根据上方的路径,找到zip包,进行解压。然后删除掉zip包,重新加入到解压后的包。再次打开jdk源码。此时随便输入一个字母,会弹出如下框。选择第三个,编辑即可。注意最好是在源码的行后加注释。不然会造成行数不一致。...

2021-09-16 22:04:00 833

原创 Mac版本的idea非正常关闭后,idea打开项目大面积报红

今天mac非正常重启后,项目内大面积报红。解决方案如下:idea->file->Invalidate Cache勾选clear cahce 确定后重启,即可。

2021-07-12 23:19:00 549

原创 Mysql的int类型探究

前言最近被问到了这个问题,原题目应该是mysql的int(1)和int(10)有什么区别。当时没答好,也确实没注意过,故在此研究记录下。探究mysql中int所能设置的长度范围是1~255。当你输入小于1的数字的时候,会自动给你置为11。当你输入的数值是大于255的时候,会提示你最大为255。但是实际上你设置多少是没有区别的,效果和int(11)是一摸一样的。你设置一个int(1),你以...

2021-03-25 12:38:00 1432

原创 linux下使用grep进行日志过滤

#查看日志中,包含“表名:”或者“包含SQL:”的行!cat pro.log | grep "^\(表名:\|SQL:\).*$" #查看日志中,包含“表名:”或者“包含SQL:”的行!,但是还需要过滤掉select语句cat pro.log | grep "^\(表名:\|SQL:\).*$" | grep -v -i 'select' #查看日志中,将这部分日志追...

2021-02-19 16:43:00 1319

原创 java多线程如何设置优先级

从thread类中,我们可以看到类中预先定义了三个优先级。通过getpriority可以看到新建线程的默认等级。public class ExtendsThread { public static void main(String[] args) { MyThread c = new MyThread("线程C"); int priority...

2021-02-13 11:37:00 990

原创 Java中多线程的六种状态详解

在我们的Thread类中,我们可以看到多线程有六种状态。NEW:初始状态RUNNABLE:运行状态BLOCKED:阻塞状态WAITING:等待状态TIMED_WAITING:超时等待状态TERMINATED:终止状态六种状态之间的转化关系如下:1、NEW 表示线程创建成功,但没有运行,在 new Thread 之后,没有 start 之前,线程都处于 NEW 状态;2...

2021-02-13 11:29:00 412 1

原创 Java中多线程启动,为什么调用的是start方法,而不是run方法?

前言大年初二,大家新年快乐,我又开始码字了。写这篇文章,源于在家和基友交流的时候,基友问到了,我猛然发现还真是这么回事,多线程启动调用的都是start,那么为什么没人掉用run呢?于是打开我的idea,翻一波代码,带大家一探究竟。继承thread类实现多线程我们知道java有三种方式实现多线程,这里直接用继承的方式进行试验,其他方式同理。我们要做的是首先声明一个线程。然后去调用,最...

2021-02-13 11:16:00 546

原创 解决 Git: There is no tracking information for the current branch.的问题

在执行git pull的时候,提示当前branch没有跟踪信息:解决方案一指定远程mastergit pull origin master解决方案二先指定本地master到远程的master,然后再去pullgit branch --set-upstream-to=origin/master mastergit pull...

2021-02-10 10:52:00 1073

原创 如何将本地项目发布到gitee?

进入要推送的项目文件位置码云上新建一个项目在要推送的文件夹执行git bash使用 git init 命令,初始化一个 git 本地仓库添加远程仓库拉取远程仓库提交文件推送文件到仓库...

2021-02-10 10:50:00 589

原创 spingboot使用redis连接池报错

配置如下,增加了连接池相关redis: host: localhost port: 6379 database: 7 lettuce: pool: max-active: 20 max-idle: 20 max-wait: -1 min-idle: 0启动报错。解决方案引入...

2021-02-03 09:11:00 403

原创 swagger2中UI界面接口点击无法展开问题解决

背景最近往自己的框架里集成swagger,发现一个奇怪的问题,当我的tag是中文的时候。发现点击展开不生效,只能点击全部展开,这就十分不方便了。如下图只能点击expand operations。解决方案第一种方案:如果说我们将tags改为英文,那么发现界面展开好使。第二种方案:如果我们不使用tags。直接使用values属性。value的中文和英文都没有问题。但是,第一种方案和...

2021-02-02 09:05:00 1473

原创 idea在Mybatis的xml里面写sql时,表名、字段、报红问题的解决方法

未解决之前的效果可以看到都是红色的。解决方法设置为none,点击ok。解决后的效果

2021-02-02 08:44:00 10926 4

原创 svn如何创建分支

在建立项目版本库时,可首先建好项目文件夹,并在其中建立trunk, branches, tags三个空的子目录。这样在trunk中开始进行开发:trunk是主分支,是日常开发进行的地方。branches是分支。一些阶段性的release版本,这些版本是可以继续进行开发和维护的,则放在branches目录中。又比如为不同用户客制化的版本,也可以放在分支中进行开发。tags目录一般是只读的,这里存储阶段性的发布版本,只是作为一个里程碑的版本进行存档。在主分支上创建文件结构并提交到SVN版本控制器上

2021-01-19 22:57:28 13286

原创 Java 反射修改类的常量值、静态变量值、属性值

前言有的时候,我们需要修改一个变量的值,但变量也许存在于 Jar 包中或其他位置,导致我们不能从代码层面进行修改,于是我们就用到了下面的场景,通过反射来进行修改变量的值。定义一个实体类class Bean{ private static final Integer INT_VALUE = 100; } 利用反射修改私有静态常量方法System.out.println(Bean.INT_VALUE); Field field = Bean.class.getFi

2021-01-16 22:35:34 1681

原创 你还不知道mysql中空值和null值的区别吗?

前言最近发现带的小伙伴写sql对于空值的判断方法不正确,导致程序里面的数据产生错误,在此进行一下整理,方便大家以后正确的判断空值。以下带来示例给大家进行讲解。建表create table test (colA varchar(10) not null,colB varchar(10) null);向test表中插入数据插入colA为null的数据insert into test values (null,1);此时会报错,因为colA列不能为null。插入colB为n

2021-01-14 22:46:36 1008 2

原创 Linux下安装svn教程

前言最近买了新服务器,准备开始弄一些个人的开源项目。有了服务器当然是搞一波svn啦。方便自己的资料上传和下载。于是在此记录搭建svn的方式,方便以后直接使用。安装使用yum源进行安装,十分的方便。yum install subversion配置svn创建仓库我们这里在/home下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹。[root@localhost /]# cd /home[root@loca

2021-01-13 21:56:42 582 1

原创 Mysql中的utf-8竟然是假的!

最近遇到一个神奇的问题,在往数据库中插入聊天表情的时候,离奇的报错,我的客户端、服务器、数据库都是UTF-8 编码的,所以应该不会出现问题。最终发现根本的原因在于MySQL 的“utf8”实际上不是真正的 UTF-8。Mysql的utf-8的问题MySQL 的“utf8”实际上不是真正的 UTF-8。“utf8”只支持每个字符最多三个字节,而真正的 UTF-8 是每个字符最多四个字节。MySQL 一直没有修复这个 bug,他们在 2010 年发布了一个叫作“utf8mb4”的字符集,绕过了这个问题。

2021-01-09 23:14:20 394

原创 Mysql中varchar类型的猫腻!

varchar的存储规则4.0版本以下,varchar(20),指的是20字节,如果存放UTF8汉字时,只能存6个(每个汉字3字节)。5.0版本以上,varchar(20),指的是20字符,无论存放的是数字、字母还是UTF8汉字(每个汉字3字节),都可以存放20个,最大大小是65532字节。varchar 字段是将实际内容单独存储在聚簇索引之外,内容开头用1到2个字节表示实际长度。官方是这么说的:Values in VARCHAR columns are variable-length stri

2021-01-08 22:14:14 737

原创 震惊!java中日期格式化的大坑!

前言我们都知道在java中进行日期格式化使用simpledateformat。通过格式 yyyy-MM-dd 等来进行格式化,但是你知道其中微小的坑吗?yyyy 和 YYYY示例代码 @Test public void testWeekBasedYear() { Calendar calendar = Calendar.getInstance(); // 2019-12-31 calendar.set(2019, Calenda

2021-01-07 22:56:13 609

原创 mysql数据库限制多次登录失败,限定用户重试时间

前言最近的项目开始进行安全测试,其中有一个安全问题是这样的。应该增加用户登录失败处理功能,限制非法登录次数。建议是增加mysql数据库的登陆失败的锁定功能。相信大家也都会遇到这样的问题,在这里写一下,方便大家直接使用。设置方法登录mysql数据库mysql -u root -p输入如下命令,安装插件install plugin CONNECTION_CONTROL soname 'connection_control.so';install plugin CONNECT

2021-01-06 21:09:52 2266

原创 Echart常用效果(一)

代码实现option = { backgroundColor: '#080b30', tooltip: { trigger: 'axis', axisPointer: { lineStyle: { color: { type: 'linear...

2020-09-07 11:07:00 489

原创 oracle大数据量更新引发的死锁问题解决方法及oracle分区和存储过程的思考

前言前几天上午在对数据库的一张表进行操作的时候,由于这张表是按照时间的一张统计表,正好到那天没有测试数据了,于是我想将表中所有的时间,统一更新到后一个月,于是对80w条数据的更新开始了。整个过程曲折的一批。同时学到了很多知识,在此进行记录。希望对大家有帮助。首先是大批量更新,由于数据已经进行了分区,开始对分区进行分析,然后大批量操作死锁,对死锁的解决,最后存储过程来解决数据的大批量插入。曲折的过程开始由于测试数据到21号就没了,21号一上去,发现开发的功能,都没有数据了,图表也都空了。查询原

2020-09-02 08:44:08 1795

原创 一种简单的redis分布式锁方案

前言用于分布式程序彼此之间不能同时执行的场景。例如计算程序等。代码锁工具类@Componentpublic class RedisLockUtil { @Autowired private RedisTemplate redisTemplate; private static final String CALC_LOCK_KEY = "CalculateLock"; private static final Long CALC_LOCK_TIME = 30L; public b

2020-08-28 08:51:25 449

原创 一次mysql数据库连接池泄露的解决经历

前言最近用了公司某框架,部署到现场后,现场运维开始维护现场数据,在不断操作的过程中,系统崩溃,查看后台日志,druid连接池已经获取不到连接。于是开始了排查之旅。在此记录。排查开始首先后台的报错是这样的。exception=org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:### Error querying databas

2020-08-24 18:40:50 2321

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除