自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

追梦的小狼狗

Coding Change Life

  • 博客(17)
  • 资源 (4)
  • 收藏
  • 关注

原创 设计模式

23种设计模式精讲创建型单例模式单例模式的实现一般是私有化构造器,然后非空判断调用静态方法返回实例。单例模式需要解决线程安全问题,因此实例本身需要用volatile关键字实现可见性和禁止重排序,再进行双重验证锁(即对获得实例的方法进行同步,同时两次判断实例是否确定为空,只有确定为空才可以创建实例)更简单的方式是利用枚举类实现单例模式。枚举类中的每个字段都是私有构造器构造的,同时枚举类只会...

2019-07-24 16:53:25 264

原创 进程、线程与协程的概念

进程进程可以简单的理解为应用程序。进程是系统资源分配的最小单位,系统由一个个进程(程序)组成。线程线程属于进程多个线程共享进程的内存地址空间进程相当于一个容器,而线程而是运行在容器里面的,因此对于容器内的东西,线程是共同享有的,因此线程间的通信可以直接通过全局变量进行通信,但是由此带来的例如多个线程读写同一个地址变量的时候则将带来不可预期的后果,因此这时候引入了各种锁的作用,例如互斥锁...

2019-07-22 19:19:50 229

原创 为什么Netty底层不使用AIO

AIO明显性能要优于NIO我们知道,AIO是异步非阻塞,NIO是同步非阻塞,单看性能而言,的确是AIO要比NIO更胜一筹。相信大家也有像我一样的疑惑,那为什么AIO优于NIO,Netty底层不使用AIO呢?接下来我们看下这几个原因Netty底层使用NIO的原因NIO中将多路请求注册到多路选择复用器上,线程轮询请求状态,发现线程完毕则分配线程进行处理业务逻辑;而AIO是每个请求从一开始就分...

2019-07-19 15:48:48 3141

原创 到底什么是回调

到底什么是回调?这个问题从我入门编程开始就一直不得其解,今天看到了一篇博客终于能理解了点回调的思想。生动形象了讲解了回调看完上面那篇博客,我个人对回调的理解就是A中调用B的方法C,B中的方法C又调用了A中的方法D关于回调接口看完上面那篇博客,很多人认为其实A是没有必要实现CallBack<>这个接口的,直接在B方法的参数列表中声明A的类型即可,这样也能做到B中方法C调用A的方...

2019-07-18 17:12:47 7478

原创 栈和队列

2019-07-18 10:10:29 122

原创 Netty-Channel

Channel的常用操作(与网络通信相关)Channel read()从当前的Channel中读取数据到第一个缓冲区中,如果数据被成功读取,触发ChannelHandler.channelRead()事件,读取操作调用完成后,紧接着会触发ChannelHandler.channelReadComplete事件,这样业务的ChannelHandler可以决定是否需要继续读取数据Channel...

2019-07-18 10:06:58 273

原创 Netty-ByteBuf

ByteBuf由于NIO编程的复杂性,ByteBuffer也有其局限性,主要缺点如下:ByteBuffer长度固定,一旦分配成功,容量无法动态扩展或者伸缩,当需要编码的POJO对象大于ByteBuffer容量,会出现越界ByteBuffer只有一个标识位置的指针position,读写的时候需要不断地手工调用flip()和rewind()等,否则很容易导致程序失败ByteBuffer的AP...

2019-07-18 10:01:44 662

原创 树的那些事儿

2019-07-18 00:22:02 140

原创 xml那些事儿

xml文件读取什么是xml文件?xml文件的表示是一种以".xml"为扩展名的文件。其存储结构为树形结构:节点名称区分大小写xml文件开头要加上版本信息和编码方式< ?xml version=“1.0” encoding=“UTF-8”? >应用Dom方式解析Xml文件首先我们要明确,解析xml文件的目的是获取xml文件中的节点名、节点值、属性名及属性值xml中节...

2019-07-18 00:16:47 165

原创 jvm那些事儿

JVM那些事儿Java内存区域1.概述对于Java程序员,在虚拟机自动内存管理机制下,不再需要像C/C++程序员,为每一个new操作去写对应的delete操作,不容易出现内存泄漏和内存溢出问题2.运行时数据区域Java虚拟机在执行Java程序的过程中会将它管理的内存分成若干个不同的数据区域2.1程序计数器程序计数器是一块较小的内存空间,可以看作是当前线程所执行的字节码的行号指示器。...

2019-07-18 00:13:07 224

原创 电商项目中的数据库

新零售数据库设计SPU先讲下产品和商品的关系:举栗子来说的话,库克在苹果发布会上发布的IPhnoe,这个属于产品,而我们购买的不同内存配置等,如256G、128G的手机这个就是商品。商品是产品的不同销售方案。SPU指标准产品单位,SPU描述一个产品的各种特性SKUSKU是库存进出计量的单位,SKU是物理上不可分割的最小存货单元。SKU实际上就是具体的商品SKU与参数如何对应不同商品有...

2019-07-18 00:05:15 2659 1

原创 MySQL架构设计

MySQL架构设计大表和大事务大表带来的问题记录行数巨大,单表超过千万行表数据文件巨大,表数据文件超过10G1.大表对查询的影响,很难在一定的时间内过滤出所需要的数据2.建立索引需要很长时间,MySQL版本<5.5时,建立索引会锁表;MySQL版本>=5.5,建立索引时虽然不会锁表但会引起主从延迟3.修改表结构需要长时间锁表,造成长时间的主从延迟如何处理数据库中的大...

2019-07-17 23:51:44 347

原创 MySQL索引详解

索引索引好文章索引是帮助MySQL高效获取数据的数据结构。左边是数据表,最左边是数据记录的物理地址。为了加快Col2的查找,可以维护右边所示的二叉查找树,每个节点分别包含索引键值和一个指向对应记录物理地址的指针我对索引的理解:被设置为索引的字段,比如主键ID,会被设置为索引值并形成树,树中节点包含索引值和data(data的具体实现内容取决于不同的存储引擎)Btree索引B-/B+...

2019-07-17 23:26:49 140

原创 深入MyCAT

MyCAT什么是MyCAT?MyCAT相当于MySQL的Server层MySQL相当于MyCAT的存储层MyCAT不存储数据,所有数据存储在MySQL中MyCAT是一个数据库中间层可以实现对后端数据库的分库分表和读写分离对前端应用隐藏了后端数据库的存储逻辑什么是数据库中间层及其作用?实现后端数据库的读写分离及负载均衡对业务数据库进行垂直切分对业务数据库进行水平切分...

2019-07-17 23:19:08 567

原创 深入MySL-主从复制与Replication集群

MySQL复制MySQL二进制日志二进制日志记录了所有对MySQL数据库的修改事件,包括了CURD事件和对表结构的修改事件# 查看二进制日志是否启动show variables like 'log_bin'若未开启需要修改my.cnf配置文件log_bin = /var/log/mysql/mariadb-bin如何开启二进制日志二进制日志的格式基于段的格式 binlog_...

2019-07-17 23:05:28 224

原创 深入MySL-理解数据库三范式

数据库设计范式数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete)和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息第一范式数据库表中所有字段都只具有单一属性单一属性的列是由基本的数据类型所构成的设计出来的表是简单的二维...

2019-07-17 22:53:20 325

原创 小白和你一起配置云服务器

概述由于博主需要开发web项目,因此此次配置环境主要为jdk+tomcat+mysql+svn+redisJDK

2019-07-06 23:26:58 152

SSM整合所需Jar包

SSM整合所需JAR包,经测试可用。整合了Spring4.0所需的全部jar包

2019-03-14

自定义线程池

自己编写的线程池。具备的功能:自动扩容线程池大小,闲时回收线程。能够实现拒绝策略,

2019-02-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除