<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[java_ying的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_ying</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_ying]]></copyright><item><title><![CDATA[Mysql主从配置]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/133882712</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/133882712</guid><author>java_ying</author><pubDate>Tue, 17 Oct 2023 14:30:35 +0800</pubDate><description><![CDATA[修改从库配置 这里的后面两个值就是上面主库查出来的如果配错了 需要停掉从库服务  stop slave;第一步登录mysql。]]></description><category></category></item><item><title><![CDATA[记一次通过arthas+profilier解决队列内存爆炸问题]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/127009439</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/127009439</guid><author>java_ying</author><pubDate>Fri, 23 Sep 2022 14:07:02 +0800</pubDate><description><![CDATA[arthas 解决 disruptor的ringbuffer 内存过高问题]]></description><category></category></item><item><title><![CDATA[Clickhouse 踩坑之旅 ---- MergeTree不合并分区的问题]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/125662876</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/125662876</guid><author>java_ying</author><pubDate>Thu, 07 Jul 2022 17:19:09 +0800</pubDate><description><![CDATA[clickhouse 分区不合并 、 too many parts]]></description><category></category></item><item><title><![CDATA[MacOS idea打不开解决方法]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/123871091</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/123871091</guid><author>java_ying</author><pubDate>Thu, 31 Mar 2022 14:26:07 +0800</pubDate><description><![CDATA[前提纪要


如果你是因为修改了 idea.vmoptions 配置文件后重启打不开 请看此方法
若不是 请勿浪费时间


首先我们找错误的方法


找到访达—&gt;应用程序----&gt;找到你要打开的idea 右键
----&gt; 选择显示包内容----&gt;Contents----&gt;MacOS----&gt;idea打开
会跳出黑窗口  请寻找报错信息 每个人的不一样 我的是说我的jdk版本信息对不上  回想一下昨天改了配置文件的垃圾回收器可能改错了
首先改这个目录的 idea.vmop.]]></description><category></category></item><item><title><![CDATA[记一次 while(true) 产生的CPU爆满]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/122583955</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/122583955</guid><author>java_ying</author><pubDate>Wed, 19 Jan 2022 16:38:24 +0800</pubDate><description><![CDATA[背景


最近工作中碰到一个问题
测试系统稳定性的时候发现 CPU 一直爆满
经过多方面排查 发现是多处用了while(true)


处理办法


在while(true) 的代码中加一个 Thread.sleep(1)即可


事后思考


为什么呢 那就得回顾一下操作系统相关的知识
操作系统的 CPU 现在可能有四核、八核、16核 但是我们打开tomcat线程数一看有120多
那么操作系统的 CPU 就要有正确的调度规则 , 操作系统中有很多算法 Unix系统使用的是时间片算法，而Windows则属.]]></description><category></category></item><item><title><![CDATA[Gradle｜Maven多模块开发解决循环依赖]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/120765664</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/120765664</guid><author>java_ying</author><pubDate>Thu, 14 Oct 2021 16:02:50 +0800</pubDate><description><![CDATA[前提纪要

公司目前是gradle多模块开发 没有用到传统互联网公司的分布式 springCloud、dubbo等
差不多是20个jar包 一个底座war 依赖所有jar包
有公共模块framework、core等

问题出现

前面说过是多模块开发 其中有两个模块比较特殊
一个是 定时调度暂且称为T、一个是数据抽取Etl 暂且称为E
目前的业务要求是T需要调用E中的运行方法、E需要获取T中的定时运行状态以及记录
按照分布式的解决方法很简单就利用Rpc相互调用方法就行了 也不存在直接依赖关系
如图


解决]]></description><category></category></item><item><title><![CDATA[Leetcode剑指 Offer 24. 反转链表]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/120267281</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/120267281</guid><author>java_ying</author><pubDate>Mon, 13 Sep 2021 15:02:06 +0800</pubDate><description><![CDATA[题目：
定义一个函数，输入一个链表的头节点，反转该链表并输出反转后链表的头节点。
示例:
输入: 1-&gt;2-&gt;3-&gt;4-&gt;5-&gt;NULL
输出: 5-&gt;4-&gt;3-&gt;2-&gt;1-&gt;NULL
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/fan-zhuan-lian-biao-lcof
解题思路

反转链表：遍历原链表 每次新链表 =  新元素 + 上次的新链表

代码实现
public List]]></description><category></category></item><item><title><![CDATA[Leetcode1894. 找到需要补充粉笔的学生编号]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/120220269</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/120220269</guid><author>java_ying</author><pubDate>Fri, 10 Sep 2021 13:52:08 +0800</pubDate><description><![CDATA[题目：

一个班级里有 n 个学生，编号为 0 到 n - 1 。每个学生会依次回答问题，编号为 0 的学生先回答，然后是编号为 1 的学生，以此类推，直到编号为 n - 1 的学生，然后老师会重复这个过程，重新从编号为 0 的学生开始回答问题。
给你一个长度为 n 且下标从 0 开始的整数数组 chalk 和一个整数 k 。一开始粉笔盒里总共有 k 支粉笔。当编号为 i 的学生回答问题时，他会消耗 chalk[i] 支粉笔。如果剩余粉笔数量 严格小于 chalk[i] ，那么学生 i 需要 补充 粉笔。
]]></description><category></category></item><item><title><![CDATA[Leetcode新手做题1221. 分割平衡字符串]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/120151976</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/120151976</guid><author>java_ying</author><pubDate>Tue, 07 Sep 2021 10:05:01 +0800</pubDate><description><![CDATA[题目

在一个 平衡字符串 中，‘L’ 和 ‘R’ 字符的数量是相同的。
给你一个平衡字符串 s，请你将它分割成尽可能多的平衡字符串。
注意：分割得到的每个字符串都必须是平衡字符串。
返回可以通过分割得到的平衡字符串的 最大数量 。
示例 1：
输入：s = “RLRRLLRLRL”
输出：4
解释：s 可以分割为 “RL”、“RRLL”、“RL”、“RL” ，每个子字符串中都包含相同数量的 ‘L’ 和 ‘R’ 。
示例 2：
输入：s = “RLLLLRRRLR”
输出：3
解释：s 可以分割为 “RL”]]></description><category></category></item><item><title><![CDATA[LeetCode---剑指 Offer 22. 链表中倒数第k个节点]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/120057472</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/120057472</guid><author>java_ying</author><pubDate>Thu, 02 Sep 2021 11:31:56 +0800</pubDate><description><![CDATA[题目


输入一个链表，输出该链表中倒数第k个节点。为了符合大多数人的习惯，本题+ 从1开始计数，即链表的尾节点是倒数第1个节点。
例如，一个链表有 6 个节点，从头节点开始，它们的值依次是 1、2、3、4、5、6。这个链表的倒数第 3 个节点是值为 4 的节点。
示例：


给定一个链表: 1-&gt;2-&gt;3-&gt;4-&gt;5, 和 k = 2.
返回链表 4-&gt;5.
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/lian-bi]]></description><category></category></item><item><title><![CDATA[Java基础知识---HashMap线程不安全的部分原因]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/119936832</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/119936832</guid><author>java_ying</author><pubDate>Thu, 26 Aug 2021 17:58:25 +0800</pubDate><description><![CDATA[想要说清楚HashMap线程不安全的事情 分两部分

JDK 1.8 以前

HashMap底层是数组+链表以前人尽皆知了



那说一个不是人尽皆知的问题，HashMap放入新元素是采用头插法，什么是头插法呢：
一个数组  Int[] array = {1,2,3,4}
我们想放入一个新的元素0  就是Int[] array = {0,1,2,3,4}



再说一个问题 HashMap 是有容量上限的  再超过上限的时候 但凡是一个集合都会开始扩容 当然他也不例外
所以怎么扩容呢
原Map 重新计算放.]]></description><category></category></item><item><title><![CDATA[新手LetCode541 --- 反转字符串二]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/119817819</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/119817819</guid><author>java_ying</author><pubDate>Fri, 20 Aug 2021 10:37:34 +0800</pubDate><description><![CDATA[题目

给定一个字符串 s 和一个整数 k，从字符串开头算起，每 2k 个字符反转前 k 个字符。
如果剩余字符少于 k 个，则将剩余字符全部反转。
如果剩余字符小于 2k 但大于或等于 k 个，则反转前 k 个字符，其余字符保持原样。
来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/reverse-string-ii

思路

反转字符串 老生常谈 用栈 或者双指针 一个向左一个向右
这道题用人话讲 就是每隔k个反转k个
问题在于第一次反转后的处理
]]></description><category></category></item><item><title><![CDATA[LeetCode今日题目------------反转字符串中的元音字母]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/119807288</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/119807288</guid><author>java_ying</author><pubDate>Thu, 19 Aug 2021 17:40:16 +0800</pubDate><description><![CDATA[题目


给你一个字符串 s ，仅反转字符串中的所有元音字母，并返回结果字符串。


元音字母包括 ‘a’、‘e’、‘i’、‘o’、‘u’，且可能以大小写两种形式出现。



用人话说：反转字符串中符合要求的字符们

思路

如果是单纯的反转字符串 第一个想到的是可以用栈解决，这道题应该也可以
脑袋又转了转 可以标记每次发现的元音字符以及出现的位置，然后再反着放回去
进阶一下 每次把正反两次的字符都记住 然后交换位置
好吧 我得承认 我百度了一下什么是原因字母 (ps:此处笑脸)

乱七八糟的代码 （肯定是]]></description><category></category></item><item><title><![CDATA[Java---文件指定行添加内容]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/119612876</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/119612876</guid><author>java_ying</author><pubDate>Wed, 11 Aug 2021 17:46:41 +0800</pubDate><description><![CDATA[/**
     * 指定路径文件 从 flagStr 按行添加 writeContent
     * @param writeContent
     * @param path
     * @param flagStr
     * @throws IOException
     * @throws URISyntaxException
     */
    public static void write2File(List&lt;String&gt; writeContent, String]]></description><category></category></item><item><title><![CDATA[Java 生成随机长度字母组合]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/118728656</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/118728656</guid><author>java_ying</author><pubDate>Wed, 14 Jul 2021 15:24:24 +0800</pubDate><description><![CDATA[需求

最近在做数据模型相关 需要手动将图形化操作转换成 数据库关联查询join 语句
这里就有一个表别名的问题 所以需要随机的字母组合

代码
// 这里是种子字母 当然如果需要可以加上数字 已经把大小写区分不明显的去掉了
public static Character[] words = new Character[]{'a', 'b', 'd', 'e', 'f', 'g', 'h', 'm', 'n', 'q', 'r', 't', 'y',
                            ]]></description><category></category></item><item><title><![CDATA[jar包读取资源文件报错：找不到资源文件(No such file or directory)]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/117920977</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/117920977</guid><author>java_ying</author><pubDate>Tue, 15 Jun 2021 13:48:28 +0800</pubDate><description><![CDATA[现象
先看一段代码
File readFile = null;
        try {
            String path = this.getClass().getClassLoader().getResource(fileLocation).getPath();
            readFile = new File(path);
        } catch (Exception e) {
            logger.error("=================]]></description><category></category></item><item><title><![CDATA[Mac下Homebrew切换源]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/117748021</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/117748021</guid><author>java_ying</author><pubDate>Wed, 09 Jun 2021 16:49:29 +0800</pubDate><description><![CDATA[替换为阿里源

查看 brew.git 当前源
$ cd “$(brew --repo)” &amp;&amp; git remote -v
origin	https://github.com/Homebrew/brew.git (fetch)
origin	https://github.com/Homebrew/brew.git (push)


查看 homebrew-core.git 当前源
$ cd “$(brew --repo homebrew/core)” &amp;&amp; git remo]]></description><category></category></item><item><title><![CDATA[记一次由于 TCP 连接过多引起的错误 java.net.SocketException: Too many open files]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/117660301</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/117660301</guid><author>java_ying</author><pubDate>Mon, 07 Jun 2021 16:03:49 +0800</pubDate><description><![CDATA[背景

最近项目开始集成测试，测试同学会不停打入数据测试稳定性
所以问题就这么出现了

现象以及分析

项目启动报错
Caused by: java.net.UnknownHostException: xxxxmysql
at java.net.InetAddress.getAllByName0(InetAddress.java:1281)
at java.net.InetAddress.getAllByName(InetAddress.java:1193)
at java.net.InetAddress.]]></description><category></category></item><item><title><![CDATA[Synchronized锁机制详解]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/116707930</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/116707930</guid><author>java_ying</author><pubDate>Thu, 13 May 2021 15:35:11 +0800</pubDate><description><![CDATA[锁是一种怎样的存在

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

Synchronized

...]]></description><category></category></item><item><title><![CDATA[工作流之Camunda开发记录（三）---- 监听器的基本使用]]></title><link>https://blog.youkuaiyun.com/java_ying/article/details/116494070</link><guid>https://blog.youkuaiyun.com/java_ying/article/details/116494070</guid><author>java_ying</author><pubDate>Fri, 07 May 2021 15:35:00 +0800</pubDate><description><![CDATA[前情纪要

前面我记录了camunda的基本使用
传送门
还有用户任务和服务任务 以及 全局变量的使用
传送门
目前camunda已经可以正常运行，但是不正常的时候我们怎么办，就需要用到监听，需要程序帮我们盯着他看，到底执行到哪了，到哪坏了，方便事后查错（ps:我就是干这个用）还有前端实时显示目前工作流执行情况

监听器简介

监听器顾名思义，就是监听的机器(/手动滑稽),言归正传 这里我用到的监听大概有三种
分别是
start：启动监听  不能加在序列流上面
end：结束监听   不能加在序列流上面
ta]]></description><category></category></item></channel></rss>