<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[du_du1的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/du_du1</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; du_du1]]></copyright><item><title><![CDATA[linux中mysql8设置不区分表名大小写]]></title><link>https://blog.csdn.net/du_du1/article/details/111771709</link><guid>https://blog.csdn.net/du_du1/article/details/111771709</guid><author>du_du1</author><pubDate>Sun, 27 Dec 2020 00:34:30 +0800</pubDate><description><![CDATA[第一种：安装好mysql后，先设置好配置文件，然后在启用mysql
找到linux中mysql配置文件 my.cnf
命令: which mysqld

命令: /usr/sbin/mysqld --verbose --help |grep -A 1 ‘Default options’
读取的顺序 /etc/my.cnf  /etc/mysql/my.cnf  ~/.my.cnf
在/etc/my.cnf中的mysqld节点下添加 lower_case_table_names=1 表示不区分表名大小写
启动]]></description><category></category></item><item><title><![CDATA[redis在Windows中添加服务，创建脚本启动关闭]]></title><link>https://blog.csdn.net/du_du1/article/details/111403145</link><guid>https://blog.csdn.net/du_du1/article/details/111403145</guid><author>du_du1</author><pubDate>Sat, 19 Dec 2020 13:36:00 +0800</pubDate><description><![CDATA[1、windows下安装redis并设置自启动
一、下载windows版本的Redis
去官网找了很久，发现原来在官网上可以下载的windows版本的，现在官网以及没有下载地址，只能在github上下载，官网只提供linux版本的下载
官网下载地址：http://redis.io/download
github下载地址：https://github.com/MSOpenTech/redis/tags
二、安装Redis
1.这里下载的是Redis-x64-3.2.100版本，我的电脑是win7 64位，所以]]></description><category></category></item><item><title><![CDATA[SpringMVC中用Map接收参数问题]]></title><link>https://blog.csdn.net/du_du1/article/details/111060495</link><guid>https://blog.csdn.net/du_du1/article/details/111060495</guid><author>du_du1</author><pubDate>Sat, 12 Dec 2020 14:41:13 +0800</pubDate><description><![CDATA[SpringMVC处理请求用Map类型接收参数时，如果参数无注解，则会传入BindingAwareModelMap类型，等价于Model、ModelMap参数；
参数添加@RequestParam注解时，会将参数包装称LinkedHashMap对象，参数的key为Map的key，参数值为Map的key，支持Get、Post方法（应该支持Put、Delete，没有测，俩方法与Post类似）；
添加@RequestBody注解时，接收Json类型数据，也会包装成LinkedHashMap对象，该注解不支持Get]]></description><category></category></item><item><title><![CDATA[Mybatis在xml中的结果映射]]></title><link>https://blog.csdn.net/du_du1/article/details/110835657</link><guid>https://blog.csdn.net/du_du1/article/details/110835657</guid><author>du_du1</author><pubDate>Sat, 12 Dec 2020 14:15:05 +0800</pubDate><description><![CDATA[1、准备表和数据
drop table if exists classes;
create table classes(
    id bigint(20) primary key auto_increment,
    class_name varchar(20) not null comment'班级名',
    amount int not null comment '班级人数',
    head_teacher_id bigint(20) null comment '班主任'
)ENGINE=I]]></description><category></category></item><item><title><![CDATA[mybatis中There is no gettter for property named ‘xxx‘ in ‘class java.lang.Long‘异常]]></title><link>https://blog.csdn.net/du_du1/article/details/110730904</link><guid>https://blog.csdn.net/du_du1/article/details/110730904</guid><author>du_du1</author><pubDate>Sun, 06 Dec 2020 09:58:24 +0800</pubDate><description><![CDATA[一般在mybatis中遇到这个问题，首先按报错提示看实体类是否缺少getter(一般很少出现)，接着考虑是不是SQL中字段与实体类中的字段拼写不同，其次考虑是不是传多个参数，且没有添加@param("")的参数
错误再现
Dao层接口
    List&lt;InvestigationalSiteEntity&gt; getInvestigationalSiteListByDdcId(@Param("ddcId") Long ddcId,@Param("related") Integer related);]]></description><category></category></item><item><title><![CDATA[LeetCode—删除重复有序链表]]></title><link>https://blog.csdn.net/du_du1/article/details/109732533</link><guid>https://blog.csdn.net/du_du1/article/details/109732533</guid><author>du_du1</author><pubDate>Mon, 16 Nov 2020 23:16:17 +0800</pubDate><description><![CDATA[题目
给定一个排序链表，删除所有重复的元素，使得每个元素只出现一次。
示例 1:
输入: 1-&gt;1-&gt;2
输出: 1-&gt;2
示例 2:
输入: 1-&gt;1-&gt;2-&gt;3-&gt;3
输出: 1-&gt;2-&gt;3
解决方法
采用快慢双指针法
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     Lis]]></description><category></category></item><item><title><![CDATA[数据库系统——数据库物理存储]]></title><link>https://blog.csdn.net/du_du1/article/details/109500555</link><guid>https://blog.csdn.net/du_du1/article/details/109500555</guid><author>du_du1</author><pubDate>Mon, 09 Nov 2020 11:33:10 +0800</pubDate><description><![CDATA[计算机系统存储体系
数据库存储与检索问题
两个基本问题？

如何高效的存储？-- 数据组织和索引
如何快速的检索？-- 查询实现与查询优化

数据库组织基础-- 存储体系
操作系统如何管理磁盘和数据
操作系统对数据组织：FAT-目录（文件夹）-磁盘块/簇
FAT（文件分配表-File Allocation Table）
一个磁盘块/簇可以是一个扇区或者多个扇区
缓冲区的管理

一条记录的地址 = 存储单元地址 = 内存地址 = 页面 ： 页面偏移量
页面 = 块
内存页面的分配：申请内存，操作系统进行分配
]]></description><category></category></item><item><title><![CDATA[数据库系统—SQL建表+基础]]></title><link>https://blog.csdn.net/du_du1/article/details/109379476</link><guid>https://blog.csdn.net/du_du1/article/details/109379476</guid><author>du_du1</author><pubDate>Tue, 03 Nov 2020 10:06:46 +0800</pubDate><description><![CDATA[1、 表定义
1.1建表语句
create table 表名 （
属性		类型，
属性		类型，
…
）
create table student(
	ID int primary key auto_increment,
	name varchar(20),
	age int,
	check(age&gt;0)
)

1.2删除表语句
drop table 表名
drop table student

1.3修改表语句（修改属性或者类型）

表增加属性

alter table student add cl]]></description><category></category></item><item><title><![CDATA[Java实现堆（最大堆）]]></title><link>https://blog.csdn.net/du_du1/article/details/109119184</link><guid>https://blog.csdn.net/du_du1/article/details/109119184</guid><author>du_du1</author><pubDate>Fri, 16 Oct 2020 17:34:26 +0800</pubDate><description><![CDATA[1、什么是堆
现在有这么一个需求，设计一个结构，满足两个操作要求：

删除时，返回该结构的最大值或者最小值的元素
往结构中新增元素

问题：如何组织优先这种结构？

一般数组、链表？
有序数组或者链表？
二叉搜索树或者AVL树？





结构
插入
删除




数组
插到数组尾部时间复杂度O(n)
查找最大或者最小值，删除后需要移动元素，时间复杂度O(2n)


链表
插入到链表头部，时间复杂度 O(1)
查找最大或者最小值，删除结点，时间复杂度O(n)


有序数组
查找插入位置，插入后移动元素并且插]]></description><category></category></item><item><title><![CDATA[平衡二叉树（Java实现）]]></title><link>https://blog.csdn.net/du_du1/article/details/109094884</link><guid>https://blog.csdn.net/du_du1/article/details/109094884</guid><author>du_du1</author><pubDate>Thu, 15 Oct 2020 16:24:49 +0800</pubDate><description><![CDATA[1、什么是平衡二叉树
平衡因子（Balance Factor）
简称BF：BF(T) = h(l) - h(r），其中 h(l)和 h(r）分别是T的左、右子树的高度。
平衡二叉树（Balance Binary Tree）（AVL树）
空树，或者任一节点左、右子树的高度绝对值不超过1，|BF(T)|&lt;=1。本质是一颗改进后的二叉搜索树。
2、平衡二叉树的调整
RR旋转

RR旋转代码实现
	//必须要有一个右节点
	//将A和B做右单旋，且更新A和B的树高度
	//返回新的根节点B
	private ]]></description><category></category></item><item><title><![CDATA[LeetCode——第53题：最大子序列和]]></title><link>https://blog.csdn.net/du_du1/article/details/108683714</link><guid>https://blog.csdn.net/du_du1/article/details/108683714</guid><author>du_du1</author><pubDate>Thu, 08 Oct 2020 16:26:15 +0800</pubDate><description><![CDATA[给定一个整数数组 nums ，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
示例:
输入: [-2,1,-3,4,-1,2,1,-5,4]
输出: 6
解释: 连续子数组 [4,-1,2,1] 的和最大，为 6。
进阶:
如果你已经实现复杂度为 O(n) 的解法，尝试使用更为精妙的分治法求解。
方法一：贪心算法
定义一个是最大和，一个是之前和，一个是当前和、当前值
如果之前和为负数，则抛弃之前和，反之，如果当前值为正，则更新最大值，更新当前和，否则只需要跟新当前值
在这里插入代码]]></description><category></category></item><item><title><![CDATA[LeetCode——64题：最小路径和]]></title><link>https://blog.csdn.net/du_du1/article/details/108940578</link><guid>https://blog.csdn.net/du_du1/article/details/108940578</guid><author>du_du1</author><pubDate>Tue, 06 Oct 2020 16:45:29 +0800</pubDate><description><![CDATA[题目
给定一个包含非负整数的 m x n 网格，请找出一条从左上角到右下角的路径，使得路径上的数字总和为最小。
说明：每次只能向下或者向右移动一步。
示例:
输入:
[
[1,3,1],
[1,5,1],
[4,2,1]
]
输出: 7
解释: 因为路径 1→3→1→1→1 的总和最小。
分析
一般求这种最小路径等最优解的情况，我们一般可以想到都是采用动态规划算法。然后我们只要抓住动态规划算法的两点：

大问题是否可以拆分成小问题（实际上任何大问题都可以拆分成小问题）
这些小问题的解是否可以重复利用，且需要]]></description><category></category></item><item><title><![CDATA[LeetCode——第63题：不同路径2]]></title><link>https://blog.csdn.net/du_du1/article/details/108799757</link><guid>https://blog.csdn.net/du_du1/article/details/108799757</guid><author>du_du1</author><pubDate>Fri, 25 Sep 2020 17:20:35 +0800</pubDate><description><![CDATA[题目
一个机器人位于一个 m x n 网格的左上角 （起始点在下图中标记为“Start” ）。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角（在下图中标记为“Finish”）。
现在考虑网格中有障碍物。那么从左上角到右下角将会有多少条不同的路径？

网格中的障碍物和空位置分别用 1 和 0 来表示。
说明：m 和 n 的值均不超过 100。
示例 1:
输入:
[
  [0,0,0],
  [0,1,0],
  [0,0,0]
]
输出: 2
解释:
3x3 网格的正中间有一个障碍物。
从]]></description><category></category></item><item><title><![CDATA[LeetCode——62题：不同路径]]></title><link>https://blog.csdn.net/du_du1/article/details/108729795</link><guid>https://blog.csdn.net/du_du1/article/details/108729795</guid><author>du_du1</author><pubDate>Tue, 22 Sep 2020 14:31:08 +0800</pubDate><description><![CDATA[问题
一个机器人位于一个 m x n 网格的左上角 （起始点在下图中标记为“Start” ）。
机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角（在下图中标记为“Finish”）。
问总共有多少条不同的路径？

例如，上图是一个7 x 3 的网格。有多少可能的路径？
示例 1:
输入: m = 3, n = 2
输出: 3
解释:
从左上角开始，总共有 3 条路径可以到达右下角。
1. 向右 -&gt; 向右 -&gt; 向下
2. 向右 -&gt; 向下 -&gt; 向右
3. 向下 -&g]]></description><category></category></item><item><title><![CDATA[LeetCode——第58题：最后一个单词的长度]]></title><link>https://blog.csdn.net/du_du1/article/details/108673374</link><guid>https://blog.csdn.net/du_du1/article/details/108673374</guid><author>du_du1</author><pubDate>Fri, 18 Sep 2020 22:41:52 +0800</pubDate><description><![CDATA[给定一个仅包含大小写字母和空格 ’ ’ 的字符串 s，返回其最后一个单词的长度。如果字符串从左向右滚动显示，那么最后一个单词就是最后出现的单词。
如果不存在最后一个单词，请返回 0 。
说明：一个单词是指仅由字母组成、不包含任何空格字符的 最大子字符串。
示例:
输入: “Hello World”
输出: 5
方法一：Java中的字符串方法：split()方法
class Solution {
    public int lengthOfLastWord(String s) {
        Strin]]></description><category></category></item><item><title><![CDATA[AJAX中contentType和传参格式与SpringMVC中@RequestBody注解接收有什么关系]]></title><link>https://blog.csdn.net/du_du1/article/details/108655825</link><guid>https://blog.csdn.net/du_du1/article/details/108655825</guid><author>du_du1</author><pubDate>Fri, 18 Sep 2020 00:40:03 +0800</pubDate><description><![CDATA[什么是contentType？contentType和dataType的区别？
contentType是设置你发给服务器的格式，默认是application/x-www-form-urlencoded格式，常用的还有application/json、multipart/form-data（文件），其他contentType格式。
contentType和dataType的区别，contentType是设置你发给服务器的格式，dataType是收到服务器数据的格式（dataType默认一般都是JSON格式）
]]></description><category></category></item><item><title><![CDATA[LeetCode——第21题：合并两个顺序链表]]></title><link>https://blog.csdn.net/du_du1/article/details/108653025</link><guid>https://blog.csdn.net/du_du1/article/details/108653025</guid><author>du_du1</author><pubDate>Thu, 17 Sep 2020 21:45:35 +0800</pubDate><description><![CDATA[将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
示例：
输入：1-&gt;2-&gt;4, 1-&gt;3-&gt;4
输出：1-&gt;1-&gt;2-&gt;3-&gt;4-&gt;4
方法一：迭代法：哑结点
/**
 * Definition for singly-linked list.
 * public class ListNode {
 *     int val;
 *     ListNode next;
 *     ListNode()]]></description><category></category></item><item><title><![CDATA[多组下拉框去重（多个对象部分属性或者全属性比较去重）]]></title><link>https://blog.csdn.net/du_du1/article/details/108570190</link><guid>https://blog.csdn.net/du_du1/article/details/108570190</guid><author>du_du1</author><pubDate>Sun, 13 Sep 2020 23:42:48 +0800</pubDate><description><![CDATA[工作中又遇到一个页面保存多条信息，每条信息中又包含多个下拉框的值，在选择下拉框的时候或者最后保存的时候需要判断保存的信息有没有重复信息，主要是判断多个下拉框信息是否都相同。这个问题可以转换成比较多个对象的属性是否重复的问题

第一种是正常的两层for循环

for (var i=0; i&lt;formData.length;i++) {
	for (var j=i+1; i&lt;formData.length;j++) {
		if (formData[i].name == formData[j].na]]></description><category></category></item><item><title><![CDATA[下拉框和多选项怎么保存]]></title><link>https://blog.csdn.net/du_du1/article/details/106892763</link><guid>https://blog.csdn.net/du_du1/article/details/106892763</guid><author>du_du1</author><pubDate>Sun, 21 Jun 2020 23:11:34 +0800</pubDate><description><![CDATA[下拉框数据

对于公用的下拉框字段的话，可以在数据库中创建表，然后进行关联查询或者子查询，也可以使用枚举类的方式，在数据库表中保存Integer或者Long类型的整数，但是相比较而言，在数据库创建表的话，代码量少，只需要在XML中写sql,使用的话更加方便。

多选项数据

多选项字段保存一般就是用枚举类，在业务代码中转换成id逗号分隔的字符串，页面数据回显的话，只需要将字符串准换成数组即可，前端遍历选中。
form表单提交时，如果存在复选框的话，请求链接会自动将复选框字段参数拼接成一串，后台在接受参数时，]]></description><category></category></item><item><title><![CDATA[多线程之单例模式]]></title><link>https://blog.csdn.net/du_du1/article/details/106030059</link><guid>https://blog.csdn.net/du_du1/article/details/106030059</guid><author>du_du1</author><pubDate>Sun, 10 May 2020 00:35:07 +0800</pubDate><description><![CDATA[单例模式：顾名思义，用来保证一个对象只能创建一个实例，除此之外，它还提供了对实例的全局访问。
单例模式结构：

饿汉模式（线程安全）
//虽然保证了线程安全，但是当类加载后，长时间不使用浪费了内存资源
public class Singleton{
	// static确保能全局访问
    private fianl static Singleton instance = new Singleton();
    //私有构造确保唯一实例
    private Singleton(){	
    }
 ]]></description><category></category></item></channel></rss>