<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Sun_Dean的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Sun_Dean</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Sun_Dean]]></copyright><item><title><![CDATA[ReentrantLock和AQS源码，看这一篇就够了]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/104618863</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/104618863</guid><author>Sun_Dean</author><pubDate>Tue, 03 Mar 2020 13:19:43 +0800</pubDate><description><![CDATA[ReentranLock和AQS的关系

在深入分析ReentranLock和AQS之前，我们首先来理清楚一下它们的关系，AQS全名AbstractQueuedSynchronizer队列同步器，是一个能向外提供同步状态管理的基础框架，ReentranLock正是借助了它从而具备了"锁"的能力。
那么AQS是如何能做到对同步状态进行管理呢?简要来说，它有一个表示同步状态的int变量和一个队列，这...]]></description><category></category></item><item><title><![CDATA[通俗易懂的例子告诉你TCP/IP如何保证可靠性]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/104133466</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/104133466</guid><author>Sun_Dean</author><pubDate>Sun, 02 Feb 2020 15:08:46 +0800</pubDate><description><![CDATA[TCP的可靠体现在哪?

要对TCP实现的可靠性进行分析，我们首先要知道这个可靠性指的是什么？我觉得主要是三个方面：
1. 保证传输的分组比特位不出错
2. 保证传输的分组不丢失
3. 保证传输的分组不乱序

那么TCP如何保证这三个方面不出问题呢?在不同的底层信道上，TCP应该提供的保证也不相同，我们针对不同的信道逐个进行分析

可靠信道上的可靠数据传输

由于在可靠信道上进行数据传输，因此并...]]></description><category></category></item><item><title><![CDATA[别大意，人人都懂的单例模式，你能写出几种？]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/104125450</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/104125450</guid><author>Sun_Dean</author><pubDate>Fri, 31 Jan 2020 20:29:42 +0800</pubDate><description><![CDATA[首先，什么是单例模式?

通俗来说就是，单例模式就是在程序运行过程中，一直只能存在一个实例
那么单例模式应该如何实现呢？我们来看几种常见的实现方法


 单例模式的几种常见写法

 1. 饿汉模式

...]]></description><category></category></item><item><title><![CDATA[HTTPS到底如何保证安全，快来跟我一起复习下]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/104113831</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/104113831</guid><author>Sun_Dean</author><pubDate>Thu, 30 Jan 2020 16:32:17 +0800</pubDate><description><![CDATA[我们都知道HTTPS是HTTP的改进版本，那么在了解HTTPS之前，我们首先来看看HTTP存在的缺点：


使用明文(不加密)进行通信
不验证通信方的身份，可能遭遇伪装
无法验证报文的完整性，所已可能已遭篡改

为了避免这些缺点而可能导致的风险，就产生了HTTPS，也就是说HTTP加上加密处理和身份认证以及报文完整性保护后即是HTTPS


那么HTTPS是如何实现的呢？

HTTPS并非是应用...]]></description><category></category></item><item><title><![CDATA[HTTP1.0，1.1，2.0这么多版本，到底需要注意哪些区别？]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/104108469</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/104108469</guid><author>Sun_Dean</author><pubDate>Wed, 29 Jan 2020 20:12:35 +0800</pubDate><description><![CDATA[HTTP1.1在HTTP1.0基础上的改进

1. 长连接
HTTP 1.0需要使用keep-alive参数来建立一个长连接，而HTTP1.1默认支持长连接
长连接的好处：一个网页上可能有多个资源对象，长连接可以通过一个连接传输网页上的所有对象，而短连接每次连接只能传输一个对象，也就是一个网页的内容需要传输多次

2. 缓存
HTTP1.0缓存的资源对象到了一定时间之后会失效，不能再次使用；而H...]]></description><category></category></item><item><title><![CDATA[StringRedisTemplate，RedisTemplate，Jedis，JedisPool如何区分和使用还在傻傻搞不懂？]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/104066036</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/104066036</guid><author>Sun_Dean</author><pubDate>Wed, 22 Jan 2020 17:45:44 +0800</pubDate><description><![CDATA[博主小白最近刚在项目里接触redis，结果发现各种各样对redis进行操作的方式，当时就懵逼了，比如RedisTemplate，Jedis等等，好像对redis操作起来都挺方便呀，这哥几个到底啥关系呀？？？
一气之下各种查找资料…终于还算是搞懂了这哥几个不明不白的关系了…下面就来跟大家分享一下呀
1. Jedis
Jedis是Redis官方推荐的面向Java的操作Redis的客户端，听起来好像很牛...]]></description><category></category></item><item><title><![CDATA[一款简单又好用的序列化工具-Protostuff，及配合Jedis的使用]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/104071402</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/104071402</guid><author>Sun_Dean</author><pubDate>Wed, 22 Jan 2020 17:44:18 +0800</pubDate><description><![CDATA[之前我们谈到使用Jedis存储数据时，需要先进行序列化，那么现在我们就来介绍一款非常好用的序列化工具-protostuff，然后再讲讲它如何配合Jedis进行使用
话不多说，直接上代码，首先看看它如何使用：
首先还是要引入依赖
&lt;dependency&gt;
    &lt;groupId&gt;com.dyuproject.protostuff&lt;/groupId&gt;
    &l...]]></description><category></category></item><item><title><![CDATA[路径没有错，怎么访问teamplates下的页面一直404呢？看这里你可能就知道啦]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/103914601</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/103914601</guid><author>Sun_Dean</author><pubDate>Thu, 09 Jan 2020 20:01:51 +0800</pubDate><description><![CDATA[来到这里的小伙伴肯定都已经被404气到不行了…不要问我怎么知道的…
首先templates文件夹下的页面是不能在浏览器输入路径直接访问的！！！
templates下存放的是项目的动态和模板页面，访问的条件为：
1.  从controller中进行跳转
2. 需要有视图解析器如thymeleaf，freemarker等模板引擎
具体配置可以看一个小例子SpringBoot和freemarker的整合...]]></description><category></category></item><item><title><![CDATA[freemarker在SpringBoot下的使用以及出现的问题]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/103903678</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/103903678</guid><author>Sun_Dean</author><pubDate>Thu, 09 Jan 2020 11:18:03 +0800</pubDate><description><![CDATA[1. 引入maven依赖
&lt;dependency&gt;
    &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
    &lt;artifactId&gt;spring-boot-starter-freemarker&lt;/artifactId&gt;
&lt;/dependency&gt;

注意这里不指定版本则与Spri...]]></description><category></category></item><item><title><![CDATA[RabbitMQ的安装(在CentOS7下]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/103647828</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/103647828</guid><author>Sun_Dean</author><pubDate>Sat, 21 Dec 2019 20:05:01 +0800</pubDate><description><![CDATA[RabbitMQ的安装

  1. 首先使用yum install指令安装好以下工具：

  gcc glibc-devel make ncurses-devel openssl-devel xmlto perl wget gtk2-devel binutils-devel

  2. 下载好erlang包 rabbitmq包

  //下载erlang语言包-P选项用来指定...]]></description><category></category></item><item><title><![CDATA[动态规划-力扣96-不同的二叉搜索树]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/103605218</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/103605218</guid><author>Sun_Dean</author><pubDate>Thu, 19 Dec 2019 09:57:12 +0800</pubDate><description><![CDATA[给定一个整数 n，求以 1 ... n 为节点组成的二叉搜索树有多少种？

示例:

输入: 3
输出: 5
解释:
给定 n = 3, 一共有 5 种不同结构的二叉搜索树:



来源：力扣（LeetCode）
链接：https://leetcode-cn.com/problems/unique-binary-search-trees
著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注...]]></description><category></category></item><item><title><![CDATA[动态规划-博弈问题-力扣877-石子游戏]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/103553305</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/103553305</guid><author>Sun_Dean</author><pubDate>Mon, 16 Dec 2019 15:40:43 +0800</pubDate><description><![CDATA[亚历克斯和李用几堆石子在做游戏。偶数堆石子排成一行，每堆都有正整数颗石子piles[i]。游戏以谁手中的石子最多来决出胜负。石子的总数是奇数，所以没有平局。亚历克斯和李轮流进行，亚历克斯先开始。 每回合，玩家从行的开始或结束处取走整堆石头。 这种情况一直持续到没有更多的石子堆为止，此时手中石子最多的玩家获胜。假设亚历克斯和李都发挥出最佳水平，当亚历克斯赢得比赛时返回true，...]]></description><category></category></item><item><title><![CDATA[HTML的button按钮和submit按钮在提交时的区别]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/78328357</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/78328357</guid><author>Sun_Dean</author><pubDate>Mon, 16 Dec 2019 13:07:19 +0800</pubDate><description><![CDATA[若是button按钮时，比如：


&lt;input type="button" name="choose" value="addMedicine" class="button white" onclick="checkinfo()"&gt;     


function checkinfo(){
     	var onSaleNo = document.getElementById(...]]></description><category></category></item><item><title><![CDATA[Oracle JDBC 模糊查询预编译]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/78352732</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/78352732</guid><author>Sun_Dean</author><pubDate>Mon, 16 Dec 2019 13:07:11 +0800</pubDate><description><![CDATA[正确代码如下：



String sql = "select * from OnSale where medicineno like '%'||?||'%' and storeno like '%'||?||'%' and frameno like'%'||?||'%'";


之前我一直是



		String sql = "select * from OnSale whe...]]></description><category></category></item><item><title><![CDATA[servlet如何判断是哪个表单传来的数据？？？]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/78359457</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/78359457</guid><author>Sun_Dean</author><pubDate>Mon, 16 Dec 2019 13:06:55 +0800</pubDate><description><![CDATA[在表单里加上这个隐藏域，




&lt;input type="hidden"  name="choose" value="addMedicine"&gt;

然后在servlet里加上






String choose = request.getParameter("choose");
if (choose.equals("addMedicine")) {
    //数据接...]]></description><category></category></item><item><title><![CDATA[undefined reference to `WSAStartup@8' C++套接字编程出现的问题]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/79548777</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/79548777</guid><author>Sun_Dean</author><pubDate>Mon, 16 Dec 2019 13:06:49 +0800</pubDate><description><![CDATA[codeblocks下解决办法：

1：左上角工具栏settings-&gt;complier:



点击add





在windows/system32目录下 选择ws2_32.dll(ws2_32.dll是Windows Sockets应用程序接口， 用于支持Internet和网络应用程序。)



OK！


...]]></description><category></category></item><item><title><![CDATA[Idea建立MAVEN项目整合SSH框架]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/87212421</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/87212421</guid><author>Sun_Dean</author><pubDate>Mon, 16 Dec 2019 13:06:33 +0800</pubDate><description><![CDATA[1.首先建立maven-webapp项目，选择如下选项，





点击NEXT，填写项目信息，之后默认next，直至finish

项目建好后，项目结构如下:



可在main目录下手动建立项目所需目录，如下:



并右键点击Java文件夹，标记为:(Sources root 文件夹用来存放Java class文件，若不标记，在new文件时没有Java class选项)

并右键点击re...]]></description><category></category></item><item><title><![CDATA[判断一个字符串中不同字符的个数]]></title><link>https://blog.youkuaiyun.com/Sun_Dean/article/details/88081359</link><guid>https://blog.youkuaiyun.com/Sun_Dean/article/details/88081359</guid><author>Sun_Dean</author><pubDate>Mon, 16 Dec 2019 13:05:57 +0800</pubDate><description><![CDATA[public int[] num(String A) {
        int[] count = new int[26];
        for (int i = 0; i &lt; A.length(); ++i)
            count[A.charAt(i) - 'a']++;
        return count;
    }

可用来判断一个字符串在经过若干次内部...]]></description><category></category></item></channel></rss>