<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Walter-Brain博客空间]]></title><description><![CDATA[就这一次，我和我的倔强]]></description><link>https://blog.youkuaiyun.com/WalterBrain</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; WalterBrain]]></copyright><item><title><![CDATA[线程池面试]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/105339407</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/105339407</guid><author>WalterBrain</author><pubDate>Mon, 06 Apr 2020 10:45:44 +0800</pubDate><description><![CDATA[一、线程池是什么

线程池（Thread Pool）是一种基于池化思想管理线程的工具，经常出现在多线程服务器中，如MySQL。

线程过多会带来额外的开销，其中包括创建销毁线程的开销、调度线程的开销等等，同时也降低了计算机的整体性能。线程池维护多个线程，等待监督管理者分配可并发执行的任务。这种做法，一方面避免了处理任务时创建销毁线程开销的代价，另一方面避免了线程数量膨胀导致的过分调度问题，保证了...]]></description><category></category></item><item><title><![CDATA[Sprinig Boot + Redis 如何实现接口幂等性]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/105326074</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/105326074</guid><author>WalterBrain</author><pubDate>Sun, 05 Apr 2020 13:51:25 +0800</pubDate><description><![CDATA[幂等性, 通俗的说就是一个接口, 多次发起同一个请求, 必须保证操作只能执行一次

可能出现的问题：


	订单接口, 不能多次创建订单
	
	
	支付接口, 重复支付同一笔订单只能扣一次钱
	
	
	回调接口, 可能会多次回调, 必须处理重复回调
	
	
	普通表单提交接口, 因为网络超时等原因多次点击提交, 只能成功一次 等等
	
解决方案：


	唯一索引 -- 防止新增脏数据
	
	
	...]]></description><category></category></item><item><title><![CDATA[cookie和session]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/105261978</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/105261978</guid><author>WalterBrain</author><pubDate>Thu, 02 Apr 2020 09:22:39 +0800</pubDate><description><![CDATA[由于http是无状态的，也就是不能做到会话保持，那么就需要引入cookie和session来做会话保持，存储用户信息。


cookies是一种WEB服务器通过浏览器在访问者的硬盘上存储信息的手段。IE浏览器把Cookie信息保存在类似于C://windows//cookies的目录下。

当用户再次访问某个站点时，服务端将要求浏览器查找并返回先前发送的Cookie信息，来识别这个用户。

co...]]></description><category></category></item><item><title><![CDATA[电商项目数据库]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/105231052</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/105231052</guid><author>WalterBrain</author><pubDate>Wed, 01 Apr 2020 21:56:15 +0800</pubDate><description><![CDATA[共8张表，放到一个DB文件夹下














]]></description><category></category></item><item><title><![CDATA[jar包和war包区别以及怎么部署]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/105255632</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/105255632</guid><author>WalterBrain</author><pubDate>Wed, 01 Apr 2020 21:54:27 +0800</pubDate><description><![CDATA[什么是war和jar？

war包:是做好一个web应用后，通常是网站，打成包部署到容器中。
jar包：通常是开发时要引用通用类，打成包便于存放管理。

怎么打包？

IDEA上面菜单栏 Build &gt; Build Artifacts... &gt;Build

这时会在 ./out/artifacts/项目名称/ 目录下产生jar包

区别是？

war包代表了一个Web应用程序，...]]></description><category></category></item><item><title><![CDATA[一文看懂Git和SVN]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/105238870</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/105238870</guid><author>WalterBrain</author><pubDate>Wed, 01 Apr 2020 10:03:13 +0800</pubDate><description><![CDATA[Git 和 SVN 孰优孰好，每个人有不同的体验。在易用性这方面，SVN对于新手来说会更有好一些。但是从另外一方面看，Git 命令多意味着功能多，若我们能掌握大部分 Git 的功能，体会到其中的奥妙，会发现再也回不去 SVN 的时代了。

Git VS SVN

区别：


Git是分布式的，支持离线工作，在本地可以进行很多操作，而SVN是集中式的，必须联网才能正常工作；

Git 分支是指针...]]></description><category></category></item><item><title><![CDATA[锁]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104548452</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104548452</guid><author>WalterBrain</author><pubDate>Fri, 28 Feb 2020 01:31:04 +0800</pubDate><description><![CDATA[什么是死锁？

死锁是指两个或两个以上的线程在执行过程中，由于自身占有其他方所想要占有的资源，相互竞争而造成的一种阻塞现象，若无外力作用，它们都将无法推进下去。此时称系统处于死锁状态。

简单一点，死锁是指多个线程间互相占有其他方所想要占有的资源而形成循环等待，造成僵持的情况。

为什么会死锁？


死锁发生的四个必要条件：

1、互斥使用，即当资源被一个线程占有时，别的线程不能使用；
2、不可抢...]]></description><category></category></item><item><title><![CDATA[数据库完美总结（二）]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104449709</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104449709</guid><author>WalterBrain</author><pubDate>Sat, 22 Feb 2020 21:18:17 +0800</pubDate><description><![CDATA[JDBC(Java DataBase Connectivity)，Java数据库连接。是一种用于执行SQL语句的Java API，它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成。


JDBC优势：

Java语言访问数据库操作完全面向抽象接口编程
	开发数据库应用不用限定在特定数据库厂商的API
	程序的可移植性大大...]]></description><category></category></item><item><title><![CDATA[数据库完美总结（三）]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104448639</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104448639</guid><author>WalterBrain</author><pubDate>Sat, 22 Feb 2020 20:18:21 +0800</pubDate><description><![CDATA[索引：

索引是一种特殊的文件，包含着对数据表里所有记录的引用指针。数据库中的表、数据、索引之间的关系，类似于书架上的图书、书籍内容和书籍分类目录之间关系。【索引保存的数据结构主要为B+树】

索引的作用：

索引所起的作用类似书籍目录，可用于快速定位、检索到数据。
	索引对于提高数据库的性能有很大的帮助。
若对于数据查询需求量比修改和删除需求量大的时候，可以考虑建立索引，但是索引也会占据额外的磁......]]></description><category></category></item><item><title><![CDATA[数据库完美总结（一）]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104443560</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104443560</guid><author>WalterBrain</author><pubDate>Sat, 22 Feb 2020 19:04:30 +0800</pubDate><description><![CDATA[数据库大体可以分为:


基于标准的SQL的关系型数据库:Oracle、MySQL、SQL Server

不基于SQL实现的非关系型数据库:键值对【memcached、redis】；文档型【mongodb】；




数据库基本语法(大写均为关键字，不可缺少)：

1)登录本地数据库：MYSQL-U'username'-P 'password' ;

2)显示当前的数据库：SHOW DA...]]></description><category></category></item><item><title><![CDATA[生产者消费者模型]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104304497</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104304497</guid><author>WalterBrain</author><pubDate>Thu, 13 Feb 2020 23:23:07 +0800</pubDate><description><![CDATA[生产者消费者模型


   两个进程共享一个缓冲区，一个进程向缓冲区中写入数据（生产者），另一个进程从缓冲区中读取数据（消费者）。当缓冲区被写满时，生产者就必须进入挂起状态，直到消费者从缓冲区中取走数据时，生产者才能继续向缓冲区中放数据。同样当缓冲区没有数据时，消费者进程就必须进入挂起状态，直到生产者向缓冲区中放入数据时，消费者才能被唤醒继续从缓冲区中取走数据。


先实现一个队列：


...]]></description><category></category></item><item><title><![CDATA[详解 TCP 连接的 三次握手 与  四次挥手]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104289478</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104289478</guid><author>WalterBrain</author><pubDate>Thu, 13 Feb 2020 01:24:33 +0800</pubDate><description><![CDATA[客户端client：能向服务器发送信息，提出请求。

服务器server：能接受客户端发来的请求，并能够发送数据给客户端以做出回应。


套接字是通信的基石，是支持tcp/ip协议网络通信的基本单元，包含进行网络通信必须的5种信息：连接使用的协议，本地主机的ip地址，本地进程的协议端口，远地主机的ip地址，远地进程的协议端口。

互联网一般是五层结构，由上到下：

应用层：专门针对某些应用...]]></description><category></category></item><item><title><![CDATA[单例模式的实现]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104289053</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104289053</guid><author>WalterBrain</author><pubDate>Wed, 12 Feb 2020 23:54:32 +0800</pubDate><description><![CDATA[单例模式

当只需要用到类的一个实例对象时，我们需要用单例模式来设计类；

①饿汉模式


1.封装构造方法；
2.创建并封装私有对象；
3.设计get方法获取该私有对象；



class Singleton {
    private Singleton(){}
    private static Singleton instance = new Singleton();
    publi...]]></description><category></category></item><item><title><![CDATA[初识多线程]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104272446</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104272446</guid><author>WalterBrain</author><pubDate>Wed, 12 Feb 2020 00:57:32 +0800</pubDate><description><![CDATA[先来区分一下线程和进程！！！


进程是资源分配的最小单位。
线程是cup调度的最小单位，对于系统开销来说，线程比进程的开销小。



一个程序可以有多个进程，一个进程可以有多个线程。



进程间资源独立，一个进程的多个线程之间共享该进程的资源。



线程不能独立运行必须依赖于进程和应用程序的调用。



进程会由系统分配地址空间，而线程没有独立的地址空间，共享所属进程的地址空间。


线程（...]]></description><category></category></item><item><title><![CDATA[Java中的异常处理]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104272001</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104272001</guid><author>WalterBrain</author><pubDate>Tue, 11 Feb 2020 23:43:44 +0800</pubDate><description><![CDATA[在《Think in java》中是这样定义异常的：异常情形是指阻止当前方法或者作用域继续执行的问题。异常包括错误，但是不仅仅是错误，比如使用0做除数时就会产生异常，打开一个没有的文件的时候也会产生异常。那么什么时候才会出现异常呢？只有在你当前的环境下程序无法正常运行下去，这时它所就会从当前环境中跳出，并抛出异常。

其实异常就是你的程序无法正常执行了。

异常主要分为两类：Che...]]></description><category></category></item><item><title><![CDATA[Java数据类型]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/104268661</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/104268661</guid><author>WalterBrain</author><pubDate>Tue, 11 Feb 2020 19:52:55 +0800</pubDate><description><![CDATA[数据类型


Java数据类型分为：基本数据类型（简单类型）和引用数据类型，而基本数据类型包括数值型、字符型和布尔型，如int、long、char、boolean等；引用数据类型包括数组、类、接口。




1、常量和变量
变量：程序在运行期间可以改变值的；
常量：在程序运行期间不可改变值的（1、字面常量；2、被final修饰的变量；）
注：局部变量作用域和生命周期仅在自身所在的｛｝内；

2、类...]]></description><category></category></item><item><title><![CDATA[排序（闲时手机学习使用）]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/103283928</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/103283928</guid><author>WalterBrain</author><pubDate>Wed, 27 Nov 2019 21:40:21 +0800</pubDate><description><![CDATA[1、插入排序:越有序，速度越快
* 最坏情况下（无序）  时间复杂度：O（n^2）
* 最好情况下（有序）  时间复杂度：O（n）
* 稳定性： 稳定



    private static void insertSort(int[] array) {
        for (int i = 1; i &lt; array.length; i++) {
            in...]]></description><category></category></item><item><title><![CDATA[抽象类与接口]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/102820127</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/102820127</guid><author>WalterBrain</author><pubDate>Wed, 30 Oct 2019 16:43:30 +0800</pubDate><description><![CDATA[抽象(abstract)


【没有实际操作的方法，我们可以设计成一个 抽象方法(abstract method)；

  包含抽象方法的类我们称为 抽象类(abstract class)】



abstract class Shape {            //抽象类
 abstract public void draw();     //抽象方法
}

1.抽象类不能被实例化


...]]></description><category></category></item><item><title><![CDATA[类和对象(2)]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/102817558</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/102817558</guid><author>WalterBrain</author><pubDate>Wed, 30 Oct 2019 15:12:34 +0800</pubDate><description><![CDATA[包(package)：其实就是存放类的文件夹,一般命名为(例子：com.baidu.demo1)，其目的是为了把不同的类区分开来，以免文件名冲突带来不必要的麻烦，导包一般使用import(例子：importjava.util.Date)，或者使用某个方法时IDEA会自动导包。


面向对象编程语言第二大特性：继承(被继承的类，我们称为 父类/基类/超类。而继承自其他类的新类，我们称为 子类/派...]]></description><category></category></item><item><title><![CDATA[面试常见链表题总结（如果失眠了就拿出来看看）]]></title><link>https://blog.youkuaiyun.com/WalterBrain/article/details/102750210</link><guid>https://blog.youkuaiyun.com/WalterBrain/article/details/102750210</guid><author>WalterBrain</author><pubDate>Fri, 25 Oct 2019 21:22:49 +0800</pubDate><description><![CDATA[无头单链表 现场手撕代码+分析，供自己闲时手机复习使用！


删除链表中等于给定值 val 的所有节点。
	反转一个单链表。
	给定一个带有头结点 head 的非空单链表，返回链表的中间结点。如果有两个中间结点，则返回第二个中间结点。
	输入一个链表，输出该链表中倒数第k个结点。
	将两个有序链表合并为一个新的有序链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。
	编写代码，以给定值...]]></description><category></category></item></channel></rss>