自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(102)
  • 资源 (3)
  • 收藏
  • 关注

原创 Mysql主从配置

修改从库配置 这里的后面两个值就是上面主库查出来的如果配错了 需要停掉从库服务 stop slave;第一步登录mysql。

2023-10-17 14:30:35 144

原创 记一次通过arthas+profilier解决队列内存爆炸问题

arthas 解决 disruptor的ringbuffer 内存过高问题

2022-09-23 14:07:02 607 1

原创 Clickhouse 踩坑之旅 ---- MergeTree不合并分区的问题

clickhouse 分区不合并 、 too many parts

2022-07-07 17:19:09 1806

原创 MacOS idea打不开解决方法

前提纪要如果你是因为修改了 idea.vmoptions 配置文件后重启打不开 请看此方法若不是 请勿浪费时间首先我们找错误的方法找到访达—>应用程序---->找到你要打开的idea 右键----> 选择显示包内容---->Contents---->MacOS---->idea打开会跳出黑窗口 请寻找报错信息 每个人的不一样 我的是说我的jdk版本信息对不上 回想一下昨天改了配置文件的垃圾回收器可能改错了首先改这个目录的 idea.vmop.

2022-03-31 14:26:07 6462 1

原创 记一次 while(true) 产生的CPU爆满

背景最近工作中碰到一个问题测试系统稳定性的时候发现 CPU 一直爆满经过多方面排查 发现是多处用了while(true)处理办法在while(true) 的代码中加一个 Thread.sleep(1)即可事后思考为什么呢 那就得回顾一下操作系统相关的知识操作系统的 CPU 现在可能有四核、八核、16核 但是我们打开tomcat线程数一看有120多那么操作系统的 CPU 就要有正确的调度规则 , 操作系统中有很多算法 Unix系统使用的是时间片算法,而Windows则属.

2022-01-19 16:38:24 1902 1

原创 Gradle|Maven多模块开发解决循环依赖

前提纪要公司目前是gradle多模块开发 没有用到传统互联网公司的分布式 springCloud、dubbo等差不多是20个jar包 一个底座war 依赖所有jar包有公共模块framework、core等问题出现前面说过是多模块开发 其中有两个模块比较特殊一个是 定时调度暂且称为T、一个是数据抽取Etl 暂且称为E目前的业务要求是T需要调用E中的运行方法、E需要获取T中的定时运行状态以及记录按照分布式的解决方法很简单就利用Rpc相互调用方法就行了 也不存在直接依赖关系如图解决

2021-10-14 16:02:50 1077

原创 Leetcode剑指 Offer 24. 反转链表

题目:定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。示例:输入: 1->2->3->4->5->NULL输出: 5->4->3->2->1->NULL来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof解题思路反转链表:遍历原链表 每次新链表 = 新元素 + 上次的新链表代码实现public List

2021-09-13 15:02:06 174

原创 Leetcode1894. 找到需要补充粉笔的学生编号

题目:一个班级里有 n 个学生,编号为 0 到 n - 1 。每个学生会依次回答问题,编号为 0 的学生先回答,然后是编号为 1 的学生,以此类推,直到编号为 n - 1 的学生,然后老师会重复这个过程,重新从编号为 0 的学生开始回答问题。给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时,他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ,那么学生 i 需要 补充 粉笔。

2021-09-10 13:52:08 129

原创 Leetcode新手做题1221. 分割平衡字符串

题目在一个 平衡字符串 中,‘L’ 和 ‘R’ 字符的数量是相同的。给你一个平衡字符串 s,请你将它分割成尽可能多的平衡字符串。注意:分割得到的每个字符串都必须是平衡字符串。返回可以通过分割得到的平衡字符串的 最大数量 。示例 1:输入:s = “RLRRLLRLRL”输出:4解释:s 可以分割为 “RL”、“RRLL”、“RL”、“RL” ,每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’ 。示例 2:输入:s = “RLLLLRRRLR”输出:3解释:s 可以分割为 “RL”

2021-09-07 10:05:01 115

原创 LeetCode---剑指 Offer 22. 链表中倒数第k个节点

题目输入一个链表,输出该链表中倒数第k个节点。为了符合大多数人的习惯,本题+ 从1开始计数,即链表的尾节点是倒数第1个节点。例如,一个链表有 6 个节点,从头节点开始,它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。示例:给定一个链表: 1->2->3->4->5, 和 k = 2.返回链表 4->5.来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/lian-bi

2021-09-02 11:31:56 114

原创 Java基础知识---HashMap线程不安全的部分原因

想要说清楚HashMap线程不安全的事情 分两部分JDK 1.8 以前HashMap底层是数组+链表以前人尽皆知了那说一个不是人尽皆知的问题,HashMap放入新元素是采用头插法,什么是头插法呢:一个数组 Int[] array = {1,2,3,4}我们想放入一个新的元素0 就是Int[] array = {0,1,2,3,4}再说一个问题 HashMap 是有容量上限的 再超过上限的时候 但凡是一个集合都会开始扩容 当然他也不例外所以怎么扩容呢原Map 重新计算放.

2021-08-26 17:58:25 125

原创 新手LetCode541 --- 反转字符串二

题目给定一个字符串 s 和一个整数 k,从字符串开头算起,每 2k 个字符反转前 k 个字符。如果剩余字符少于 k 个,则将剩余字符全部反转。如果剩余字符小于 2k 但大于或等于 k 个,则反转前 k 个字符,其余字符保持原样。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/reverse-string-ii思路反转字符串 老生常谈 用栈 或者双指针 一个向左一个向右这道题用人话讲 就是每隔k个反转k个问题在于第一次反转后的处理

2021-08-20 10:37:34 160

原创 LeetCode今日题目------------反转字符串中的元音字母

题目给你一个字符串 s ,仅反转字符串中的所有元音字母,并返回结果字符串。元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’,且可能以大小写两种形式出现。用人话说:反转字符串中符合要求的字符们思路如果是单纯的反转字符串 第一个想到的是可以用栈解决,这道题应该也可以脑袋又转了转 可以标记每次发现的元音字符以及出现的位置,然后再反着放回去进阶一下 每次把正反两次的字符都记住 然后交换位置好吧 我得承认 我百度了一下什么是原因字母 (ps:此处笑脸)乱七八糟的代码 (肯定是

2021-08-19 17:40:16 168

原创 Java---文件指定行添加内容

/** * 指定路径文件 从 flagStr 按行添加 writeContent * @param writeContent * @param path * @param flagStr * @throws IOException * @throws URISyntaxException */ public static void write2File(List<String> writeContent, String

2021-08-11 17:46:41 2586

原创 Java 生成随机长度字母组合

需求最近在做数据模型相关 需要手动将图形化操作转换成 数据库关联查询join 语句这里就有一个表别名的问题 所以需要随机的字母组合代码// 这里是种子字母 当然如果需要可以加上数字 已经把大小写区分不明显的去掉了public static Character[] words = new Character[]{'a', 'b', 'd', 'e', 'f', 'g', 'h', 'm', 'n', 'q', 'r', 't', 'y',

2021-07-14 15:24:24 507

原创 jar包读取资源文件报错:找不到资源文件(No such file or directory)

现象先看一段代码File readFile = null; try { String path = this.getClass().getClassLoader().getResource(fileLocation).getPath(); readFile = new File(path); } catch (Exception e) { logger.error("=================

2021-06-15 13:48:28 2208 1

原创 Mac下Homebrew切换源

替换为阿里源查看 brew.git 当前源$ cd “$(brew --repo)” && git remote -vorigin https://github.com/Homebrew/brew.git (fetch)origin https://github.com/Homebrew/brew.git (push)查看 homebrew-core.git 当前源$ cd “$(brew --repo homebrew/core)” && git remo

2021-06-09 16:49:29 639 1

原创 记一次由于 TCP 连接过多引起的错误 java.net.SocketException: Too many open files

背景最近项目开始集成测试,测试同学会不停打入数据测试稳定性所以问题就这么出现了现象以及分析项目启动报错Caused by: java.net.UnknownHostException: xxxxmysqlat java.net.InetAddress.getAllByName0(InetAddress.java:1281)at java.net.InetAddress.getAllByName(InetAddress.java:1193)at java.net.InetAddress.

2021-06-07 16:03:49 946

转载 Synchronized锁机制详解

锁是一种怎样的存在一个简单的日常的生活的例子:如果有人问你怎样保证自行车不被偷走,肯定回答上锁就行了呗。类比如果有人又问你多线程情况下怎样保证数据安全性,上锁就行了呗。所以程序世界中的锁到底是什么样子呢Synchronized...

2021-05-13 15:35:11 402

原创 工作流之Camunda开发记录(三)---- 监听器的基本使用

前情纪要前面我记录了camunda的基本使用传送门还有用户任务和服务任务 以及 全局变量的使用传送门目前camunda已经可以正常运行,但是不正常的时候我们怎么办,就需要用到监听,需要程序帮我们盯着他看,到底执行到哪了,到哪坏了,方便事后查错(ps:我就是干这个用)还有前端实时显示目前工作流执行情况监听器简介监听器顾名思义,就是监听的机器(/手动滑稽),言归正传 这里我用到的监听大概有三种分别是start:启动监听 不能加在序列流上面end:结束监听 不能加在序列流上面ta

2021-05-07 15:35:00 5338 13

原创 工作流之Camunda开发记录(二)---- 用户任务、服务任务、全局变量的使用

前言上篇文章我们简单介绍了工作流的发布与启动直通车这篇文章 我们介绍几种常用任务与全局变量的使用全局变量会穿插在任务中介绍 不会单独列出来了奥用户任务用户任务 可以理解为我们常说的审批,工作流本身的意义在于自动执行某些业务逻辑,然而用户任务打断了所谓的自动,用户任务需要用户进行审批通过才能继续执行当前流程实例既然是需要审批的 那么就需要一个审批人,这个审批人Camunda 本身是维护一个用户列表的 但是使用中肯定是不方便的,我看其他有些人是通过把自己的用户信息同步到Camunda

2021-05-03 14:10:33 5186 12

原创 工作流之Camunda开发记录(一)----常用API与流程

它是什么 一种工作流引擎,是Activiti的变种,他怎么来的其他很多地方有介绍 我不怎么关心做什么 我本次记录的是作为工作流引擎使用 进行二次封装开发 只用他的一个壳子 具体流程是: 1、前端传他自己的Json结构。当然必要时需要添加后端定制化的东西 2、后端解析为Camunda识别的Json结构 3、解析中需要通过camunda 的 用户任务与服务任务调用自己业务的逻辑 4、发布流程定义

2021-05-03 13:25:00 10486 15

原创 ClickHouse (一) ------Mac下的安装

ClickHouse只能在linux安装所以在Mac下 我是通过Docker安装的1、前提安装 homebrew2、安装dockerbrew install --cask --appdir=/Applications docker安装完成后在application找到docker图标 启动3、安装ClickHouse客户端:docker pull yandex/clickhouse-client服务端:docker pull yandex/clickhouse-server4、启动镜像

2021-01-20 18:54:16 5871

原创 LetCode刷题记录--No3-无重复字符的最长子串

这道题 思路是半路卡住了 看到题目瞬间想到了Map解决 但是没想到特别好的解决办法,暴力接法会很慢,后来看了某大神的分享,根据自己理解 完成了题目题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。示例 1:输入: s = “abcabcbb”输出: 3解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。示例 2:输入: s = “bbbbb”输出: 1解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。示例 3:输入: s = “pw.

2021-01-02 22:52:18 95

原创 LeetCode刷题记录--No.205-同构字符串

为啥突然蹦到了这道题呢,本来想休息了,但是每日题目刷新了百城了这个,看了一眼 好像可以用刚刚学到的map去解,忍不住去试了一下 还真可以,明天再研究最优解题目:给定两个字符串 s 和 t,判断它们是否是同构的。如果 s 中的字符可以被替换得到 t ,那么这两个字符串是同构的。所有出现的字符都必须用另一个字符替换,同时保留字符的顺序。两个字符不能映射到同一个字符上,但字符可以映射自己本身。示例 1:输入: s = “egg”, t = “add”输出: true示例 2:输入: s =.

2020-12-27 00:58:06 127 4

原创 LeetCode刷题记录--No.1-两数之和

这个题如果用暴力算法简单的很哈 看一眼就知道咋写了但是有另一种hash算法 时间复杂度优化,利用map的hash题目. 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个 整数,并返回他们的数组下标。你可以假设每种输入只会对应一个答案。但是,数组中同一个元素不能使用两遍。示例:给定 nums = [2, 7, 11, 15], target = 9因为 nums[0] + nums[1] = 2 + 7 = 9所以返回 [0, 1]来源:力.

2020-12-27 00:25:02 90

原创 LeetCode刷题记录--No.2-两数相加

最近回归工作,觉得自己好菜,啥都要学。本人半路出家,算法菜????之前零零散散刷过一阵leetcode最近打算重新拾起,从头刷起,这里记录的目的在于 二次记忆,毕竟题不一定是靠自己解出来的哈哈哈题目:给出两个 非空 的链表用来表示两个非负的整数。其中,它们各自的位数是按照 逆序 的方式存储的,并且它们的每个节点只能存储 一位 数字。如果,我们将这两个数相加起来,则会返回一个新的链表来表示它们的和。您可以假设除了数字 0 之外,这两个数都不会以 0 开头。示例:输入:(2 ->

2020-12-26 23:45:22 149

原创 Java实现登录与注销--JWT(2)

上文介绍了JWT的创建 与 拦截器的配置这篇基于上篇文档jwt生成token后的在登录中的具体使用(ps:因为我也是探索使用 所以陆续更新。有好的建议也欢迎指出)首先拦截器和 JwtTokenUtil我重新放一个。可能会有些许区别此篇文章加入了会话管理token的存储。当然你可以自己切换为redis管理。因为隐私问题 不方便透漏包名。请自行添加 若少什么不会的东西 可以留言 我会提供/** * @author chunying * @Date 2020.12.06 * @Descript

2020-12-15 17:14:46 1922 11

原创 java手动实现JWT(我和别人的不一样)

JWT是啥我不会官方语言,我只会最简单的解释 json web token为什么要用这个东西简单点说 现在都流行前后端分离开发,如果需要一个前后端的通讯验证,最简单的cookie+session可以完成这个任务。但是会有问题昂,万一给你浏览cookie器禁了咋整,现在的用户才是老大哥不是,所以呢 就出现这个东西了它能干点啥网上一搜一大片最多的就是。单点登录 + jwt。但是这两个东西不是一定要混为一谈的。jwt是jwt 简单点 他就是提供了一点token验证的方式,而不是一定要去作单点登录。(

2020-12-08 13:54:39 627

原创 20201122---整理面试问题

最近回北京重新找工作,面试(2.5年工作经验Java开发)也没好好准备背题啥的,就直接上阵了,那肯定是会被怼的现整理一波不会的不熟的以作记录 我也没查正确答案 完全就是自己的理解不分先后,想起来啥写啥1、MySQL优化 这个是必问的 我就把日常会用到的说一说 欢迎大神补充重点a)表结构:用适用字段,能用int不用vachar 前者对于mysql来说处理速度是比较快的b) sql语句:一般就是从sql优化说起来,sql优化一般就是从索引说起来,要适量加索引,这里可以展开说好多关于索引的东西

2020-11-22 22:45:03 132

原创 数据结构与算法学习3------单向链表的实现

单项链表,本次写的是含有头指针的单向链表,有add()、delete()、和遍历方法实现,基本思路都是采用指针法进行元素一一对应 来操作。package com.chunying;/** * @author chunying * @Date: 2020/7/1 0001 */// 单向链表带头指针 的实现 整体采用指针法进行增加、删除以及遍历public class LinkedList { private final HeroNode head = new HeroNode(n

2020-07-01 22:25:07 157

原创 数据结构与算法学习2-----数组实现队列

首先说一下队列的特性,和栈正好相反是先进先出,也就是说谁先进来先出去的就是谁这次要实现的是一个简单的队列,有add和 delete 以及打印数据的方法其中add()方法采用尾插法,其中会考虑到空间重复利用的问题package array;//用数组模拟实现队列 和栈相反 栈是头插法、尾删除 队列是尾插法、头删除public class Queue { private int[] value = new int[20]; int head = -1; //头指针 一

2020-06-30 02:23:25 128 2

原创 数据结构与算法学习1-----稀疏数组

最近失眠很严重,所以想借空闲时间重温也是学习一下数据结构,通过某大神的视频这里主要呈现一些代码的实现和一些我个人的理解,如有出入,还请见谅这篇是稀疏数组与二维数组的相互转换为什么要用稀疏数组呢,我们说二维数组 是能展现一个图形上是四边形的数据,因为有行和列,如果是一个11*11的二维数组,就是121个点,也就是存121份数据。我们可以把创建数组后没有操作的数据叫做默认数据如果这121份数据几乎都是默认数据,用二维数组存放至文件或者磁盘 是不是很浪费空间呢,此时就可以用稀疏数组来实现如下图(鄙人不善

2020-06-30 02:15:36 141

原创 记一次奇怪的白屏之旅

前情纪要好久没写博客了,因为最近真的很忙,最近要补上几大篇,就从前几天一次诡异的白屏开始。新年之后返工接了一个迭代的项目,几个月从V1.1迭代到了V1.4。进入正题先说下业务手机端,大概就是一个携带appid和业务域名等等的链接,前端在跳板页通过重定向链接拿到code值去后端换openID 其余都是正常业务,和微信无关了。唯一有关的是在微信浏览器,入口要走公众号。从1.0版本开始 陆续有售后反映说访问手机端偶尔会白屏。一直没查出是什么原因,上线的那个晚上,甚是难熬,后端几乎没什么问题,前端小姐姐,

2020-05-13 18:05:00 238

原创 Git commit代码后撤销方法

一般git提交代码分为三步第一步 add 到本地暂存区第二步 commit 提交到本地仓库第三步 push到代码远程仓库我们看第二步 一般我们开发用idea直接操作后但是发现commit错了 push的时候不想带它怎么办(简单啊:删除掉重新clone啊/手动滑稽)页面下方打开terminal输入:git reset --soft HEAD~1即可回退到上次commit...

2020-01-06 17:54:40 2174

原创 微信公众号生成带参数二维码跳转关注与未关注以及事件推送

首先说下业务场景需要从某个页面生成二维码,用户扫描二维码,如果已关注公众号,跳到公众号页面,推送小程序链接如果还未关注公众号,跳转到关注页面,关注公众号后推送小程序链接。当然从公众号跳转到小程序,多多少少是需要带一点业务相关参数的。本篇主要将二维码生成,以及事件推送一、二维码生成根据官方文档介绍,目前公众号二维码主要有永久和临时两种,但是永久二维码是有数量限制的,临时二维码携带参数又有...

2019-12-20 11:45:18 8948 9

原创 springboot actuator简单使用教程

一、springboot项目:利用 actuator 1.5.x (ps:在2.x中 使用上不同点较多)1、首先需要确定自己的springboot版本 pom文件中2、根据springboot版本确定actuator对应版本,目前我自己试用发现 需要和springboot 小版本号对应,对应我这个就是1.5.x即可3、pom文件中添加依赖 org.springframewor...

2019-12-16 14:34:52 1430

原创 微信公众平台unionID简介以及小程序获取unionID机制

每一个微信号基于微信官方不同的应用都会生出不同的openID(两个公众号,一个公众号一个小程序等)如果我们的程序想要同一个用户在两个应用的openID或者关系能关联起来,那么就需要unionID机制来完成首先在同一个微信公众平台下绑定的不同微信应用对应同一个用户才会生成同一个unionID,而且没有绑定过微信公众平台的时候,通过微信API访问的用户信息是没有unionID这个字段的所以我...

2019-12-12 15:36:46 1894

原创 Ehcache 集群改造-----增加手动发现方式自动增加减机器机制

上一篇文章谁了ehcache基于RMI手动发现集群的搭建但是手动发现有很多限制,比如不能动态增加机器,使用中有很多不方便所以就根据ehcache的机制 加了一个轮询功能 类似心跳机制 去检查当前生效的链接放代码前,先说一下思路:ehcache 手动发现机制,在项目启动时 会读取xml配置文件的值,然后放到一个map里面。如下操作是这个类操作的就是简单的map操作而已map里面 ...

2019-11-15 18:30:25 336

原创 Ehcache 基本使用 以及 基于RMI集群搭建

ehcache是一个很成熟的基于jvm内存的缓存框架,其效率是要比redis基于socket要高的,一般ehcache可以配合数据库做一个缓存中间件来减少数据库的访问压力。 见过很多人包括我自己之前也有这样的疑问:ehcache比jvm的static 集合好在哪里。 1、首先在存储大小方面 ehcache是和static map存储差不多的。稍微小一丢丢,算是个可忽略的优势 ...

2019-11-14 18:18:09 860

JavaEE API

JavaEE API中英文对照版。全中文的相信我都是不全的 , 基本的还是能看懂的吧。

2017-09-30

JAVA疯狂讲义

java疯狂讲义pdf版 可以看看感兴趣就可以去买实体书籍呀~~~~

2017-03-28

空空如也

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

TA关注的人

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