自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 秒杀---使用乐观锁实现或cache实现

概念秒杀系统的特点 新品上市 价格低廉 市场造势 大幅推广 指定时间开售 瞬时售空 读多写少 秒杀系统难点 高并发、负载压力大 竞争资源是有限的 对其他业务的影响 提防“黄牛党” 秒杀系统应用场景 商品抢购 群红包 优惠卷领取 抢火车票 在线预约 技术维度对秒杀系统的分析 —— 架构原则技术维度对...

2017-09-12 13:58:16 3844 0

原创 事件驱动

事件驱动模型事件驱动模型要素(what) 事件 事件源(生产者) 注册中心(事件通道) 侦听器(接受者) 事件驱动模型示意图 观察者模式观察者设计模式涉及到两种角色:主题(Subject )和观察者(Observer ) 事件驱动编程应用场景 js页面开发 Zookeeper开发 GUI...

2017-09-08 17:00:54 245 0

原创 手写数据库连接池

概述不使用连接池的缺点: tcp连接三次握手消耗时间 消耗内存严重 使用池化思想, 达到连接的可复用, 节省时间和资源代码连接池接口package jdbcPool; public interface IPool { //返回我们自己封装的连接对象 PooledConnection...

2017-09-06 11:39:49 509 0

原创 MySQL性能优化之索引优化

什么是优化? 合理安排资源、调整系统参数使MySQL运行更快、更节省资源。 优化是多方面的,包括查询优化、更新优化、服务器优化等很多方面。没有特定方式特定的方法,总是要具体场景,具体分析,但是我们要掌握基本的优化手段。 原则:减少系统瓶颈,减少资源占用,增加系统的反应速度。 数据库性能参数 我们可...

2017-08-30 14:30:59 269 0

原创 观察者模式

案例 宝宝睡觉, 爸爸在一旁观察, 宝宝醒来后, 爸爸给宝宝喂食 代码(第一版) package design.observer;/** * @ClassName: Child * @Description:小孩类 */ public class Child implements Runna...

2017-08-29 14:27:52 158 0

原创 手写SpringMVC框架

springmvc在项目中的作用 处理请求,把请求分发到不同的类和方法中 ioc 依赖注入,创建实例。配置的方式和annotation的方式,今天实现annotation的方式 aop 动态代理,事物控制,让程序员只专注于写自己的业务代码 步骤 定义包结构 com.annotatio...

2017-08-28 16:38:07 278 0

原创 redis主从

关系型数据库和NOSQL的比较关系型数据库的优势 保持数据的一致性(事务处理) 可以进行Join等复杂查询 其中能够保持数据的一致性是关系型数据库的最大优势 关系型数据库的不足 大量数据的写入处理需要等待 为有数据更新的表做索引或表结构(schema)变更, 共享锁–读锁,排他锁–写锁需要等待 字...

2017-08-28 11:06:39 103 0

原创 SpringAOP神秘面纱之动态代理

1、写代码的原则 开闭原则 开闭原则就是说对扩展开放,对修改关闭。 2、静态代理 以找对象为例子讲解静态代理 张三写代码、玩游戏没空找对象 张三他爹着急,年龄大了,想抱孙子了。张三他爹拿着张三的照片(持有张...

2017-08-25 13:37:57 133 0

原创 MySQL学习随记---触发器

概念 (1) 触发器是一个特殊的存储过程, 他是MySQL在insert, update, delete 的时候自动执行的代码块 (2) 触发器必须定义在特定的表上 (3)自动执行, 不能直接调用 作用: 监视某种情况并触发某种操作 触发器的思路: 监视 it_order 表, 如果 it...

2017-08-24 18:31:27 121 0

原创 阻塞队列ArrayBlockingQueue

队列包含固定长度队列和不固定长度队列ArrayBlockingQueue固定长度的阻塞队列 只有put()和take()方法才具有阻塞功能

2017-08-23 15:22:29 108 0

原创 Exchanger

用于实现两个人(线程)之间的数据交换, 每个人(线程)在完成一定的事务后想与对方交换数据, 第一个先拿出数据的人(线程)将一直等待第二个人(线程)拿着数据到来时, 才能交换数据, 例如毒品交易—哈哈

2017-08-23 14:51:41 83 0

原创 CyclicBarrier和CountDownLatch

CyclicBarrier CyclicBarrier初始化时规定一个数目,然后计算调用了CyclicBarrier.await()进入等待的线程数。当线程数达到了这个数目时,所有进入等待状态的线程被唤醒并继续。 CyclicBarrier就象它名字的意思一样,可看成是个障碍,所有的线程必须到...

2017-08-22 18:59:45 76 0

原创 Semaphore实现信号灯

Semaphore可以维护当前访问自身的线程个数, 并提供了同步机制. 使用Semaphore可以控制同时访问资源的线程个数, 例如实现一个文件允许的并发访问数 Semaphore实现的功能就类似厕所有5个坑, 假如有设个人要上厕所, 那么同时能有多少个人去上厕所呢? 同时只能有5个人能够占用, ...

2017-08-22 17:01:57 104 0

原创 java性能优化

性能优化 1. 减少gc的压力, gc 线程是一个优先级比较低的线程, 他是一个守护线程(服务于主线程), 回收我们的堆内存 2. 尽量避免我们的new操作 总结 避免对象创建和GC 对象使用完成后进行置空 1、String, StringBuffer, StringBuilder String...

2017-08-19 14:23:00 78 0

原创 HashMap那些事

1. 什么是hash 它是一个任意长度的二进制值通过一个映射关系(哈希算法---相当于大学里面的学号的一个映射规则)转换成一个固定长度的二进制值(哈希值---相当于我们大学里面的学号) 任意长度的二进制值 和 固定长度的二进制值 是一个一一对应关系 固定长度的二进制值就相当于一个任意...

2017-08-19 11:24:09 91 0

转载 通过注解实现通用导出Excel

http://blog.csdn.net/u013132051/article/details/64921585

2017-08-15 13:51:03 148 0

转载 30 个java编程技巧(最佳实践的初学者)

http://www.envicloud.cn/pages/news/235.html#4

2017-08-06 23:02:04 287 0

原创 Lock&Condition实现线程同步通信

Lock比传统线程模型中的synchronized方式更加面向对象, 与生活中的锁类似, 锁本身应该是一个对象. 两个线程执行的代码片段要实现同步互斥的效果, 谈么必须用一个Lock对象. 锁是在代表要操作的资源的类的内部方法中, 而不是线程代码中! ReentrantLock(重入锁) ...

2017-08-04 18:41:37 121 0

原创 Callable和Future的应用

Future取得的结果类型和Callable返回的结果类型必须一致, 这是通过泛型来实现的 Callable要采用ExecutorService的submit方法提交, 返回的future对象可以取消任务 代码 package mutithread.threadpool; import...

2017-08-04 17:38:28 111 0

原创 线程池

线程池的概念与Executors类的应用 创建固定大小的线程池 创建缓存线程池 创建单一线程池(线程死掉会重新启动) 代码 package mutithread.threadpool; import java.util.concurrent.ExecutorService; imp...

2017-08-04 16:45:36 120 1

原创 多个线程访问共享对象和数据的方式

如果每个线程执行的代码相同, 可以使用同一个Runnable对象, 这个Runnable对象中有那个共享数据, 例如:卖票系统(只考虑卖出) 如果每个线程执行的代码不同, 这时候需要用不同的Runnable对象, 有如下两种方式来实现这些Runnable对象之间的共享数据: (1) 将共享数据...

2017-08-04 14:07:08 130 0

原创 ThreadLocal实现线程范围的共享变量

线程范围内共享数据的示意图 ThreadLocal的作用和目的: 用于实现线程内的数据共享, 即对于相同的程序代码, 多个模块在同一线程中运行时要共享一份数据, 而在另外线程中运行时又共享另外一份数据 每个线程调用全局ThreadLocal对象的set方法, 就相当于往其内部的...

2017-08-04 09:56:48 162 0

原创 线程的互斥与同步通信

synchronized的使用和wait与notify实现线程间的通信 案例: 子线程循环10次, 主线程循环5次, 两者交替运行50次 代码 package thread; public class TraditionalThreadCommunication { public...

2017-08-03 18:22:38 97 0

原创 传统线程技术和定时器的应用

创建线程的两种传统方式 代码 package thread; public class TraditionalThread { public static void main(String[] args) { // 第一种 继承 Thread类 Thread thread = ne...

2017-08-03 15:56:28 207 0

原创 MySQL学习随记---存储函数

概念 自定义函数 他跟js中的函数几乎一样: 需要先定义, 然后调用(使用). 只是规定这个函数必须要返回数据----要有返回值 (1)定义语法 create function 函数名(参数) returns 返回值类型 begin     //代码 end 特别注意第三点!!!!! ...

2017-08-03 11:38:30 119 0

原创 MySQL学习随记---存储过程

存储过程 定义 概念类似于函数, 就是把一段代码封装起来, 当要执行这一段代码的时候, 可以通过调用该存储过程来实现, 在封装的语句体里面, 可以使用 if/case, case, while 等控制结构. 可以进行sql编程. 查看现有的存储过程: show procedure sta...

2017-08-02 18:51:58 192 0

原创 java设计模式之---工厂模式在开发中的运用

问题 写一个简单的计算器 分析 如果使用完全面向过程设计, 那么缺少代码重用, 不合理 应该采用面向对象的设计思想 代码 采用工厂方法模式 工厂 public interface OperationFactory { public Operation getOperati...

2017-07-27 18:39:12 151 0

原创 java设计模式之---抽象工厂模式

概念 抽象工厂模式是所有形态的工厂模式中最为抽象和最具一般性的. 抽象工厂模式可以向客户端提供一个接口, 使得客户端不必指定产品的具体类型的情况下, 能够创建多个产品族的产品对象 产品族和产品等级结构图 代码 public interface Fruit { void g...

2017-07-27 09:36:19 183 0

原创 java设计模式之---工厂方法模式

概念 工厂方法模式同样属于类的创建模式又被称为多态工厂模式. 工厂方法模式的意义是定义一个创建产品对象的工厂接口, 将实际创建工作推迟到工厂子类当中. 核心工厂类不再负责产品的创建, 这样核心类成为一个抽象工厂角色, 仅负责具体工厂子类必须实现的接口, 这样进一步抽象化的好处是使得工厂方法模式可...

2017-07-26 18:25:29 104 0

原创 MySQL学习随记---视图和SQL编程的 if case 和 循环

视图 定义 视图只是一个语句规则 语法 CREATE VIEW view_name AS SELECT column_name(s) FROM table_name WHERE condition 作用 (1) 可以简化查询 (2) 可以进行权限控制 视图与表关系 视图...

2017-07-21 14:37:55 1225 1

原创 java设计模式之---简单工厂模式

概念 简单工厂模式属于类的创建型模式, 又叫做静态工厂方法模式. 通过专门定义一个类来负责创建其他类的实例, 被创建的实例通常都具有共同的父类 结构 模式中包含的角色及其职责:  工厂(Creator)角色: 简单工厂模式的核心, 他负责实现创建所有实例的内部逻辑. 工厂类可以被外界直接调...

2017-07-21 13:43:01 92 0

原创 java设计模式之---策略模式

概念 Strategy模式也叫策略模式是行为模式之一, 他对一系列算法加以封装, 为所有的算法定义一个抽象的算法接口, 并通过继承该抽象算法接口对所有的算法加以封装和实现,具体的算法选择交由客户端决定(策略). Strategy模式主要用来平滑的处理算法的切换 结构 Strate...

2017-07-20 18:37:45 102 0

原创 java设计模式之---备忘录模式

概念 Memento模式也叫作备忘录模式, 是行为模式之一, 他的作用是保存对象的内部状态, 并在需要的时候(undo/rollback)恢复对象以前的状态(就是保存以前的记录 以便于随时恢复到这个状态) 最原始的实现 是在客户端代码中进行 保存状态 修改 回滚和还原 非常不合理备忘录模式结构图 ...

2017-07-20 18:02:14 85 0

转载 springmvc validate 记录

http://jinnianshilongnian.iteye.com/blog/1990081

2017-07-20 16:57:13 129 0

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