context:annotation-config 和 context:component-scan的区别 <context:annotation-config> 和 <context:component-scan>的区别<context:annotation-config> 是用于激活那些已经在spring容器里注册过的bean(无论是通过xml的方式还是通过package sanning的方式)上面的注解。<context:component-sca...
缓存穿透,缓存击穿,缓存雪崩解决方案分析 缓存穿透缓存穿透是指查询一个一定不存在的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从存储层查不到数据则不写入缓存,这将导致这个不存在的数据每次请求都要到存储层去查询,失去了缓存的意义。在流量大时,可能DB就挂掉了,要是有人利用不存在的key频繁攻击我们的应用,这就是漏洞。缓存雪崩缓存雪崩是指在我们设置缓存时采用了相同的过期时间,导致缓存在某一时刻同时失效,请求全部转发到D...
Mysql分表查询的简单实现 第一种:Mysql MERGE引擎分表第二种:union第三种:select t1.*,t2.*,t3.* from t1,t2,t3 where t1.user_id =? and t2.user_id =? and t3.user_id=?;
JVM性能调优监控工具 转自:https://blog.csdn.net/shenzhen206/article/details/54618354一、jps(Java Virtual Machine Process Status Tool) 基础工具 实际中这是最常用的命令,下面要介绍的小工具更多的都是先要使用jps查看出当前有哪些Java进程,获取该Java进程的id后再对该进程进行处理。二、...
java中类的加载顺序介绍(ClassLoader) 类的加载过程 一个java文件从被加载到被卸载这个生命过程,总共要经历5个阶段,JVM将类加载过程分为: 加载->链接(验证+准备+解析)->初始化(使用前的准备)->使用->卸载...
面试题:手写一个线程安全的单例模式 转自:http://cantellow.iteye.com/blog/838473第五种(静态内部类)public class Singleton { private static class SingletonHolder { private static final Singleton INSTANCE = new Singleton(); } priv...
什么是反射,那些场景使用反射?Class.forname和ClassLoader.loadClass有什么区别? 一、Java反射:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法,对于任意一个对象,都能够调用它的任意一个方法和属性。反射应用场景: 1.跨网络的远程平台创建和运行对象的能力,即远程方法调用(RMI) 2.逆向工程 3.基于注解实现的框架二、区别:反射中Class.forName()和ClassLoade...
Java基础面试题2018-08-29 一、hashmap、hashtble、concurrenthashmap的区别以及实现原理 1.hashmap是数组+链表的数据结构,hashmap线程不安全,因为可能会出现多个线程同时对hashmap的容量进行计算,或者是同时放入相同的key,造成值被覆盖。 2.hashtable采用synchronized同步锁,保证同一时间只有一个线程能进行操作,但是锁的同时,其它...