- 博客(15)
- 资源 (3)
- 收藏
- 关注
原创 spring中用到哪些设计模式
spring中用到哪些设计模式1.工厂模式,这个很明显,在各种BeanFactory以及ApplicationContext创建中都用到了;2.模版模式,这个也很明显,在各种BeanFactory以及ApplicationContext实现中也都用到了;3.代理模式,在Aop实现中用到了JDK的动态代理;4.单例模式,这个比如在创建bean的时候。...
2018-03-27 17:31:37 1520
原创 mysql关键字执行顺序
标准的 SQL 的解析顺序为: (1) FROM 子句 组装来自不同数据源的数据 (2) WHERE 子句 基于指定的条件对记录进行筛选 (3) GROUP BY 子句 将数据划分为多个分组 (4) 使用聚合函数进行计算 (5) 使用HAVING子句筛选分组 (6) 计算所有的表达式 (7) 使用ORDER BY对结果集进行排序二、执行顺序 1. FROM:对FROM子句中前两个表...
2018-03-27 14:26:18 1830
原创 mysql游标理解
一、MySQL游标的概念1、游标介绍MySQL的游标(cursor)是一个重要的概念,通过查找资料与自己的理解,主要得出以下几点关于自己的理解。有数据缓冲的思想:游标的设计是一种数据缓冲区的思想,用来存放SQL语句执行的结果。 先有数据基础:游标是在先从数据表中检索出数据之后才能继续灵活操作的技术。 类似于指针:游标类似于指向数据结构堆栈中的指针,用来pop出所指向的数据,并且只能每次取一个。2、...
2018-03-27 14:14:00 7923 7
原创 Java JVM:垃圾回收
gc 分为两段:新生代和老年代gc垃圾回收机制对什么进行回收通过对象不可达算法,对对象进行回收。对象不可达:当一个对象没有任何一条链路指向根节点,就认为这个对象是不可达的,gc就会去回收它。gc垃圾回收机制做了什么事主要是对新生代进行清理对象,老年代整理内存。Java堆分为新生代和老年代,采用了不同的回收方式。例如新生代采用了复制算法,老年代采用了标记整理法。在新生代中,分为一个Eden 区域和两...
2018-03-21 10:46:13 158
原创 关于线程池的执行原则及配置参数详解
线程池的好处降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。创建线程池//参数初始化private static final int CPU_COUNT = Runtim...
2018-03-20 16:42:15 789
原创 synchronized、Lock、ReentrantLock、ReadWriteLock区别,threadlocal怎么解决线程同步问题
1.synchronized 用于同步方法和代码块,执行完后自动释放锁2.Lock是一个锁的接口,提供获取锁和解锁的方法(lock,trylock,unlock)3.ReentrantLock 重入锁Lock有一个实现类:ReentrantLock,它实现了Lock里面的方法,但是使用Lock的时候必须注意它不会像synchronized执行完成之后或者抛出异常之后自动释放锁,而是需要你主动释放锁...
2018-03-20 10:53:28 2701
原创 wait方法和sleep方法的区别
wait方法和sleep方法的区别对于sleep()方法,我们首先要知道该方法是属于Thread类中的。而wait()方法,则是属于Object类中的。sleep()方法导致了程序暂停执行指定的时间,让出cpu该其他线程,但是他的监控状态依然保持者,当指定的时间到了又会自动恢复运行状态。在调用sleep()方法的过程中,线程不会释放对象锁。而当调用wait()方法的时候,线程会放弃对象锁,进入等待...
2018-03-20 10:18:06 352
转载 线程进阶
http://www.jasongj.com/2016/01/17/Java1_%E6%B3%A8%E8%A7%A3Annotation/
2018-03-19 15:20:24 259
原创 创建线程的三种方式,对比其优劣势
public class CreateThreadMethod { public static void main(String[] args) throws ExecutionException, InterruptedException { /**第一种方式*/ CreateThreadOne createThreadOne = new CreateT...
2018-03-19 10:53:38 262
原创 java vector
Vector 可实现自动增长的对象数组。 java.util.vector提供了向量类(vector)以实现类似动态数组的功能。在Java语言中没有指针的概念,但如果正确灵活地使用指针又确实可以大大提高程序的质量。比如在c,c++中所谓的“动态数组”一般都由指针来实现。为了弥补这个缺点,Java提供了丰富的类库来方便编程者使用,vector类便是其中之一。事实上,灵活使用数组也可以完成向量类的功能...
2018-03-16 14:00:36 308
原创 HashMap、LinkedHashMap、ConcurrentHashMap、ArrayList、LinkedList对比
HashSet与HashMap区别HashMap实现了Map接口 HashSet实现了Set接口HashMap储存键值对 HashSet仅仅存储对象HashMap使用put()方法将元素放入map中 HashSet使用add()方法将元素放入set中HashMap中使用键对象来计算hashcode值 HashSet使用成员对象来计算hashcode值HashMap比较快,因为是使用唯一的键来获取对...
2018-03-16 13:33:04 1077
原创 生产消费者模型
生产者消费者模型具体来讲,就是在一个系统中,存在生产者和消费者两种角色,他们通过内存缓冲区进行通信,生产者生产消费者需要的资料,消费者把资料做成产品。生产消费者模式如下图。 在日益发展的服务类型中,譬如注册用户这种服务,它可能解耦成好几种独立的服务(账号验证,邮箱验证码,手机短信码等)。它们作为消费者,等待用户输入数据,在前台数据提交之后会经过分解并发送到各个服务所在的u...
2018-03-12 13:31:39 245
原创 java 总结
单例模式:一个类只有一个实例,即一个类只有一个对象实例。单例模式可以分为懒汉式和饿汉式: 懒汉式单例模式:在类加载时不初始化。 饿汉式单例模式:在类加载时就完成了初始化,所以类加载比较慢,但获取对象的速度快。懒汉模式,线程不安全:public class Singleton(){ private Singleton instance; private Sin...
2018-03-09 16:15:01 149
原创 单点登录
单点登录什么是单点登录?单点登录全称Single Sign On(以下简称SSO),是指在多系统应用群中登录一个系统,便可在其他所有系统中得到授权而无需再次登录,包括单点登录与单点注销两部分1、登录相比于单系统登录,sso需要一个独立的认证中心,只有认证中心能接受用户的用户名密码等安全信息,其他系统不提供登录入口,只接受认证中心的间接授权。间接授权通过令牌实现,sso认证中心验证用户的用户名密码没...
2018-03-09 10:50:41 503
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人