<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[wlittlefive的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/wlittlefive</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; wlittlefive]]></copyright><item><title><![CDATA[springboot+mybatis 非web项目构建]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/86157134</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/86157134</guid><author>wlittlefive</author><pubDate>Wed, 09 Jan 2019 16:18:22 +0800</pubDate><description><![CDATA[ 

环境：java8 idea macos

第一步，新建项目：



点击next，后填写一些信息。



之后点击next,选择sql下的mybatis



点击next，点击finish



至此项目搭建完毕。结构如下图所示：



接下来要做的是写一个简单的连接数据库的查询。并运行起来程序。

首先修改配置文件 application.properties


spring.data...]]></description><category></category></item><item><title><![CDATA[用Netty自己写拆包粘包解码器]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/85054446</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/85054446</guid><author>wlittlefive</author><pubDate>Mon, 17 Dec 2018 20:42:40 +0800</pubDate><description><![CDATA[最近做了一个项目，项目中用到Netty来接受一些自定义的报文。

一、背景

tcp是以流的方式进行传输，在流里我们要判断消息的起始位置和结束位置。为了区分消息，往往采用下面的几种方式。

消息有固定的长度
	换行符做分隔
	用一个特殊的分隔符来分隔
	在消息头中增加length字段
Netty中针对以上的方案都有已经实现好的解码器作为解决方案。

针对有固定长度的消息，Netty提供了Fixed...]]></description><category></category></item><item><title><![CDATA[java循环链表实现魔术师发牌问题]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80290052</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80290052</guid><author>wlittlefive</author><pubDate>Wed, 10 Oct 2018 11:12:35 +0800</pubDate><description><![CDATA[
package com.wisdombud.zyzx.report.start;

import static java.lang.System.out;

/**
 * 功能 :
 * date : 2018/5/10
 *
 * @author : zcwang
 * @version : 0.0.4-snapshot
 * @since : JDK 1.8
 */
public class...]]></description><category></category></item><item><title><![CDATA[BCD码]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/82773667</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/82773667</guid><author>wlittlefive</author><pubDate>Wed, 19 Sep 2018 16:48:27 +0800</pubDate><description><![CDATA[最近做一个报文解析的事情，碰到了BCD码解析的问题。

BCD  二进码十进数（Binary-Coded Decimal‎）

什么意思呢？就是用半个字节（4位）的二进制来表示一个十进制的数字。

1001 0110

前四位 1001 表示十进制的 9

后四位 0110 表示十进制的 6

- 下面是需求

“事件时间，采用BCD码，如不足8字节，前面补0，如2011年6月1日12点10分20...]]></description><category></category></item><item><title><![CDATA[java 最大连续子序列和]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/82080610</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/82080610</guid><author>wlittlefive</author><pubDate>Sun, 26 Aug 2018 14:42:49 +0800</pubDate><description><![CDATA[

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
 * 书上的例子，自己写一遍加深理解
 * 功能 : 最大连续子序列之和
 * 描述 ：已知包含n个元素的数组,设计算法找出一个连续子序列A[i]....A[j],使其元素之和最大
 * 例子： {-2,11,-4,13,-5,2} -&amp;gt;20;
 * date : 2...]]></description><category></category></item><item><title><![CDATA[LeetCode第一题]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80735778</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80735778</guid><author>wlittlefive</author><pubDate>Tue, 19 Jun 2018 16:41:40 +0800</pubDate><description><![CDATA[描述：Given an array of integers, return indices of the two numbers such that they add up to a specific target.You may assume that each input would have exactly one solution, and you may not use the same...]]></description><category></category></item><item><title><![CDATA[图的DFS和BFS JAVA实现]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80731703</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80731703</guid><author>wlittlefive</author><pubDate>Tue, 19 Jun 2018 11:38:20 +0800</pubDate><description><![CDATA[图的深度优先遍历 和 广度优先遍历参考资料：印度一大哥写的 数据结构和算法的java版本    其中图用的 一个顶点的数组 和一个关系的数组表示import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.util.Stack;

/**
 * 功能 :
 * date : 2018-06-19 09:57
 *
 * ...]]></description><category></category></item><item><title><![CDATA[java多叉树层次遍历]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80490167</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80490167</guid><author>wlittlefive</author><pubDate>Mon, 28 May 2018 23:13:55 +0800</pubDate><description><![CDATA[java多叉树的层次遍历，我的树好像不太一样，看代码吧。代码中的LLQueue 就是一个单链表实现的队列。

思路与二叉树的层次遍历一样。遍历一层的时候，把下层的节点放到队列中。就是操作有点不同。


/**
 * 功能 :
 * date : 2018/5/28
 *
 * @author : zcwang@wisdombud.com
 * @version : 0.0.4-snapshot
 ...]]></description><category></category></item><item><title><![CDATA[根据中序和前序序列生成二叉树java递归实现]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80463657</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80463657</guid><author>wlittlefive</author><pubDate>Sat, 26 May 2018 18:11:05 +0800</pubDate><description><![CDATA[首先说下思路：

先给两个序列：

前序序列：1，2，4，8，5，3，6，7

中序序列：8，4，2，5，1，6，3，7

图脑补下吧 下面来分析下：

一、前序序列中的第一个肯定是根节点，知道了1是根节点后，我们去中序序列中找到1。

二、中序序列中1前面的 8，4，2，5 这4个肯定是左子树，6，3，7是右子树。

接下来关键的一步要想明白，我们要找到前序序列中的左子树的部分（这部分就是左子树...]]></description><category></category></item><item><title><![CDATA[java循环链表实现拉丁方阵]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80291851</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80291851</guid><author>wlittlefive</author><pubDate>Sat, 12 May 2018 15:28:06 +0800</pubDate><description><![CDATA[/**
 * 功能 :
 * date : 2018/5/12
 *
 * @author : zcwang@wisdombud.com
 * @version : 0.0.4-snapshot
 * @since : JDK 1.8
 */
public class Latin {

    public static void main(String args[]) {
        int...]]></description><category></category></item><item><title><![CDATA[java循环链表实现魔术师发牌问题]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80290115</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80290115</guid><author>wlittlefive</author><pubDate>Sat, 12 May 2018 11:45:55 +0800</pubDate><description><![CDATA[
package com.wisdombud.zyzx.report.start;

import static java.lang.System.out;

/**
 * 功能 :
 * date : 2018/5/10
 *
 * @author : zcwang
 * @version : 0.0.4-snapshot
 * @since : JDK 1.8
 */
public class...]]></description><category></category></item><item><title><![CDATA[spring,mybatis事务管理 隔离级别与事务传播]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/80060783</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/80060783</guid><author>wlittlefive</author><pubDate>Tue, 24 Apr 2018 10:26:55 +0800</pubDate><description><![CDATA[事务隔离级别隔离级别是指若干个并发的事务之间的隔离程度。TransactionDefinition 接口中定义了五个表示隔离级别的常量：TransactionDefinition.ISOLATION_DEFAULT：这是默认值，表示使用底层数据库的默认隔离级别。对大部分数据库而言，通常这值就是TransactionDefinition.ISOLATION_READ_COMMITTED。Transa...]]></description><category></category></item><item><title><![CDATA[RIbbon实现SpringCloud微服务负载均衡]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/79839075</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/79839075</guid><author>wlittlefive</author><pubDate>Sat, 07 Apr 2018 10:34:02 +0800</pubDate><description><![CDATA[两个服务提供者，一个服务消费者消费者多次请求，把请求分发到不同的提供者身上，达到负载均衡的目的。提供者：启动类：@EnableDiscoveryClient
@SpringBootApplication
public class StartServer {
    public static void main(String args[]) {
        SpringApplication....]]></description><category></category></item><item><title><![CDATA[volatile]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/79679063</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/79679063</guid><author>wlittlefive</author><pubDate>Sat, 24 Mar 2018 16:49:22 +0800</pubDate><description><![CDATA[之前写了一篇java内存模型的文章，里面涉及了volatile的规则。在这里说下我的理解。首先java内存模型解决了在不同平台和系统中相同的内存访问效果。其次它又定义了一些规则来解决缓存一致性的问题。其中一条规则就是volatile规则。一个变量被volatile修饰后，就会多了两个语义：1、volatile修饰后的变量修改后立即对其他线程可见。2、volatile修饰的变量不会被指令重排序注：指...]]></description><category></category></item><item><title><![CDATA[mysql修改最大连接数]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/79530837</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/79530837</guid><author>wlittlefive</author><pubDate>Mon, 12 Mar 2018 18:25:35 +0800</pubDate><description><![CDATA[首先进入命令行:mysql -uroot -prootuse mysql;// 查看最大连接数show variables like 'max_connections';出来的列表会显示出目前的最大连接数。如果不够，修改my.ini文件增加或修改  max_connections=(根据需要填写连接数)保存退出后，重启mysql的服务连接mysql 用上述查看最大连接数的命令验证我们是否修改成功。...]]></description><category></category></item><item><title><![CDATA[正则表达式小结]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/79520910</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/79520910</guid><author>wlittlefive</author><pubDate>Sun, 11 Mar 2018 22:24:48 +0800</pubDate><description><![CDATA[. :代表任意字符。

* :代表0至多个。

+:代表一至多个。

\b:代表单词的开头或结尾。

\B:代表不是单词的开头或结尾

\w:代表数字、字母、下划线、汉字。

\W:代表非数字、字母、下划线、汉字。

\s:代表'  '

\S:代表出了'  '的任意字符

\d:数字

\D:非数字

^:代表字符串的开始

$:代表字符串的结尾

{n}:出现的次数。

？:重复0次或一次

...]]></description><category></category></item><item><title><![CDATA[深入理解Java 内存模型]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/79434657</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/79434657</guid><author>wlittlefive</author><pubDate>Sun, 04 Mar 2018 11:51:51 +0800</pubDate><description><![CDATA[最近在看周志明老师的《深入理解java虚拟机》和《并发编程艺术》，有一些收获分享给大家。也看到一些相关的博客，写的都很好。强烈推荐java后端的同行看看这两本书。此篇想思维发散的说说java内存模型。也总结下自己就的收获。欢迎大家讨论，如若有不对的地方，还请指正，先谢过了。1、物理计算机的内存模型    java 内存模型出现的原因：虚拟机规范试图制定一种内存模型来屏蔽掉各种硬件和操作系统的差异，...]]></description><category></category></item><item><title><![CDATA[类锁和对象锁]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/74925902</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/74925902</guid><author>wlittlefive</author><pubDate>Mon, 10 Jul 2017 15:48:10 +0800</pubDate><description><![CDATA[目前我理解的synchronized锁分为对象锁和类锁

 

对象锁 

例如

class C {
    public synchronized void aa() {
        System.out.println(&quot;aa method&quot;);
        try {
            Thread.sleep(10000);
        } catch (final I...]]></description><category></category></item><item><title><![CDATA[ajax的traditional属性]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/62050831</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/62050831</guid><author>wlittlefive</author><pubDate>Tue, 14 Mar 2017 19:38:55 +0800</pubDate><description><![CDATA[
$.ajax({
    type: 'post',
    url: &quot;/eventVmChange/eventVmChange-confirmChange.html&quot;, /*确认变更*/
    dataType: 'json',
    //防止深度序列化
    traditional: true,
    data: {&quot;idList&quot;: idList},
    success: f...]]></description><category></category></item><item><title><![CDATA[mini ui form.setData()设置不上值]]></title><link>https://blog.youkuaiyun.com/wlittlefive/article/details/62050723</link><guid>https://blog.youkuaiyun.com/wlittlefive/article/details/62050723</guid><author>wlittlefive</author><pubDate>Tue, 14 Mar 2017 19:36:50 +0800</pubDate><description><![CDATA[
initForm: function () {
    var form = new mini.Form(&quot;#vm&quot;);
    $.ajax({
        type: 'post',
        url: &quot;/eventVmChange/queryChangeHistoryFormParam-load-data.html&quot;,
        data: {&quot;id&quot;: id},
   ...]]></description><category></category></item></channel></rss>