- 浏览: 4656 次
- 性别:
- 来自: 北京
最新评论
文章列表
1.单一职责原则
定义:应该有且只有一个原因引起类的变化。There should never be more than one reason for a class to change.
2.里是替换原则
定义:如果对每一个类型为S的对象o1,都有类型为T的对象o2,使得以T定义的 ...
http://www.cnblogs.com/itTeacher/category/428818.html
工厂方法模式的意义是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类当中。
1.简单工厂模式 ,使用场景:负责创建的对象比较少;客户只知道传入工厂类的参数,对于如何创建对象的逻辑不关心;容易违反高内聚责任分配原则,所以只在很简单的情况下应用
public interface IProduct{
public void saleProduct();
}
public class Product_A implements IProduct{
public void saleProduct(){ }
}
public class Product_B imple ...
单例模式确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实例。
1.懒汉模式
public class Singleton {
private Singleton() {}
private static final Singleton single = new Singleton();
//静态工厂方法
public static Singleton getInstance() {
return single;
}
}
2.饿汉模式
public class Singleton {
private ...
KEY/VALUE-tair
- 博客分类:
- NoSQL基础
Tair是什么
tair 是淘宝自己开发的一个分布式 key/value 存储引擎. tair 分为持久化和非持久化两种使用方式.
非持久化的 tair 可以看成是一个分布式缓存。
持久化的 tair 将数据存放于磁盘中,tair 可以配置数据的备份数目, tair 自动将一份数据的不同备份放到不同的主机上, 当有主机发生异常, 无法正常提供服务的时候, 其于的备份会继续提供服务.
tair的总体架构
tair 作为一个分布式系统, 是由一个中心控制节点和一系列的服务节点组成。 我们称中心控制节点为config server. 服务节点是data ...
1.系统命令
jps
jps -q 只显示pid
jps -l 输出应用程序main class的完整package名 或者 应用程序的jar文件完整路径名
jps -m 输出传递给main 方法的参数
jps -v 输出传递给JVM的参数
jps -v | grep ${pid}
load average
如下:
load average: 0.02, 0.27, 0.17
Load平均要小于Cpu的数量,一般是会根据15分钟那个load 平均值为首先
spring的那些接口介绍
- 博客分类:
- JAVA框架
1.ApplicationContextAware接口的作用
加载Spring配置文件时,如果Spring配置文件中所定义的Bean类实现了ApplicationContextAware 接口,那么在加载Spring配置文件时,会自动调用ApplicationContextAware 接口中的
public void setApplicationContext(ApplicationContext context) throws BeansException
方法,获得ApplicationContext对象。
2.FactoryBean接口的作用
Spring中有两种类型的Bean ...
1.spring加载顺序
BeanFactoryPostProcessor的postProcessBeanFactory方法
例如PropertyPlaceholderConfigurer、PropertyOverrideConfigurer和CustomEditorConfigurer
bean的构造方法
bean的set方法
BeanPostProcessor的postProcessBeforeInitialization方法
bean实现了InitializingBean接口,对应的方法为afterPropertiesSet
在bean定义的时候,通过init-method设置的方法
Be ...
1.ElasticSearch集群
2.ElasticSearch查询过程
3.ElasticSearch使用总结
1.Redis的语法
2.Redis的数据持久化
3.Redis的分布式锁
4.Redis的分布式队列
5.lua脚本
1.volatile
2.synchronized
3.ReentrantLock
4.线程池
5.多线程工具类
6.单例模式
1.Collection
set
HashSet
list
ArraryList
object数组
初始化时,若未指定数组大小则指向一个空数组
add()方法
若数组是空,则指定当前容量为10
若当前容量(数组大小+1)大于数组大小,则扩容 int newCapacity = 数组大小 + (数组大小 >> 1),扩容为原来的1/2倍,elementData = Arrays.copyOf(elementData, newCapacity)复制新数组
最后, elementData[size++] = e;
get()方法
rangeCheck(index ...
1.类加载机制
2.class文件格式
3.内存分配
4.垃圾回收器
5.垃圾回收过程