<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[陈小轩love]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u013058861</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u013058861]]></copyright><item><title><![CDATA[Java垃圾回收的具体实现：Java垃圾收集器]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/106367363</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/106367363</guid><author>u013058861</author><pubDate>Tue, 26 May 2020 23:05:32 +0800</pubDate><description><![CDATA[简介
在Java垃圾回收机制中说到Java垃圾回收中涉及到的收集算法，如果说收集算法是内存回收的方法论，那么垃圾收集器就是内存回收的具体实现。这里讨论的收集器基于JDK 1.7 Update 14之后的 HotSpot 虚拟机，这个虚拟机包含的所有收集器如下图所示：

上图展示了7种作用于不同分代的收集器，如果两个收集器之间存在连线，就说明它们可以搭配使用。虚拟机所处的区域，则表示它是属于新生代收集器还是老年代收集器。接下来将逐一介绍这些收集器的特性、基本原理和使用场景，并重点分析CMS和G1这两款相对复杂]]></description><category></category></item><item><title><![CDATA[520没人陪，于是我在深夜写下了这篇关于FutureTask源码分析的文章，祝大家学习快乐]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/106246403</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/106246403</guid><author>u013058861</author><pubDate>Wed, 20 May 2020 22:52:41 +0800</pubDate><description><![CDATA[今天是520，但是作为一只散发着清香的单身汪，趁着夜深人静，于是我写下了这篇关于FutureTask源码分析的文章。码字不易，关注一波行不行，行文匆匆，如果有写得不对的地方欢迎在评论区留言指正，祝大家学习快乐。
简介
FutureTask是提供了一个可取消的异步计算的过程类，FutureTask实现了Future的基本方法，提供了start和cancel操作，可以查询计算是否已经完成，并且可以获取计算的结果。结果只可以在计算完成之后获取，当计算没有完成的时候get方法会阻塞，一旦计算已经完成，那么计算就不能]]></description><category></category></item><item><title><![CDATA[Java垃圾回收机制]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/105002389</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/105002389</guid><author>u013058861</author><pubDate>Sat, 21 Mar 2020 00:43:55 +0800</pubDate><description><![CDATA[路漫漫其修远兮，吾将上下而求索

简介

Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的“高墙”，墙外的人想进去，墙里面的人想出来。

Java内存运行时区域中的程序计数器、虚拟机栈、本地方法栈随线程而生灭；栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈操作。每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的（尽管在运行期会由JIT编译器进行一些优化），因此这几...]]></description><category></category></item><item><title><![CDATA[POJ 1163 DP 动态规划]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38370783</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38370783</guid><author>u013058861</author><pubDate>Mon, 04 Aug 2014 16:01:43 +0800</pubDate><description><![CDATA[POJ 1163：The Triangle]]></description><category></category></item><item><title><![CDATA[HDU 1711]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38369333</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38369333</guid><author>u013058861</author><pubDate>Mon, 04 Aug 2014 14:46:30 +0800</pubDate><description><![CDATA[HDU 1711:Number Sequence]]></description><category></category></item><item><title><![CDATA[HDU 2054]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38357447</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38357447</guid><author>u013058861</author><pubDate>Sun, 03 Aug 2014 13:54:23 +0800</pubDate><description><![CDATA[HDU 2054 A==B?]]></description><category></category></item><item><title><![CDATA[HDU 1823 二维线段树]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38302107</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38302107</guid><author>u013058861</author><pubDate>Wed, 30 Jul 2014 15:58:18 +0800</pubDate><description><![CDATA[原题链接：]]></description><category></category></item><item><title><![CDATA[HDU 1686 Kmp(字符串匹配)]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38173703</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38173703</guid><author>u013058861</author><pubDate>Sun, 27 Jul 2014 17:00:31 +0800</pubDate><description><![CDATA[/*
    Kmp算法的运用
    这里是要统计字符在母串中出现的次数
    只要在原来的基础上稍作修改即可
*/
#include
#include
#include
using namespace std;
char a[10005], b[1000005];
int next[10005];

void Getnext(char* t)//构造next数组，这是关键
{
    int]]></description><category></category></item><item><title><![CDATA[HDU 1166 树状数组]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38172539</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38172539</guid><author>u013058861</author><pubDate>Sun, 27 Jul 2014 15:50:53 +0800</pubDate><description><![CDATA[#include
#include
#define lowbit(x) (x&(-x))//计算a^k,这是做神奇的地方 
const int N = 50005;
int a[N], n;

void Add(int x, int y)//将每个结点的值都加上,当然也可以修改某个结点的值 
{
	while(x <= n)
	{
		a[x] += y;
		x += lowbit(x);//跳]]></description><category></category></item><item><title><![CDATA[HDU 2063 二分匹配(匈牙利算法)]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38169519</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38169519</guid><author>u013058861</author><pubDate>Sun, 27 Jul 2014 12:35:14 +0800</pubDate><description><![CDATA[/*
    这个题目求的是最小匹配数，所以只要用匈牙利算法就可以了
    但代码的方式和1151有点儿不一样，详情如下
*/
#include
#include
#include
using namespace std;
const int N = 505;
int map_[N][N], vis[N], flag[N];
int k, n, m;

bool Search(int x)
{
]]></description><category></category></item><item><title><![CDATA[HDU 1151 二分匹配(匈牙利算法)]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38148367</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38148367</guid><author>u013058861</author><pubDate>Sat, 26 Jul 2014 18:50:10 +0800</pubDate><description><![CDATA[/*
    二分匹配(匈牙利算法)
    根据:DAG图的最小路径覆盖数=节点数（n）- 最大匹配数（m）
    先用匈牙利算法求出最大匹配数，再用它减去节点数就可以了
*/
#include
#include
using namespace std;
const int N = 125;
int map_[N][N], vis1[N], vis2[N], flag[N];
int n, m]]></description><category></category></item><item><title><![CDATA[HDU 1372 棋盘广搜]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38022333</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38022333</guid><author>u013058861</author><pubDate>Mon, 21 Jul 2014 18:53:44 +0800</pubDate><description><![CDATA[#include 
#include 
using namespace std;
int sx,sy,ex,ey;
int dist[8][8];      //dis[i][j] 到当前点（i,j）所花的最少步数
int step[8][2]={{-1,2},{-1,-2},{1,2},{1,-2},
                {2,1},{2,-1},{-2,1},{-2,-1}};  ]]></description><category></category></item><item><title><![CDATA[HDU 1548 广搜]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/38018943</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/38018943</guid><author>u013058861</author><pubDate>Mon, 21 Jul 2014 16:03:31 +0800</pubDate><description><![CDATA[原题链接
/*
    广度优先搜索题
    到每一层楼都可以上楼和下楼，但要注意的是不能小于1当然也不能大于n
    每到一层楼就把层数放在队列里，取出层数后又去掉
    然后通过每个层数生成子节点进行搜索
*/
#include
#include
#include
#include
#include
#include
#include
#include
#define INF 0xff]]></description><category></category></item><item><title><![CDATA[HDU 2191 部分背包]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/37994137</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/37994137</guid><author>u013058861</author><pubDate>Sun, 20 Jul 2014 16:59:10 +0800</pubDate><description><![CDATA[/*
    这是部分背包问题，也是通过01背包转化过来的
    最重要的是处理好后面那个大米的袋数
*/
#include
#include
#include
#include
#include
#include
#include
#define INF 0xfffffff
using namespace std;
int p[102], h[102], c[102], a[10002];
i]]></description><category></category></item><item><title><![CDATA[HDU 2955 01背包]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/37993071</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/37993071</guid><author>u013058861</author><pubDate>Sun, 20 Jul 2014 15:42:45 +0800</pubDate><description><![CDATA[/*
    这道题是01背包问题，但要进行转换
    把列出来的总钱数作为总的重量。把逃跑成功的概率作为价值
    只有当逃跑成功的概率大于预算逃跑成功的概率，这时候能抢的钱总数就是最多的
    这里的vauel[0]=1也要初始化为1
*/
#include
#include
#include
#include
#include
#include
#include
#define INF]]></description><category></category></item><item><title><![CDATA[HDU 1114 完全背包]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/37991739</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/37991739</guid><author>u013058861</author><pubDate>Sun, 20 Jul 2014 14:07:32 +0800</pubDate><description><![CDATA[/*
    完全背包问题
    但这题是求最小的值，所以这样把pis数组初始化为无穷大
    把pis[0]初始化为0，然后把01背包的状态方程改为
    for(i=1;i<=n;i++)
        for(j=w;j<=f-e;j++)
        pis[j]=min(pis[j],pis[j]+p);
*/
#include
#include
#include
#incl]]></description><category></category></item><item><title><![CDATA[HDU 2149 巴什博弈]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/37927371</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/37927371</guid><author>u013058861</author><pubDate>Fri, 18 Jul 2014 12:25:03 +0800</pubDate><description><![CDATA[/*
    巴什博弈
    m%(n+1)！=0就是必胜状态
*/
#include
#include
using namespace std;
int main()
{
    int n, m;
    while(scanf("%d%d",&m,&n) != EOF)
    {
        if(m%(n+1) == 0)
        {
            cout <<]]></description><category></category></item><item><title><![CDATA[HDU 2176 尼姆博弈]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/37927301</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/37927301</guid><author>u013058861</author><pubDate>Fri, 18 Jul 2014 12:16:15 +0800</pubDate><description><![CDATA[/*
    这是尼姆博弈题
    题目要求输出所有第一次取某堆的数量和剩下的数量
    如果用常规的方法做的话，肯定会超时
    所以我们必须要知道位运算的一个重要的性质，那就是：
    a^b^c^d=e;  d^e=a^b^c
*/
#include
using namespace std;
int num[200002];
int main()
{
    int m;
    w]]></description><category></category></item><item><title><![CDATA[HDU 2516 斐波那契博弈]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/37914451</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/37914451</guid><author>u013058861</author><pubDate>Thu, 17 Jul 2014 21:01:34 +0800</pubDate><description><![CDATA[这题是斐波那契博弈（Fibonacci Nim）
详情戳这个链接: http://blog.youkuaiyun.com/dgq8211/article/details/7602807]]></description><category></category></item><item><title><![CDATA[HDU 1850 博弈]]></title><link>https://blog.youkuaiyun.com/u013058861/article/details/37912775</link><guid>https://blog.youkuaiyun.com/u013058861/article/details/37912775</guid><author>u013058861</author><pubDate>Thu, 17 Jul 2014 18:46:32 +0800</pubDate><description><![CDATA[/*
    这是尼姆博弈题
    要让先手赢的话，先手从第i堆牌中取出x张牌后
    剩下的n-1堆异或的结果和第i剩下的异或为0，那先手一定能赢
    那么只有当第i堆牌数大于剩下n-1堆牌的异或结果时，先手一定赢
*/
#include
using namespace std;
int main()
{
    int n, card[102];
    while(cin >> n ]]></description><category></category></item></channel></rss>