<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[I am growing~. ]]></description><link>https://blog.youkuaiyun.com/Joined</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Joined]]></copyright><item><title><![CDATA[【go之一】GMP模型]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/155718023</link><guid>https://blog.youkuaiyun.com/Joined/article/details/155718023</guid><author>Joined</author><pubDate>Tue, 09 Dec 2025 00:02:10 +0800</pubDate><description><![CDATA[M：machine，内核线程。它是真正在 CPU 上执行代码的实体。M 由操作系统调度。（上面图有点错误，M时机上是在 kernel space。G： goroutine，协程。它包含了要执行的函数、栈、上下文等信息。Goroutine 的栈初始很小（通常 2KB）P：管理执行的上下文&G等。（用户线程，一个用户线程有一个P）global queue： 实际上实在进程的堆上面放着。本质就是一个生产消费模型。]]></description><category></category></item><item><title><![CDATA[Volatile and CAS总结]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/88377478</link><guid>https://blog.youkuaiyun.com/Joined/article/details/88377478</guid><author>Joined</author><pubDate>Sun, 10 Mar 2019 21:33:16 +0800</pubDate><description><![CDATA[前言：

今天被al小哥哥问了几个问题，回答的问题在很大程度上代表你对这个问题的深刻理解。然而 自己...真的真的 没有把一些东西真正的理解透啊。

知识点不在于 看了多少遍，在于不断的 系统的去总结、分析、理解。

本着对volatile的理解，提出来几个问题？

1.volatile怎么实现的可见性？--&gt;MESI协议

2.cas怎么实现的可见性? --&gt;也是用的MESI协议
...]]></description><category></category></item><item><title><![CDATA[【JVM之五】双亲委派模型]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/86319836</link><guid>https://blog.youkuaiyun.com/Joined/article/details/86319836</guid><author>Joined</author><pubDate>Fri, 11 Jan 2019 22:13:31 +0800</pubDate><description><![CDATA[昨天突然想到了一个点，这个双亲委派模型的意义是什么呀 ?如果说没有这个模型会变的怎么样？

双亲委派模型 有几类 类加载器 ：

启动类加载器（Bootstrap classloader）、扩展类加载器(Extension classloader) 、 应用程序类加载器(Application classloader)

还有的就是 自定义类加载器啦。 他们之间的关系如下图。 上下的关系是组合的...]]></description><category></category></item><item><title><![CDATA[【JVM之四】类加载机制]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/83212561</link><guid>https://blog.youkuaiyun.com/Joined/article/details/83212561</guid><author>Joined</author><pubDate>Mon, 22 Oct 2018 12:28:36 +0800</pubDate><description><![CDATA[首先盗张图，哈哈哈哈，盗了不少师兄的图哇，感觉画的很棒！（向师兄学习！）



一、类加载机制是什么？



我们知道源程序编译完了之后会把生成的字节码文件保存的信息加载到虚拟机内存当中。这过程中会经过验证、准备、解析、初始化。最后会形成一种能被java虚拟机使用的类型，这就是类加载机制。当然了，我们使用完了之后也是要卸载了的，就是把它清理出去。这张图能看到class文件里面的信息从进入虚拟机到被...]]></description><category></category></item><item><title><![CDATA[环形子数组的最大和]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/82975074</link><guid>https://blog.youkuaiyun.com/Joined/article/details/82975074</guid><author>Joined</author><pubDate>Mon, 08 Oct 2018 22:46:25 +0800</pubDate><description><![CDATA[显然是求最大字段和的升级版啊！

题意：就是给你些数，构成一个首位接应的环，然后求出最大子数组的和！

给几个实例把：


示例 1：

输入：[1,-2,3,-2]
输出：3
解释：从子数组 [3] 得到最大和 3
示例 2：

输入：[5,-3,5]
输出：10
解释：从子数组 [5,5] 得到最大和 5 + 5 = 10
示例 3：

输入：[3,-1,2,-1]
输出：4
解释：从子数组 ...]]></description><category></category></item><item><title><![CDATA[【JVM之二】垃圾回收]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/82961831</link><guid>https://blog.youkuaiyun.com/Joined/article/details/82961831</guid><author>Joined</author><pubDate>Sun, 07 Oct 2018 23:44:44 +0800</pubDate><description><![CDATA[我感觉这句话特别好：java和c++之间有堵内存动态分配和垃圾收集技术构成的高墙，墙内的人想出去，墙外的人想进来。哈哈哈，有点围城的感觉。

GC触发条件：


Minor GC
Eden区满，即触发Minor GC
Full GC
1. 调用System.gc()，建议执行
2. 老年代空间不足
3. 方法区（永久代，元空间，metaspace）空间不足
4. 通过Minor GC进入老年代大于...]]></description><category></category></item><item><title><![CDATA[【JVM之三】String与intern（）方法]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/82955501</link><guid>https://blog.youkuaiyun.com/Joined/article/details/82955501</guid><author>Joined</author><pubDate>Sun, 07 Oct 2018 03:40:08 +0800</pubDate><description><![CDATA[哎呦，发现了一个总结的不错的blog：https://tech.meituan.com/in_depth_understanding_string_intern.html

JDK API文档中对intern()方法的描述是：返回字符串对象的规范化表示形式。一个初始为空的字符串池，它由类 String 私有地维护。当调用 intern 方法时，如果池已经包含一个等于此 String 对象的字符串（...]]></description><category></category></item><item><title><![CDATA[KMP算法]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/82946808</link><guid>https://blog.youkuaiyun.com/Joined/article/details/82946808</guid><author>Joined</author><pubDate>Fri, 05 Oct 2018 21:48:01 +0800</pubDate><description><![CDATA[下面来总结一下用来匹配字符串的KMP算法，以及怎么求next数组。

当然我们可以用笨办法可以进行字符串匹配和求next数组，但是学习算法不就是追求极致的过程么？

通过参考https://blog.youkuaiyun.com/sun20209527/article/details/79933237,可以通透的理解KMP是个什么过程,但细节处理和他会有些出入。

举例来说，有一个字符串&quot;BBC ABCDAB...]]></description><category></category></item><item><title><![CDATA[【JVM之一入门】内存区域简介]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/82891613</link><guid>https://blog.youkuaiyun.com/Joined/article/details/82891613</guid><author>Joined</author><pubDate>Sat, 29 Sep 2018 01:28:30 +0800</pubDate><description><![CDATA[1.总结java虚拟机怎么不先来说一下jvm是什么？

jvm是执行字节码文件的一个程序，对java字节码进行解释、运行，形成适应不同平台的机器码，从而是java语言能独立于各个不同的系统平台，如下的图能直观的看到我们java程序一步步成为不同的平台能执行的机器码的。



2.然而在jvm里面经历的过程是什么呢？首先我们看一下jvm里面的内存区域划分：



（1）程序计数器：（线程私有）

对...]]></description><category></category></item><item><title><![CDATA[No Pain No Game（树状数组）]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78231692</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78231692</guid><author>Joined</author><pubDate>Sat, 14 Oct 2017 01:50:24 +0800</pubDate><description><![CDATA[Problem Description
Life is a game,and you lose it,so you suicide.
But you can not kill yourself before you solve this problem:
Given you a sequence of number a1, a2, ..., an.They are also a permut]]></description><category></category></item><item><title><![CDATA[MooFest(树状数组+离线处理)]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78231387</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78231387</guid><author>Joined</author><pubDate>Fri, 13 Oct 2017 23:30:40 +0800</pubDate><description><![CDATA[Problem Description


Every year, Farmer John's N (1 <= N <= 20,000) cows attend "MooFest",a social gathering of cows from around the world. MooFest involves a variety of events including hayba]]></description><category></category></item><item><title><![CDATA[日记—10.12]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78220693</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78220693</guid><author>Joined</author><pubDate>Thu, 12 Oct 2017 22:29:57 +0800</pubDate><description><![CDATA[想了一下最近干的事情，主要做树状数组上的题。简单的使用的知识点早已经了解掌握，但是。。。。做的这些题的时候，却不知道怎么用树状数组，只能看看题解上的思路。。
前两天组队的队友跟我说，他不干了，这也让我开始重新认识为什么做ACM。又回想起来接触ACM的这些日子。我想做ACM还是那句话，需要静下来的专注。等到不做这件事情的时候，回头看看没有让自己后悔。加油吧，少年！]]></description><category></category></item><item><title><![CDATA[日记—9.28]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78128450</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78128450</guid><author>Joined</author><pubDate>Thu, 28 Sep 2017 21:39:04 +0800</pubDate><description><![CDATA[这几天从新温习了一下树状数组，今天做了几道题，树状数组区间修改单点查询的问题，二维的，三维的，都是，树状数组的第二种类型的问题，但是小的地方问题还是找了许久的问题，但是这两道题感觉做起来比暑假做的还是顺多了。开学也有一个月了，随着时间的拉长，也会有一些的懒散，还记得当时选择ACM是的热情和激情，当然不要忘记初心，调整前阶段安逸的状态。]]></description><category></category></item><item><title><![CDATA[日记—9.24]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78080480</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78080480</guid><author>Joined</author><pubDate>Sun, 24 Sep 2017 22:20:35 +0800</pubDate><description><![CDATA[昨天的题一个人做的，第二个题的用线段树的那个题的小坑找了好长时间就是没有找到啊。。。最后让小伙伴过来看了看代码的坑。。。今天有道题是求最长上升子序列，直接用dp做肯定会超时啊，然后想到刚学会的lis，但是他是直接求最大的最长上升子序列，在这里有个权值的问题啊。。然后就放弃这种方法了，认为必须用优化的dp做啊，这不是lis根本没有用到啊，然后刚刚专门百度，果然。。其实真的是有lis做的啊，，，只能说]]></description><category></category></item><item><title><![CDATA[lis算法]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78058362</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78058362</guid><author>Joined</author><pubDate>Thu, 21 Sep 2017 23:53:16 +0800</pubDate><description><![CDATA[一个更高效的求最长子序列的算法。
说白了这个算法就是维护一个数组，刚开始的时候这个数组什么都没有。
举个例子：我们给出的数组是a[]={1 7 3 5 9 4 8},然后我们定义一个b数组（维护数组），遵循一个规则，如果a[i]>b数组的最后一个数的话，那么len++,b[len]=a[i];否则，我们就在现有长度的b数组里找出第一个比a[i]大的数，然后用a[i]给他替换掉。最后b数组的长度]]></description><category></category></item><item><title><![CDATA[二分查找第一个比k大的数]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78058294</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78058294</guid><author>Joined</author><pubDate>Thu, 21 Sep 2017 23:43:14 +0800</pubDate><description><![CDATA[在这里我们可以直接二分，或者更方便的我们有一个函数 lower_bound(a,a+num,val);
1.直接二分的方法
int binary(int val,int a[],int l,int r)
{
	int m;
	int id;
	while(l<=r)
	{
		m=l+(r-l)/2;               //避免溢出
		if(a[m]>val)
		{
			id=]]></description><category></category></item><item><title><![CDATA[日记—9.21]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78057843</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78057843</guid><author>Joined</author><pubDate>Thu, 21 Sep 2017 22:43:44 +0800</pubDate><description><![CDATA[关于线段树的题回头看了看blog上的题，没有做题，最近看了一个lis算法，相对于kmp还是比较简单易懂的，lis用来求最长上升子序列的效率很高了 n*log(n),dp显得比较慢了，时间复杂度实在太高.kmp他的思想还是很好理解的，但是代码的实现几个点真的不太好理解啊.。。]]></description><category></category></item><item><title><![CDATA[日记—9.17]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/78013860</link><guid>https://blog.youkuaiyun.com/Joined/article/details/78013860</guid><author>Joined</author><pubDate>Sun, 17 Sep 2017 21:50:09 +0800</pubDate><description><![CDATA[昨天那套题，明明sum的那道题那么的难，但是。。。。1000++个ac的。是个什么题？S（k*x）%233=0,给你x的值，让我们求k*x这个数，左右位上的数%233==0，wfk?简直了。刚刚去百度了一下简直要吐血啊，脑洞真的不够大啊。1.有一种特殊情况，那就是k=0的时候，x爱取什么取什么啊。。。k*m=0; 0%233==0看完这个式子真的无话可说。。 2.直接k=233个9的时候。。。。。]]></description><category></category></item><item><title><![CDATA[日记—9.14]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/77985860</link><guid>https://blog.youkuaiyun.com/Joined/article/details/77985860</guid><author>Joined</author><pubDate>Thu, 14 Sep 2017 21:54:36 +0800</pubDate><description><![CDATA[最近基本没有做线段树的题。。。sang.....做了几天的JAVA的作业，也是接触另一个语言的基本用法，在c++的基础下，学起java来也是挺轻松的，但基本的语法应用也是多多少少有些出入，刚好，老师布置的作业让写写代码，熟习一下语法规则，也是一个很好的方法。最近也是刚开始在刷老师布置的java上的题，很简单，有没有。。。。]]></description><category></category></item><item><title><![CDATA[日记—9.10]]></title><link>https://blog.youkuaiyun.com/Joined/article/details/77926209</link><guid>https://blog.youkuaiyun.com/Joined/article/details/77926209</guid><author>Joined</author><pubDate>Sun, 10 Sep 2017 22:40:51 +0800</pubDate><description><![CDATA[这个周末两天下午做的题，很有感受，昨天的那俩题，都特别水，但是特别大的一个是伤心的事情是昨天做的一个很垃圾的错误，把结果的Yes，全部写成大写的了，一家人找了半天啊。。。找的都怀疑题意了。。今天的题也是有一道，让求一个最长上升子序列问题，用dp没有通过啊，时间复杂度确实太高，最后才知道，关于最长上升子序列还有一个优化的算法，当时超时超时的确实让人很捉急啊。。。不管怎样，和队友一起加油吧~]]></description><category></category></item></channel></rss>