<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[会写代码的鱼的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/java_code_net</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; java_code_net]]></copyright><item><title><![CDATA[Golang中的defer关键字的用法、原理以及它的坑]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/94976939</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/94976939</guid><author>java_code_net</author><pubDate>Sun, 07 Jul 2019 12:22:25 +0800</pubDate><description><![CDATA[延迟函数调用（deferred function call）是golang中很有特点的一个功能，通过defer修饰的函数调用会在函数退出的时候才被真正调用，它可以用来进行资源释放等收尾工作。
一个普通的函数调用被defer关键字修饰以后，就构成了一个延迟函数调用，和协程调用类似，被延迟的函数调用的所有返回值都会全部被舍弃。
延迟函数调用的用法
首先我们看看延迟函数调用的用法，它的用法其实很简单！
...]]></description><category></category></item><item><title><![CDATA[聊聊几种基本限流算法]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/90417390</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/90417390</guid><author>java_code_net</author><pubDate>Tue, 21 May 2019 23:03:01 +0800</pubDate><description><![CDATA[对于一个分布式系统而言，如何保证系统的稳定可靠，永远都是头等大事。缓存、限流和降级是最有效也是我们最常用的手段，今天我们就一起来看看分布式系统是如何进行限流的。
为什么要限流
原因很简单，资源是有限的，我们的系统的接待能力也是有限的，对于那些已经超出系统接待能力的请求我们应该尽可能早的识别出来并让其等待或拒绝这些请求。
如果当大流量进入系统的时候不进行限流，那么处理请求能力最差的一个子系统将会最先...]]></description><category></category></item><item><title><![CDATA[Java内存泄漏！为什么会泄漏？如何泄漏？怎么定位？]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89417741</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89417741</guid><author>java_code_net</author><pubDate>Sat, 20 Apr 2019 15:05:43 +0800</pubDate><description><![CDATA[JVM应该可以算Java中最为核心的部分了，其中开箱即用的内存管理又是JVM中的核心组成部分。我们都知道JVM的内存管理具有垃圾回收功能（Java Garbage Collector），编码时只需要new而无需主动的释放（类似于C++中的delete操作），所以Java中比较少出现内存泄露的情况。比较少出现，并不一定就不会出现，那么Java程序在什么时候会出现内存泄露呢？出现内存泄露该如何排查呢？...]]></description><category></category></item><item><title><![CDATA[线程池异常信息统一处理，从线程异常信息丢失说起]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89414896</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89414896</guid><author>java_code_net</author><pubDate>Sat, 20 Apr 2019 11:28:19 +0800</pubDate><description><![CDATA[异常信息作为我们平时定位问题的一大法宝，其重要性是不言而喻的。一段代码出现了问题，如果它的异常信息被吃了，那么一个本来很简单的问题，定位起来也会变的很麻烦。
今天我们就从异常信息被吃掉，导致相应信息没有输出到日志的问题说起。
一个简单的例子
首先我们看看如下的代码：
public class ThreadLogTestApplication {

    public static void ma...]]></description><category></category></item><item><title><![CDATA[LeetCode算法题：008-字符串转换整数 (atoi)]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89293791</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89293791</guid><author>java_code_net</author><pubDate>Sun, 14 Apr 2019 10:52:44 +0800</pubDate><description><![CDATA[题目：

请你来实现一个 atoi 函数，使其能将字符串转换成整数。
在任何情况下，若函数不能进行有效的转换时，请返回 0。

说明：

假设我们的环境只能存储 32 位大小的有符号整数，那么其数值范围为 [−231,  231 − 1]。如果数值超过这个范围，请返回  INT_MAX (231 − 1) 或 INT_MIN (−231) 。

示例 1:

输入: “42”
输出: 42

示例...]]></description><category></category></item><item><title><![CDATA[LeetCode算法题：007- 整数反转]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89293770</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89293770</guid><author>java_code_net</author><pubDate>Sun, 14 Apr 2019 10:51:00 +0800</pubDate><description><![CDATA[题目：

给出一个 32 位的有符号整数，你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:
假设我们的环境只能存储得下 32 位的有符号整数，则其数值范围为 [−2^31,  2^31 − 1]。请根据这个假设，如果反转后整数溢出那么就返回 0。
分析...]]></description><category></category></item><item><title><![CDATA[如何优雅的创建一个Java不可变对象类，JDK源码中也是这么干的！]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89284610</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89284610</guid><author>java_code_net</author><pubDate>Sat, 13 Apr 2019 16:28:43 +0800</pubDate><description><![CDATA[前面有篇文章当介绍了Java的不可变对象的一些特性，以及它的一些好处，但是并没有介绍如何实现一个不可变对象类。今天就来看看如何实现一个不可变对象类。
Java中常用的不可变对象类
String类应该是我们最常使用的不可变对象类。其实除了String以外，在JDK中还定义了很多不可变对象类，比如：基础类型的封装类（Integer、Long等）、时间相关的类（LocalDate、LocalTime等）...]]></description><category></category></item><item><title><![CDATA[一张图描述Spring AOP的全过程]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89070478</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89070478</guid><author>java_code_net</author><pubDate>Sun, 07 Apr 2019 15:47:48 +0800</pubDate><description><![CDATA[先上一张整体大图，后续对各个部分进行详细分析！

扫码关注
头条号：　　微信公众号：

]]></description><category></category></item><item><title><![CDATA[动画演示LeetCode算法题：005-Z 字形变换]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89065179</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89065179</guid><author>java_code_net</author><pubDate>Sun, 07 Apr 2019 09:08:58 +0800</pubDate><description><![CDATA[题目：

将一个给定字符串根据给定的行数，以从上往下、从左到右进行 Z 字形排列。
比如输入字符串为 “LEETCODEISHIRING” 行数为 3 时，排列如下：
L   C   I   R
E T O E S I I G
E   D   H   N
之后，你的输出需要从左往右逐行读取，产生出一个新的字符串，比如：“LCIRETOESIIGEDHN”。
请你实现这个将字符串进行指定行数变换的函...]]></description><category></category></item><item><title><![CDATA[动画演示LeetCode算法题：005-最长回文子串，多种实现方式]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89041266</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89041266</guid><author>java_code_net</author><pubDate>Fri, 05 Apr 2019 11:10:59 +0800</pubDate><description><![CDATA[题目：

给定一个字符串 s，找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例1：

输入: “babad”
输出: “bab”
注意: “aba” 也是一个有效答案。

示例2：

输入: “cbbd”
输出: “bb”

分析
首先什么是回文字符串？回文字符串就是整个字符串以中轴对称的字符串，比如：“abcdcba”、"abba"都是回文字符串。毫无疑问空字符串和长...]]></description><category></category></item><item><title><![CDATA[动画演示LeetCode算法题：004-寻找两个有序数组的中位数]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89041245</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89041245</guid><author>java_code_net</author><pubDate>Fri, 05 Apr 2019 11:08:32 +0800</pubDate><description><![CDATA[题目：

给定两个大小为 m 和 n 的有序数组 nums1 和 nums2。
请你找出这两个有序数组的中位数，并且要求算法的时间复杂度为 O(log(m + n))。
你可以假设 nums1 和 nums2 不会同时为空。

示例1：

nums1 = [1, 3]
nums2 = [2]
则中位数是 2.0

示例2：

nums1 = [1, 2]
nums2 = [3, 4]
则中位数是 ...]]></description><category></category></item><item><title><![CDATA[LeetCode 003:无重复字符的最长子串]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89040689</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89040689</guid><author>java_code_net</author><pubDate>Fri, 05 Apr 2019 10:19:31 +0800</pubDate><description><![CDATA[题目：

给定一个字符串，请你找出其中不含有重复字符的 最长子串 的长度。

示例1：

输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”，所以其长度为 3。

示例2：

输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”，所以其长度为 1。

示例3：

输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是...]]></description><category></category></item><item><title><![CDATA[LeetCode 001:两数之和]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89040603</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89040603</guid><author>java_code_net</author><pubDate>Fri, 05 Apr 2019 10:11:50 +0800</pubDate><description><![CDATA[题目：

给定一个整数数组nums和一个目标值target，请你在该数组中找出和为目标值的那两个整数，并返回他们的数组下标。
你可以假设每种输入只会对应一个答案。但是，你不能重复利用这个数组中的元素。

示例：

给定 nums = [2,7,11,15], target = 9
因为 nums[0] + nums[1] = 2 + 7 = 9
所以返回 [0,1]

作为Leetcode上的第一...]]></description><category></category></item><item><title><![CDATA[LeetCode 002:两数相加]]></title><link>https://blog.youkuaiyun.com/java_code_net/article/details/89040402</link><guid>https://blog.youkuaiyun.com/java_code_net/article/details/89040402</guid><author>java_code_net</author><pubDate>Fri, 05 Apr 2019 09:56:20 +0800</pubDate><description><![CDATA[题目：

给出两个 非空 的链表用来表示两个非负的整数。其中，它们各自的位数是按照 逆序 的方式存储的，并且它们的每个节点只能存储 一位 数字。
如果，我们将这两个数相加起来，则会返回一个新的链表来表示它们的和。
您可以假设除了数字 0 之外，这两个数都不会以 0 开头。

示例：

输入：(2 -&gt; 4 -&gt; 3) + (5 -&gt; 6 -&gt; 4)
输出：7 -&gt; 0...]]></description><category></category></item></channel></rss>