<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[小景的博客]]></title><description><![CDATA[小景记东西的地方]]></description><link>https://blog.youkuaiyun.com/sinat_30973431</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sinat_30973431]]></copyright><item><title><![CDATA[MyBatis常见面试题]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108976365</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108976365</guid><author>sinat_30973431</author><pubDate>Fri, 09 Oct 2020 15:09:04 +0800</pubDate><description><![CDATA[1、MyBatis如何防止SQL注入？

SQL注入的例子：https://zhuanlan.zhihu.com/p/181259176

防止SQL注入一般从两个方面下手，一个是数据库方面，一个是代码方面。

（1）数据库方面

MyBatis使用#{}就可以防止SQL注入，具体怎么做可以看https://bobby-tables.com/java。这是因为使用#{}语法时，MyBatis会自动生成PreparedStatement，使用参数绑定（?）的方式来设置值。这也就是利用数据库提供的S...]]></description><category></category></item><item><title><![CDATA[计算机网络常见面试题]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108908016</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108908016</guid><author>sinat_30973431</author><pubDate>Sat, 03 Oct 2020 11:05:22 +0800</pubDate><description><![CDATA[1、Cookie和Session的联系与区别？

联系：

（1）都是保存用户信息的机制

（2）Session的运行依赖Session ID，而Session ID存在Cookie中，叫做JSESSIONID。如果浏览器禁用了Cookie，则Session也会失效。当然，Session的运行也可以用其他方式实现，比如在URL中传递session_id。

区别：

（1）存储内容：Cookie只能存储ASCII码，而Session可以存储任何类型的数据 -&gt; 如果需要考虑数据复杂性则选择S...]]></description><category></category></item><item><title><![CDATA[SQL练习]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108848447</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108848447</guid><author>sinat_30973431</author><pubDate>Mon, 28 Sep 2020 14:15:40 +0800</pubDate><description><![CDATA[1、从学生表中，检索所有比“王华”年龄大的学生姓名、年龄和性别


#首先求出王华的年龄，然后把所有年龄与王华的年龄比较
select sname, age, sex from student
where age &gt; (select age from student where sname = '王华');



2、从成绩表中，检索所有科目成绩都大于80分的学生的学号


#先找到存在一科成绩小于80的学生的学号集合，然后找到不在这个集合中的学号
select ...]]></description><category></category></item><item><title><![CDATA[排序算法总结]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108804055</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108804055</guid><author>sinat_30973431</author><pubDate>Sat, 26 Sep 2020 08:27:17 +0800</pubDate><description><![CDATA[一、常见问题

1、什么是稳定性？哪些排序算法是稳定排序？

稳定性，大概就是能保证排序前后，两个相等的数在序列中的相对次序不变，即，排序前A在A'前面，排序后A依然在A'前面。

稳定的排序有：冒泡排序（每次比较相邻两个元素，当前者比后者大时交换，当两者相等时不交换）、插入排序（如果已排序部分的当前元素比待插入元素大才右移，相等则不右移）、归并排序（底层基于合并操作，而合并操作不改变相同元素的先后顺序）、

不稳定的排序有：选择排序（5,8,5,2,9经过一轮排序之后，两个5的先后顺序发生了变化）、...]]></description><category></category></item><item><title><![CDATA[跑马问题--36匹马，跑道每次最多只能有6匹马进行比赛，最少进行多少次比赛能比出前3名？]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108711300</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108711300</guid><author>sinat_30973431</author><pubDate>Mon, 21 Sep 2020 16:11:16 +0800</pubDate><description><![CDATA[一、36匹马赛跑，跑到同时只能容许6匹马。而且36匹马速度不同，但是每次跑的速度恒定。问跑多少次可以选出第一、第二、第三名？

36匹马赛跑，跑到同时只能容许6匹马。而且36匹马速度不同，但是每次跑的速度恒定。问跑多少次可以选出第一、第二、第三名？

A. 7  B. 8  C. 9  D. 12

可以分三步走。
（1）第一步，将36匹马分成6组，1次跑一组，跑6次。分别得到每组的排名。
A1, A2, ..., A6;
B1, B2, ..., B6;
C1, C2, ..., ...]]></description><category></category></item><item><title><![CDATA[【牛客网】SQL练习]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108697985</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108697985</guid><author>sinat_30973431</author><pubDate>Sun, 20 Sep 2020 20:53:40 +0800</pubDate><description><![CDATA[1、考试分数（一）

https://www.nowcoder.com/practice/f41b94b4efce4b76b27dd36433abe398?tpId=82&amp;&amp;tqId=35492&amp;rp=1&amp;ru=/ta/sql&amp;qru=/ta/sql/question-ranking


select job, ROUND(AVG(score)*1.0, 3) `avg` from grade group by job 
order by `avg` de...]]></description><category></category></item><item><title><![CDATA[数据库基础概念总结]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108598936</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108598936</guid><author>sinat_30973431</author><pubDate>Tue, 15 Sep 2020 15:23:45 +0800</pubDate><description><![CDATA[一、锁

1、锁的概念

数据库是一个多用户使用的共享资源，当多个用户并发存取数据时，数据库中就可能出现多个事务同时存取同一数据的情况。如果对并发操作不加以控制，就可能破坏数据库的一致性（读取和存储不正确的数据）。

锁是实现数据库并发控制的一种机制，其目的也就是控制共享数据的并发访问和修改问题。有了加锁机制，当事务在操作某个数据之前，可以先向系统请求加锁，一旦加锁成功，在该事务释放锁之前，其他事务就不能对此数据进行更新操作。

2、锁的分类

（1）按锁的使用者的看法来划分

可以分为乐观锁、悲观锁...]]></description><category></category></item><item><title><![CDATA[【转载】从JVM角度看Java多态]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108594512</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108594512</guid><author>sinat_30973431</author><pubDate>Tue, 15 Sep 2020 10:31:21 +0800</pubDate><description><![CDATA[原文链接：https://www.cnblogs.com/qingergege/p/6853547.html



首先，明确一下，Java多态的三个必要条件：

1、 继承

2、 子类重写父类方法

3、 父类引用指向子类对象



然后看一个例子


package test.xing;

class Father{
    protected int age;
    public Father(){
        age = 40;
    }
    
    void eat(){
  ..]]></description><category></category></item><item><title><![CDATA[验证IP地址]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108578091</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108578091</guid><author>sinat_30973431</author><pubDate>Mon, 14 Sep 2020 14:09:53 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/practice/55fb3c68d08d46119f76ae2df7566880?tpId=188&amp;&amp;tqId=35325&amp;rp=1&amp;ru=/ta/job-code-high-week&amp;qru=/ta/job-code-high-week/question-ranking



一、问题描述

编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址
IPv4 地址由十进制数和点来表示，每个地址包含.]]></description><category></category></item><item><title><![CDATA[Scrum框架概述]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108529324</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108529324</guid><author>sinat_30973431</author><pubDate>Fri, 11 Sep 2020 10:41:04 +0800</pubDate><description><![CDATA[目录

一、Scrum是什么？

二、Scrum框架的结构（3种角色，5种事件，3种工种）

三、Scrum的理论

四、Scrum的工作流程

五、Scrum的5个价值观



一、Scrum是什么？

Scrum的标准释义为：Scrum是一个框架，在这个框架中人们可以解决复杂的自适应问题，同时也能高效并有创造性地交付尽可能高价值的产品。换言之，Scrum其实就是一种团队管理工作的方式，其将工作分解为较小的工作单元，并在周期性固定的时间段内持续地交付工作单元。其中，周期性固定的时间段称为迭代（Itera.]]></description><category></category></item><item><title><![CDATA[leetcode 695. Max Area of Island（岛屿的最大面积）]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108378756</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108378756</guid><author>sinat_30973431</author><pubDate>Thu, 03 Sep 2020 11:18:52 +0800</pubDate><description><![CDATA[https://leetcode.com/problems/max-area-of-island/



一、问题描述

给定一个二维数组，其所有元素均为1和0，分别代表陆地和水，数组边界四周都是水，求岛屿最大面积。



测试用例：


Input：
[[0,0,1,0,0,0,0,1,0,0,0,0,0],
 [0,0,0,0,0,0,0,1,1,1,0,0,0],
 [0,1,1,0,1,0,0,0,0,0,0,0,0],
 [0,1,0,0,1,1,0,0,1,0,1,0,0],
 [0,1,0..]]></description><category></category></item><item><title><![CDATA[leetcode 733. Flood Fill]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108377957</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108377957</guid><author>sinat_30973431</author><pubDate>Thu, 03 Sep 2020 10:53:01 +0800</pubDate><description><![CDATA[https://leetcode.com/problems/flood-fill/



一、问题描述

给定一个二维数组以及一个坐标，将其置为新的值，并且将由该坐标可到达的、与其值相同的所有元素重置为新的值。



测试用例：


Input：
image = [[1,1,1],[1,1,0],[1,0,1]]
sr = 1, sc = 1, newColor = 2

Output：
[[2,2,2],[2,2,0],[2,0,1]]



二、代码实现


class Solution {
  ...]]></description><category></category></item><item><title><![CDATA[leetcode 130. Surrounded Regions（被围绕的区域）]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108377075</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108377075</guid><author>sinat_30973431</author><pubDate>Thu, 03 Sep 2020 10:24:02 +0800</pubDate><description><![CDATA[https://leetcode.com/problems/surrounded-regions/



一、问题描述

给定一个元素均为'O'和'X'的二维数组，将内部的'O'重置为'X'，边界上的'O'保持不变。



测试用例：


Input：
X X X X
X O O X
X X O X
X O X X

Output：
X X X X
X X X X
X X X X
X O X X



二、代码实现

首先，遍历四条边界，如果当前元素是'X'，直接continue；如果当前元素是'O'...]]></description><category></category></item><item><title><![CDATA[leetcode 200. Number of Islands（岛屿的数量）]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108371266</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108371266</guid><author>sinat_30973431</author><pubDate>Wed, 02 Sep 2020 22:10:56 +0800</pubDate><description><![CDATA[https://leetcode.com/problems/number-of-islands/



一、问题描述

给定一个二维数组，其元素均为'1'和'0'，分别代表陆地和水，现在要计算数组中岛屿的数量。

被水包围的就是岛屿，此外，数组的四条边界均被水包围。

PS：某司的校招机试也出了这道题，该题反过来求一块有水有陆地的地域中湖泊的数量，解法完全一样。



测试用例：


Input: grid = [
  ["1","1","1","1","0"],
  ["1","1","0","1",..]]></description><category></category></item><item><title><![CDATA[复杂链表的复制]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108192979</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108192979</guid><author>sinat_30973431</author><pubDate>Mon, 24 Aug 2020 09:26:33 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/practice/f836b2c43afc4b35ad6adc41ec941dba?tpId=13&amp;rp=1&amp;ru=%2Fta%2Fcoding-interviews&amp;qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking



一、问题描述

输入一个复杂链表（每个节点中有节点值，以及两个指针，一个指向下一个节点，另一个特殊指针random指向一个随机节点），请对此链表进行深拷贝，并返回拷.]]></description><category></category></item><item><title><![CDATA[链表中环的入口节点]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108184714</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108184714</guid><author>sinat_30973431</author><pubDate>Sun, 23 Aug 2020 17:10:08 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/practice/253d2c59ec3e4bc68da16833f79a38e4?tpId=13&amp;rp=1&amp;ru=%2Fta%2Fcoding-interviews&amp;qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking



目录

一、问题描述

二、代码实现

1、哈希法

2、双指针法



一、问题描述

给一个链表，若其中包含环，请找出该链表的环的入口结点，否则，输出null..]]></description><category></category></item><item><title><![CDATA[两个单链表的第一个公共节点]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108184489</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108184489</guid><author>sinat_30973431</author><pubDate>Sun, 23 Aug 2020 16:19:21 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/practice/6ab1d9a29e88450685099d45c9e31e46?tpId=13&amp;rp=1&amp;ru=%2Fta%2Fcoding-interviews&amp;qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking



一、问题描述

输入两个链表，找出它们的第一个公共结点。（注意因为传入数据是链表，所以错误测试数据的提示是用其他方式显示的，保证传入数据是正确的）



二、代码..]]></description><category></category></item><item><title><![CDATA[合并两个有序单链表]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108183499</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108183499</guid><author>sinat_30973431</author><pubDate>Sun, 23 Aug 2020 15:32:04 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/practice/d8b6b4358f774294a89de2a6ac4d9337?tpId=13&amp;rp=1&amp;ru=%2Fta%2Fcoding-interviews&amp;qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking



一、问题描述

输入两个单调递增的链表，输出两个链表合成后的链表，当然我们需要合成后的链表满足单调不减规则。



二、代码实现


/*
public clas..]]></description><category></category></item><item><title><![CDATA[链表中倒数第k个节点]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108183277</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108183277</guid><author>sinat_30973431</author><pubDate>Sun, 23 Aug 2020 15:13:28 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/practice/529d3ae5a407492994ad2a246518148a?tpId=13&amp;rp=1&amp;ru=%2Fta%2Fcoding-interviews&amp;qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking



一、问题描述

输入一个链表，输出该链表中倒数第k个节点。



二、代码实现

采用双指针法，首先，快指针先走k步，慢指针先走一步；然后，快慢指针同时移动，当快..]]></description><category></category></item><item><title><![CDATA[反转单链表]]></title><link>https://blog.youkuaiyun.com/sinat_30973431/article/details/108175893</link><guid>https://blog.youkuaiyun.com/sinat_30973431/article/details/108175893</guid><author>sinat_30973431</author><pubDate>Sat, 22 Aug 2020 22:20:53 +0800</pubDate><description><![CDATA[https://www.nowcoder.com/practice/75e878df47f24fdc9dc3e400ec6058ca?tpId=13&amp;rp=1&amp;ru=%2Fta%2Fcoding-interviews&amp;qru=%2Fta%2Fcoding-interviews%2Fquestion-ranking



一、问题描述

输入一个链表，反转链表后，输出新链表的表头。



二、代码实现


/*
public class ListNode {
    int val..]]></description><category></category></item></channel></rss>