<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[hpcds的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/hpcds</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; hpcds]]></copyright><item><title><![CDATA[SQL优化]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89319902</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89319902</guid><author>hpcds</author><pubDate>Mon, 15 Apr 2019 20:23:56 +0800</pubDate><description><![CDATA[1.对查询进行优化，要尽量避免全表扫描，首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where 子句中对字段进行 null 值判断，否则将导致引擎放弃使用索引而进行全表扫描。
答案：https://www.cnblogs.com/yunfeifei/p/3850440.html

...]]></description><category></category></item><item><title><![CDATA[单例模式 代码]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89316417</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89316417</guid><author>hpcds</author><pubDate>Mon, 15 Apr 2019 17:22:55 +0800</pubDate><description><![CDATA[单例模式要求类能够有返回对象一个引用(永远是同一个)和一个获得该实例的方法（必须是静态方法，通常使用getInstance这个名称）。
单例的实现主要是通过以下两个步骤：

将该类的构造方法定义为私有方法，这样其他处的代码就无法通过调用该类的构造方法来实例化该类的对象，只有通过该类提供的静态方法来得到该类的唯一实例；
在该类内提供一个静态方法，当我们调用这个方法时，如果类持有的引用不为空就返回这个...]]></description><category></category></item><item><title><![CDATA[Spring---七大核心模块]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89277555</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89277555</guid><author>hpcds</author><pubDate>Sat, 13 Apr 2019 09:05:57 +0800</pubDate><description><![CDATA[核心容器（Spring Core）
核心容器提供Spring框架的基本功能。Spring以bean的方式组织和管理Java应用中的各个组件及其关系。Spring使用BeanFactory来产生和管理Bean，它是工厂模式的实现。BeanFactory使用控制反转(IoC)模式将应用的配置和依赖性规范与实际的应用程序代码分开。
应用上下文（Spring Context）
Spring上下文是一个配置...]]></description><category></category></item><item><title><![CDATA[2019春招今日头条面试题]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89226033</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89226033</guid><author>hpcds</author><pubDate>Fri, 12 Apr 2019 09:57:46 +0800</pubDate><description><![CDATA[Get和Post的区别：
GET和POST是HTTP请求的两种基本方法，GET把参数包含在URL中，POST通过request body传递参数。


GET在浏览器回退时是无害的，而POST会再次提交请求。


GET产生的URL地址可以被Bookmark，而POST不可以。


GET请求会被浏览器主动cache，而POST不会，除非手动设置。


GET请求只能进行url编码，而POST支持...]]></description><category></category></item><item><title><![CDATA[为什么HashMap线程不安全，在多线程操作情况下什么时候线程不安全？]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/88707929</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/88707929</guid><author>hpcds</author><pubDate>Thu, 11 Apr 2019 09:05:42 +0800</pubDate><description><![CDATA[HashMap底层是一个Entry数组，一旦发生Hash冲突的的时候，HashMap采用拉链法解决碰撞冲突。
通过Entry内部的next变量可以知道使用的是链表，如果多个线程，在某一时刻同时操作HashMap并执行put操作，而有大于两个key的hash值相同，这个时候需要解决碰撞冲突，而采用拉链法解决碰撞冲突，这个时候两个线程如果恰好都取到了对应位置的头结点，而最终两个数据中势必会有一个会丢失...]]></description><category></category></item><item><title><![CDATA[2019阿里、CVTE、美团春招面试题]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89202367</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89202367</guid><author>hpcds</author><pubDate>Thu, 11 Apr 2019 08:59:58 +0800</pubDate><description><![CDATA[CVTE Java1.7与1.8的区别？

接口的默认和静态方法：Java 1.8允许给接口添加一个非抽象的方法实现，只需要使用 default关键字即可，这个特征又叫做扩展方法。
Lambda 表达式：(例如： (x, y) -&gt; { return x + y; } ;λ表达式有三部分组成：参数列表，箭头（-&gt;），以及一个表达式或语句块。)
方法与构造函数引用：Java 1.8 允许...]]></description><category></category></item><item><title><![CDATA[排序算法（Java）]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89202214</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89202214</guid><author>hpcds</author><pubDate>Thu, 11 Apr 2019 08:45:20 +0800</pubDate><description><![CDATA[冒泡排序：
public class BubbleSort {
	public static void main(String [] args) {
		int arr[] = {1,5,3,7,4,9,6,8,0,2};
		int end = arr.length;
		if(arr == null || arr.length &lt; 2) {
			return;
		}else {
		...]]></description><category></category></item><item><title><![CDATA[在浏览器中输入网址后的流程]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89192228</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89192228</guid><author>hpcds</author><pubDate>Thu, 11 Apr 2019 08:08:54 +0800</pubDate><description><![CDATA[1、浏览器根据域名（主机名）通过DNS服务器查询域名对应的服务器的IP地址
2、浏览器主机根据IP地址与服务器建立TCP连接。
3、浏览器将访问请求封装为一个HTTP请求报文，通过TCP协议发送给服务器。
4、服务器收到请求并响应，生成一个HTTP响应报文，通过TCP协议发送给浏览器主机。
5、浏览器得到响应报文之后，对响应报文进行解析。
6、浏览器异步请求其他资源
转载：https://blog...]]></description><category></category></item><item><title><![CDATA[2019春招字节跳动面试]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/88706836</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/88706836</guid><author>hpcds</author><pubDate>Thu, 11 Apr 2019 08:08:34 +0800</pubDate><description><![CDATA[1.数据库的事务：
首先事务具有原子性，即对于一个事务，要么做完，要么不做。例如：一个事务是用户购买商品，购买商品步骤包括更新商品表，记录商家收入，同时用户商品表增加一条购买记录，更新用户表的余额字段。此事务步骤需要全部执行完毕，才能反映出用户购买商品的正确状态。一旦发生意外，上述操作仅成功执行了部分SQL语句，其它语句没有执行或执行失败，就会造成用户购买商品这个业务记录不完整，数据库处于数据错乱...]]></description><category></category></item><item><title><![CDATA[多线程之线程池]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89192594</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89192594</guid><author>hpcds</author><pubDate>Thu, 11 Apr 2019 08:08:14 +0800</pubDate><description><![CDATA[如果corepollSize=10,MaxPollSize=20,如果来了25个线程 怎么办：
当一个任务通过execute(Runnable)方法欲添加到线程池时：
1、 如果此时线程池中的数量小于corePoolSize，即使线程池中的线程都处于空闲状态，也要创建新的线程来处理被添加的任务。
2、 如果此时线程池中的数量等于 corePoolSize，但是缓冲队列 workQueue未满，那么...]]></description><category></category></item><item><title><![CDATA[Spring IoC 与 DI]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89192068</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89192068</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 19:31:52 +0800</pubDate><description><![CDATA[IOC控制反转：
在面向对象编程的思想下，“我“充当一个入口类，在这个入口类中，我每次吃饭的时候都要买一双一次性筷子（每一次使用都要new一次），在这样的关系下，是”我“（即调用者）每次都要”主动“去买一次性筷子（另一个类）。我对筷子说你老老实实的过来我的手上，是我控制了筷子，那好，在这种控制正转的关系下，放在现实生活当中，肯定是不现实的，而且人是懒惰的，他总会去创造出更加方便自己生活的想法。
更...]]></description><category></category></item><item><title><![CDATA[Bean作用域及生命周期]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89191841</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89191841</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 19:20:55 +0800</pubDate><description><![CDATA[五种作用域分别为：singleton（单例）、prototype（原型）、request、session和global session
singleton：单例模式，Spring IoC容器中只会存在一个共享的Bean实例，无论有多少个Bean引用它，始终指向同一对象。Singleton作用域是Spring中的缺省作用域，也可以显示的将Bean定义为singleton模式。
prototype:原...]]></description><category></category></item><item><title><![CDATA[2019春招阿里面试题目Spring上下文及Spring Bean]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89191685</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89191685</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 19:14:59 +0800</pubDate><description><![CDATA[Spring有两个核心接口：BeanFactory和ApplicationContext，其中ApplicationContext是BeanFactory的子接口。他们都可代表Spring容器，Spring容器是生成Bean实例的工厂，并且管理容器中的Bean。
Spring容器最基本的接口就是BeanFactor。BeanFactory负责配置、创建、管理Bean，他有一个子接口：Applica...]]></description><category></category></item><item><title><![CDATA[乐观锁与悲观锁]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89186421</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89186421</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 16:20:52 +0800</pubDate><description><![CDATA[并发控制
当程序中可能出现并发的情况时，我们就需要通过一定的手段来保证在并发情况下数据的准确性，通过这种手段保证了当用户和其他用户一起操作时，所得到的结果和他单独操作时的祷告的结果是一样的。
这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。
没有做好并发控制，就可能导致脏读、幻读和不可重复读等问题。
我们常说的并发控制，一般都和数据库管理系统（DB...]]></description><category></category></item><item><title><![CDATA[数据库范式]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89185056</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89185056</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 15:42:23 +0800</pubDate><description><![CDATA[第一范式（1NF）：属性不可分。确保每列的原子性(强调的是列的原子性，即列不能够再分成其他几列)。实际上，第一范式是所有关系型数据库的最基本要求。
第二范式（2NF）：符合1NF，并且，非主属性完全依赖于码。第二范式依赖第一范式，所以第二范式必须符合第一，然后第二范式需要确保数据库表中的每一列都和主键相关，而不能只与主键的某一部分相关（主要针对联合主键而言）。不存在部分依赖。
第三范式（3NF）：...]]></description><category></category></item><item><title><![CDATA[数据库引擎]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89182808</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89182808</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 14:49:00 +0800</pubDate><description><![CDATA[Innodb引擎
Innodb引擎提供了对数据库ACID事务的支持，并且实现了SQL标准的四种隔离级别。该引擎还提供了行级锁和外键约束，它的设计目标是处理大容量数据库系统，它是基于MySQL后台的完整数据库系统，MySQL运行时Innodb会在内存中建立缓冲池，用于缓冲数据和索引。但是该引擎不支持FULLTEXT类型的索引，而且它没有保存表的行数，当SELECT COUNT(*) FROM TAB...]]></description><category></category></item><item><title><![CDATA[数据库事务]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89182219</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89182219</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 14:22:13 +0800</pubDate><description><![CDATA[MySQL事务隔离级别：
读未提交（read-uncommitted）
读已提交（read-committed）
可重复度（repeatable-read）
序列化（serializable）
事务的四大特性ACID：
Atomic(原子性)：只整个数据库事务是不可分割的工作单元。只有事务中所有的操作执行成功，才算整个事务成功；事务中任何一个SQL语句执行失败，那么已经执行成功的SQL语句也必须撤...]]></description><category></category></item><item><title><![CDATA[多线程的实现方式]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89176598</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89176598</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 10:52:30 +0800</pubDate><description><![CDATA[1、继承Thread类创建线程
Thread类本质上是实现了Runnable接口的一个实例，代表一个线程的实例。启动线程的唯一方法就是通过Thread类的start()实例方法。start()方法是一个native方法，它将启动一个新线程，并执行run()方法。这种方式实现多线程很简单，通过自己的类直接extend Thread，并复写run()方法，就可以启动新线程并执行自己定义的run()方法...]]></description><category></category></item><item><title><![CDATA[Redis相比memcached有哪些优势？]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89175553</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89175553</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 10:29:11 +0800</pubDate><description><![CDATA[(1) memcached所有的值均是简单的字符串，redis作为其替代者，支持更为丰富的数据类型
(2) redis的速度比memcached快很多
(3) redis可以持久化其数据
(4)Redis支持数据的备份，即master-slave模式的数据备份。
(5) 使用底层模型不同，它们之间底层实现方式 以及与客户端之间通信的应用协议不一样。Redis直接自己构建了VM 机制 ，因为一般的系...]]></description><category></category></item><item><title><![CDATA[2019今日头条春招视频面试题]]></title><link>https://blog.youkuaiyun.com/hpcds/article/details/89174781</link><guid>https://blog.youkuaiyun.com/hpcds/article/details/89174781</guid><author>hpcds</author><pubDate>Wed, 10 Apr 2019 10:15:26 +0800</pubDate><description><![CDATA[进程与线程的区别：进程是资源分配的最小单位，线程是程序执行的最小单位。进程是一个实体。每一个进程都有它自己的地址空间；进程是一个“执行中的程序”。进程有三个状态，就绪、运行和阻塞。一个进程中可以包含若干个线程，当然一个进程中至少有一个线程，线程可以利用进程所拥有的资源，在引入线程的操作系统中，通常都是把进程作为分配资源的基本单位，而把线程作为独立运行和独立调度的基本单位，由于线程比进程更小，基本上...]]></description><category></category></item></channel></rss>