<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[李意文的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/u014698348</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u014698348]]></copyright><item><title><![CDATA[aaa]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/113753769</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/113753769</guid><author>u014698348</author><pubDate>Mon, 08 Feb 2021 11:08:54 +0800</pubDate><description><![CDATA[目录Java基础1. String 和StringBuffer和 StringBuilder的区别？2. sleep() 区间wait()区间有什么区别？3. Object 中有哪些方法？其中clone()，怎么实现一个对象的克隆,Java如何实现深度克隆？ThreadLocal 相关4. ThreadLocal作用和实现方式 ?ThreadLocal会不会发生内存泄漏?ThreadLocal为什么使用弱引用?5. InheritableThreadLocal作用和实现方式 ？6. InheritableT]]></description><category></category></item><item><title><![CDATA[2021-02-08]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/113753446</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/113753446</guid><author>u014698348</author><pubDate>Mon, 08 Feb 2021 10:54:05 +0800</pubDate><description><![CDATA[@[TOC](目录)

## Java基础

### 1. String 和StringBuffer和 StringBuilder的区别？
&gt;[String,StringBuffer与StringBuilder的区别??](https://blog.youkuaiyun.com/rmn190/article/details/1492013)
String 字符串常量
StringBuffer 字符串变量（线程安全）
StringBuilder 字符串变量（非线程安全）

### 2. sleep() 区间wai.]]></description><category></category></item><item><title><![CDATA[2021-02-08]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/113753387</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/113753387</guid><author>u014698348</author><pubDate>Mon, 08 Feb 2021 10:52:10 +0800</pubDate><description><![CDATA[@[TOC](目录)

## Java基础

### 1. String 和StringBuffer和 StringBuilder的区别？
&gt;[String,StringBuffer与StringBuilder的区别??](https://blog.youkuaiyun.com/rmn190/article/details/1492013)
String 字符串常量
StringBuffer 字符串变量（线程安全）
StringBuilder 字符串变量（非线程安全）

### 2. sleep() 区间wai.]]></description><category></category></item><item><title><![CDATA[innodb的锁模式和锁类型]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/73374044</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/73374044</guid><author>u014698348</author><pubDate>Sat, 17 Jun 2017 11:58:29 +0800</pubDate><description><![CDATA[锁模式：
1.共享锁(s)和排他锁(X)
2.意向锁，intention locks
意向共享锁(IS)和意向排他锁(IX)
表明了一种意向。
 SELECT
 ... LOCK IN SHARE MODE 加IS锁；

SELECT ... FOR UPDATE 加IX锁。
在一个事务可以得到S锁之前，一定要先获取IS锁或更强级别的锁。
在一个事务可以获得X锁之前，一定要先获]]></description><category></category></item><item><title><![CDATA[idea 2016注册码]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/68957394</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/68957394</guid><author>u014698348</author><pubDate>Mon, 03 Apr 2017 10:12:06 +0800</pubDate><description><![CDATA[选择License server
之后输入http://idea.iteblog.com/key.php，亲测有效]]></description><category></category></item><item><title><![CDATA[ElasticSearch 5.X 搜索并用高亮显示]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/62884320</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/62884320</guid><author>u014698348</author><pubDate>Fri, 17 Mar 2017 11:28:04 +0800</pubDate><description><![CDATA[public List searchOrder(OrderSearchReqVO request) throws Exception{
        List woSearchModels = new ArrayList<>();

        //设置高亮显示
        HighlightBuilder highlightBuilder = new HighlightBuilder(]]></description><category></category></item><item><title><![CDATA[elasticsearch]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/60962493</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/60962493</guid><author>u014698348</author><pubDate>Thu, 09 Mar 2017 16:28:02 +0800</pubDate><description><![CDATA[主要内容主要内容
什么是Elasticsearch
ES的基本概念和原理
安装和配置
Rest api
定义
ElasticSearch是一个开源的基于Lucene构建的，分布式的，RESTful搜索引擎。
Lucene 是一个基于 Java 的全文信息检索工具包，它不是一个完整的搜索应用程序，而是为你的应用程序提供索引和搜索功能。Lucene 目前是 Apache Jakarta]]></description><category></category></item><item><title><![CDATA[图的邻接矩阵表示、广度优先遍历和深度优先遍历]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/54603631</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/54603631</guid><author>u014698348</author><pubDate>Wed, 18 Jan 2017 18:35:16 +0800</pubDate><description><![CDATA[如上如的所示，对图节点进行编号，每个节点又有相应的编号和值。因此图可以有一个二阶矩阵来记录各个节点的联通关系，由一个数组来记录各个节点的内容。图的广度优先遍历和深度优先遍历。


输出如下：
深度优先遍历：
1
2
4
8
5
6
3
7
广度优先遍历：
1
2
3
4
5
6
7
8


代码如下：
import java.util.ArrayD]]></description><category></category></item><item><title><![CDATA[二叉树的分层遍历的汇总]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53967704</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53967704</guid><author>u014698348</author><pubDate>Sun, 01 Jan 2017 19:29:29 +0800</pubDate><description><![CDATA[二叉树的分层遍历分成一下五种。
1、从上到下分层遍历，每层从左到右，设置双指针，一个指针指向队列中二叉树一层的第一个节点，另外一个指针表示这一层的结尾节点的下一个节点

2、从上到下分层遍历，每层从右到左， 2有1改变左右孩子的入队列顺序即可。

3、从下到上分层遍历，每层从左往右， 要标示出二叉树的分层。之后逆序输出。


4、从下到上分层遍历，每层从右往左，4由三变化左右孩子的入队列顺]]></description><category></category></item><item><title><![CDATA[如何创建一颗二叉链表的二叉树？]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53964713</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53964713</guid><author>u014698348</author><pubDate>Sun, 01 Jan 2017 09:41:54 +0800</pubDate><description><![CDATA[如何创建一颗二叉链表的二叉树？非常的简单，就是将二叉树的数组表示，转化为二叉链表。如下如所示的树，其数组表示为：
{1,2,3,4,5,6,null,null,null, 7,8}节点的内容保存在数组中，节点间的父子兄弟关系保存在数组的下标中。










测试：
控制台输出：
前序遍历
1
2
4
5
7
8
3
6
中序遍历
4
2
7
5
8
1
6
3
]]></description><category></category></item><item><title><![CDATA[用位操作求加法]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53788463</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53788463</guid><author>u014698348</author><pubDate>Wed, 21 Dec 2016 18:01:21 +0800</pubDate><description><![CDATA[/**
 * 不用+法做加法
 * @author liyiwen1
 * @date 2016/12/21
 */
public class BitAdd {
    public static void main(String[] args) {
        System.out.println(add(1,2));
        System.out.println(add(1,3))]]></description><category></category></item><item><title><![CDATA[采用回溯法打印1到最大的位数]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53787525</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53787525</guid><author>u014698348</author><pubDate>Wed, 21 Dec 2016 17:18:38 +0800</pubDate><description><![CDATA[打印1到最大的位数，算法采用回溯法


控制台输出：
  1  2  3  4  5  6  7  8  9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  ]]></description><category></category></item><item><title><![CDATA[用筛选法求解n以内的所有素数]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53730152</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53730152</guid><author>u014698348</author><pubDate>Sun, 18 Dec 2016 21:42:57 +0800</pubDate><description><![CDATA[筛选法的思想是一个数是素数则这个数的所有的倍数都是合数，我们不去找素数而去找合数，剩下的就是素数了。一个合数其最大的质因子不会超过其开发数,所以只要迭代到其最大数的开方数即可
一个简单的筛素数的过程：n=30。
       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

    ]]></description><category></category></item><item><title><![CDATA[用回溯法求解打靶问题]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53728826</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53728826</guid><author>u014698348</author><pubDate>Sun, 18 Dec 2016 18:06:22 +0800</pubDate><description><![CDATA[打靶打10次，打中90环的可能性有多少？


用回溯法实现：
控制台输出：
递归实现：打10次90环的可能性：92378种
迭代实现：打10次90环的可能性：92378种




package AlgorithmTest;

import java.util.Stack;

/**
 * Created by dell on 2016/12/18.
 */
public c]]></description><category></category></item><item><title><![CDATA[回溯法，并用回溯法请求0/1背包问题和皇后问题]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53726431</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53726431</guid><author>u014698348</author><pubDate>Sun, 18 Dec 2016 12:31:11 +0800</pubDate><description><![CDATA[穷举法是所有最优化问题和多解问题的通用解法。在用穷举法求解的过程中，很多候选的解可以在求解中途被约束条件淘汰点，从而降低求解的复杂度。基于这种思想引出了回溯法。


回溯法是穷举法的一个改进，因为它也是一种通用的算法。一个问题可能会有多种可能解，这些可能解构成的问题的可能解空间， 可能解空间不是解的集合而是可能解的集合，解空间是可能解的一个子集。问题的解会从解空间中出。回溯法的基本思想是将问]]></description><category></category></item><item><title><![CDATA[用回溯法求解0/1背包问题]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53719257</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53719257</guid><author>u014698348</author><pubDate>Sun, 18 Dec 2016 01:17:35 +0800</pubDate><description><![CDATA[输出如下：
背包所盛放物品的最大价值为：
60
所盛放物品编号为
[1, 2]



代码如下：

package AlgorithmTest;

import java.util.ArrayList;
import java.util.Collections;

/**
 * Created by dell on 2016/12
 *用回溯法求解01背包问题，回溯法可以求解最]]></description><category></category></item><item><title><![CDATA[打印图形]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53709583</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53709583</guid><author>u014698348</author><pubDate>Sat, 17 Dec 2016 17:07:06 +0800</pubDate><description><![CDATA[打印如上图形：
控制台输出：
*
*.*.
*..*..*..
*...*...*...*...
*....*....*....*....*....
*.....*.....*.....*.....*.....*.....
*......*......*......*......*......*......*......
*.......*.......*.......*....]]></description><category></category></item><item><title><![CDATA[i++和++i在多线程中的表现，volatile和加锁]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53708731</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53708731</guid><author>u014698348</author><pubDate>Sat, 17 Dec 2016 16:18:34 +0800</pubDate><description><![CDATA[只有加锁够得出争取的结果：
控制台输出：
i++的结果：
1000012113
++i的结果：
1000003505
volatile i++的结果：
1018584689
volatile ++i的结果：
995483979
加锁 i++的结果：
2000000000
加锁  ++i的结果：
2000000000



测试代码如下：

/
public c]]></description><category></category></item><item><title><![CDATA[事务的隔离级别与锁的关系？也即如何用锁实现事务的隔离级别？]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53707678</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53707678</guid><author>u014698348</author><pubDate>Sat, 17 Dec 2016 15:13:38 +0800</pubDate><description><![CDATA[]]></description><category></category></item><item><title><![CDATA[java中的wait(time), notify(), notifyall?是怎么回事？内核层面的实现也是如此]]></title><link>https://blog.youkuaiyun.com/u014698348/article/details/53707613</link><guid>https://blog.youkuaiyun.com/u014698348/article/details/53707613</guid><author>u014698348</author><pubDate>Sat, 17 Dec 2016 15:08:12 +0800</pubDate><description><![CDATA[结论：
wait(time), notify(), notifyall?

一个线程拿到一个对象上的锁，才能调用这个对象的wait(time),notify,notifyall！！！否则会抛异常。
线程没有休眠和苏醒的概念，只有从调度队列排除和加入的概念。前者两个概念要误导人！！
调用wait(time)会做3件事：
1、使当前线程加入当这个对象的等待线程集合，这个是为什么线程要拿到这]]></description><category></category></item></channel></rss>