<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/dingping1919</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; dingping1919]]></copyright><item><title><![CDATA[HashMap的理解]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119829</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119829</guid><author>dingping1919</author><pubDate>Sat, 28 Sep 2019 16:53:00 +0800</pubDate><description><![CDATA[(1)HashMap的实现原理?此题可以组成如下连环炮来问


你看过HashMap源码嘛，知道原理嘛?



为什么用数组+链表？



hash冲突你还知道哪些解决办法？



我用LinkedList代替数组结构可以么?



既然是可以的,为什么HashMap不用LinkedList,而选用数组?




你看过HashMap源码嘛...]]></description><category></category></item><item><title><![CDATA[Mysql  学习篇]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119830</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119830</guid><author>dingping1919</author><pubDate>Wed, 25 Sep 2019 10:14:00 +0800</pubDate><description><![CDATA[基本操作


/* Windows服务 */


-- 启动MySQL


 net start mysql


-- 创建Windows服务


 sc create mysql binPath= mysqld_bin_path(注意：等号与值之间有空格)


/* 连接与断开服务器 */


mysql -h 地址 -P 端口 -u 用户名 ...]]></description><category></category></item><item><title><![CDATA[设计模式-单例模式（Singleton Pattern）]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119827</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119827</guid><author>dingping1919</author><pubDate>Thu, 19 Sep 2019 08:16:00 +0800</pubDate><description><![CDATA[1、介绍：
　　　单例模式（Singleton Pattern）：所谓单例，就是整个程序有且仅有一个实例。该类负责创建自己的对象，同时确保只有一个对象被创建。
     场景：频繁创建对象、管理对象是一件耗费资源的事，可以使用单例模式。
2、特点

类构造器私有
持有自己类型的属性
对外提供获取实例的静态方法

3、实现方式
　编写单例模式的代码其实很...]]></description><category></category></item><item><title><![CDATA[分布式数据库中间件对比]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119828</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119828</guid><author>dingping1919</author><pubDate>Wed, 11 Sep 2019 08:43:00 +0800</pubDate><description><![CDATA[原文出自：https://blog.youkuaiyun.com/jornada_/article/details/82947677
一般对于业务记录类随时间会不断增加的数据，当数据量增加到一定量（一般认为整型值为主的表达到千万级，字符串为主的表达到五百万）的时候，性能将遇到瓶颈，同时调整表结构也会变得非常困难。为了避免生产遇到这样的问题，在做系统设计时需要预估可能产生的数据量：预估记录主体个数...]]></description><category></category></item><item><title><![CDATA[Nginx+Lua+Redis 实现高性能缓存数据读取]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119825</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119825</guid><author>dingping1919</author><pubDate>Wed, 11 Sep 2019 08:25:00 +0800</pubDate><description><![CDATA[本文摘自：https://segmentfault.com/p/1210000011625271/read
不采用lua之前，我们从redis获取数据的路径与采用lua之后获取数据的路径对比，明显可以看出效率的提升。




安装OpenResty
参考官方给出的yum安装步骤，各种系统均有支持，也可采用源码安装的形式，安装完成后默认路径是/usr/local/op...]]></description><category></category></item><item><title><![CDATA[乐观锁和悲观锁]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119826</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119826</guid><author>dingping1919</author><pubDate>Tue, 03 Sep 2019 08:23:00 +0800</pubDate><description><![CDATA[1、悲观锁（Pessimistic Concurrency Control），第一眼看到它，相信每个人都会想到这是一个悲观的锁。没错，它就是一个悲观的锁。
那这个悲观体现在什么地方呢？悲观是我们人类一种消极的情绪，对应到锁的悲观情绪，悲观锁认为被它保护的数据是极其不安全的，每时每刻都有可能变动，一个事务拿到悲观锁后（可以理解为一个用户），其他任何事务都不能对该数据进行修改，只能等待锁被...]]></description><category></category></item><item><title><![CDATA[Tomcat源码分析篇（转载）]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119823</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119823</guid><author>dingping1919</author><pubDate>Mon, 02 Sep 2019 12:28:00 +0800</pubDate><description><![CDATA[说明：仅供学习，原文出自https://www.cnblogs.com/Jtianlin/p/5041703.html
Tomcat源码分析(一)--服务启动
1.Tomcat主要有两个组件，连接器和容器，所谓连接器就是一个http请求过来了，连接器负责接收这个请求，然后转发给容器。容器即servlet容器，容器有很多层，分别是Engine，
  Host，Context，...]]></description><category></category></item><item><title><![CDATA[SpringBoot之启动@SpringBootApplication原理分析]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119824</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119824</guid><author>dingping1919</author><pubDate>Mon, 02 Sep 2019 12:04:00 +0800</pubDate><description><![CDATA[1、SpringBoot 启动main()

1 @SpringBootApplication
2 public class TomcatdebugApplication {
3 
4     public static void main(String[] args) {
5         SpringApplication.run(TomcatdebugApplicat...]]></description><category></category></item><item><title><![CDATA[分布式锁的实现]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119821</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119821</guid><author>dingping1919</author><pubDate>Tue, 27 Aug 2019 09:06:00 +0800</pubDate><description><![CDATA[本文摘自网上，仅作学习使用！
用一web应用集群，负载均衡部署实现：



在上图可以看到，变量A在JVM1、JVM2、JVM3三个JVM内存中（这个变量A主要体现是在一个类中的一个成员变量，是一个有状态的对象），如果我们不加任何控制的话，变量A同进都会在JVM分配一块内存，三个请求发过来同时对这个变量进行操作，显然结果不是我们想要的。
如果我们业务中存在这样的场景的话，就...]]></description><category></category></item><item><title><![CDATA[synchronized和lock的区别]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119822</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119822</guid><author>dingping1919</author><pubDate>Sat, 17 Aug 2019 12:48:00 +0800</pubDate><description><![CDATA[原文摘自： https://www.eyesmoons.com/article/75
1，原始构成
synchronized是关键字，属于JVM层面，通过wait，notify和notifyAll来调度线程。
Lock是具体类，是api层面的锁。
2，使用方法
synchronized不需要用户手动去释放锁， 当synchronized代码执行完后，系统会自动释放锁。
Loc...]]></description><category></category></item><item><title><![CDATA[分布式系统架构常识之CAP和BASE理论]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119819</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119819</guid><author>dingping1919</author><pubDate>Fri, 16 Aug 2019 13:38:00 +0800</pubDate><description><![CDATA[什么是CAP理论？
2000年7月，加州大学伯克利分校的Eric Brewer教授在ACM PODC会议上提出CAP猜想。2年后麻省理工学院的Seth Gilbert和NancyLynch从理论上证明了CAP，之后CAP理论正式成为分布式计算领域的公认定理。
CAP是一个已经经过证实的理论：一个分布式系统最多只能同时满足一致性（Consistency）、可用性（Availabilit...]]></description><category></category></item><item><title><![CDATA[Mysql中的行级锁、表级锁、页级锁]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119820</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119820</guid><author>dingping1919</author><pubDate>Fri, 16 Aug 2019 08:39:00 +0800</pubDate><description><![CDATA[在DBMS中，可以按照锁的粒度把数据库锁分为行级锁(INNODB引擎)、表级锁(MYISAM引擎)和页级锁(BDB引擎 )。

行级锁
行级锁是Mysql中锁定粒度最细的一种锁，表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小，但加锁的开销也最大。行级锁分为共享锁和排他锁。
特点
开销大，加锁慢；会出现死锁；锁定粒度最小，发生锁冲突的概率最...]]></description><category></category></item><item><title><![CDATA[MySQL数据库的锁机制]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119817</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119817</guid><author>dingping1919</author><pubDate>Fri, 16 Aug 2019 08:18:00 +0800</pubDate><description><![CDATA[在并发访问情况下，很有可能出现不可重复读等等读现象。为了更好的应对高并发，封锁、时间戳、乐观并发控制(乐观锁)、悲观并发控制(悲观锁)都是并发控制采用的主要技术方式。
锁分类
①、按操作划分：DML锁，DDL锁
②、按锁的粒度划分：表级锁、行级锁、页级锁
③、按锁级别划分：共享锁、排他锁
④、按加锁方式划分：自动锁、显示锁
⑤、按使用方式划分：乐观锁、悲观锁
乐观锁和悲...]]></description><category></category></item><item><title><![CDATA[sso单点登录系统]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119818</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119818</guid><author>dingping1919</author><pubDate>Thu, 15 Aug 2019 08:49:00 +0800</pubDate><description><![CDATA[说明： 本文知识网摘，仅限自己加深学习，原文出处点击
一、准备
　　1、了解http请求及特点
　　2、了解cookie和session
　　3、了解用户登录和注销流程

二、单机用户登录流程
总体流程图实现：



1、http无状态协议

web应用采用browser/server架构，http作为通信协议。http是无状态协议，浏览器的每一次请求，...]]></description><category></category></item><item><title><![CDATA[集合学习篇之-fail-fast和fail-safe]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119815</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119815</guid><author>dingping1919</author><pubDate>Wed, 14 Aug 2019 16:36:00 +0800</pubDate><description><![CDATA[1、fail-fast
　　我们通常说的Java中的fail-fast机制，默认指的是Java集合的一种错误检测机制。当多个线程对部分集合进行结构上的改变的操作时，有可能会产生fail-fast机制，这个时候就会抛出ConcurrentModificationException（后文用CMException代替）。
　　例如：在Java中， 如果在foreach /iterator循...]]></description><category></category></item><item><title><![CDATA[线程状态]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119816</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119816</guid><author>dingping1919</author><pubDate>Wed, 14 Aug 2019 15:40:00 +0800</pubDate><description><![CDATA[1、“锁” 的生活实例
　　比如，你今天要去银行办业务，你到了银行之后，要先取一个号，然后你坐在休息区等待叫号，过段时间，广播叫到你的号码之后，会告诉你去哪个柜台办理业务，这时，你拿着你手里的号码，去到对应的柜台，找相应的柜员开始办理业务。当你办理业务的时候，这个柜台和柜台后面的柜员只能为你自己服务。当你办完业务离开之后，广播再喊其他的顾客前来办理业务。
　　
在这个例子中，每个顾...]]></description><category></category></item><item><title><![CDATA[JMM学习篇]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119813</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119813</guid><author>dingping1919</author><pubDate>Wed, 14 Aug 2019 13:58:00 +0800</pubDate><description><![CDATA[并发编程，为了保证数据的安全，需要满足以下三个特性：
原子性是指在一个操作中就是cpu不可以在中途暂停然后再调度，既不被中断操作，要不执行完成，要不就不执行。
可见性是指当多个线程访问同一个变量时，一个线程修改了这个变量的值，其他线程能够立即看得到修改的值。
有序性即程序执行的顺序按照代码的先后顺序执行。
有没有发现，缓存一致性问题其实就是可见性问题。而处理器优化是可以导致原...]]></description><category></category></item><item><title><![CDATA[JVM学习篇之-性能调优]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119811</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119811</guid><author>dingping1919</author><pubDate>Tue, 13 Aug 2019 15:53:00 +0800</pubDate><description><![CDATA[1、JVM内存模型


总结：可以发现最明显的一个变化是元空间从虚拟机转移到了本地内存。默认情况下，元数据空间大小仅受限于本地内存， 这意味着以后不会因为永久代大小不够而抛出OOM异常了。 jdk1.8以前，HotSpot VM将class和类的jar包数据存储在PermGen里， PermGen大小是固定的，而且项目之间无法公用公有的class，所以很容易碰到OOM异常。改成M...]]></description><category></category></item><item><title><![CDATA[JVM学习篇之-GC]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119814</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119814</guid><author>dingping1919</author><pubDate>Tue, 13 Aug 2019 15:47:00 +0800</pubDate><description><![CDATA[原文转自：https://blog.youkuaiyun.com/Strong997/article/details/80033787
1、GC
垃圾收集 Garbage Collection 通常被称为“GC”，它诞生于1960年 MIT 的 Lisp 语言，经过半个多世纪，目前已经十分成熟了。
jvm 中，程序计数器、虚拟机栈、本地方法栈都是随线程而生随线程而灭，栈帧随...]]></description><category></category></item><item><title><![CDATA[JVM学习篇之-类运行机制]]></title><link>https://blog.youkuaiyun.com/dingping1919/article/details/102119808</link><guid>https://blog.youkuaiyun.com/dingping1919/article/details/102119808</guid><author>dingping1919</author><pubDate>Tue, 13 Aug 2019 14:32:00 +0800</pubDate><description><![CDATA[1.一段java程序是如何运行起来的呢？

Java源文件，通过编译器，产生.Class字节码文件，字节码文件通过Java虚拟机中的解释器，编译成特定及其上的机器码，那Java虚拟机又是怎样加载java程序并执行起来的呢？简单来说：通过类加载器加载字节码文件，被分配到JVM的运行时数据区的字节码会被执行引擎执行。（1）类加载器，加载.class文件（2）运行数据区：栈区、堆区、...]]></description><category></category></item></channel></rss>