自定义博客皮肤

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ZooKeeper Overview

zookeeper : 为分布式应用提供分布式协调服务 zookeeper 为分布式应用提供了一个分布式、开源的协调服务。他提供了一系列的简单原语(指zookeeper的一些特性),分布式应用可以在这些原语之上实现更高级别的服务:同步、配置维护、集群管理、命名服务。组件设计易于使用,数据模型基于...

2018-07-13 19:44:13

阅读数 59

评论数 0

head first 设计模式

观察者模式 观察者模式定义了对象之间的一对多依赖,这样一来,当一个对象改变状态时,它的所有依赖者都会通知并自动更新。 观察者模式是比较好理解的也好运用的一种设计模式,分为发布者和订阅者,订阅者可以自由的订阅或者取消而无需改动发布者。 Java 类库案例 Java 提供了观察者模式的现成...

2018-07-11 00:52:41

阅读数 90

评论数 0

java HashMap 源码

内部数据结构 hashMap 底层是一个 Node 类型的数组,Node 是一个单链表。但是当哈希冲突导致同一个位置的单链表长度超过 8 时,单链表会转换成红黑树:TreeNode ,以提高冲突后的检索效率。(TreeNode 是 Node 的子类)。 /** * The table, i...

2018-04-09 01:03:13

阅读数 230

评论数 0

Spring AOP 和 AspectJ

AspectJAspectJ 是一个非常优秀的 AOP 框架,它扩展了 Java 语言并且定义了一套 SOP 的语法。因此,使用了 AspectJ 的 Java 项目需要使用 AspectJ 提供的编译器 Ajc 而不是 Javac 。AspectJ 编程有两种方式,使用扩展的语法或者是使用注解的...

2017-03-22 20:47:34

阅读数 200

评论数 0

java 日志框架总结

简介 commons-logging(jcl) : apache 提供的日志框架接口,spring 默认使用的框架接口。现在已经很久没有更新了。 slf4j : 也是一种日志框架接口,可以自由的选择具体的日志框架。和 commons-logging 实现方法不同,持续更新中。 java.util....

2017-03-17 17:06:07

阅读数 619

评论数 0

持有对象

链表 arrayList:随机访问性能好,插入和删除效率差 LinkedList:插入和删除效率高,随机访问性能差 初始化// 1.使用 Arrays.asList 将数组转化为容器进行初始化,速度最慢 List<Integer> list1 = new ArrayList<In...

2017-02-06 21:32:04

阅读数 187

评论数 0

枚举

enum 的特征public enum ColorEnum { RED("红色"), BLUE("蓝色"), GREEN("绿色"), ; private String description; ...

2017-02-04 20:53:53

阅读数 122

评论数 0

数组

数组与容器比较 数组作为一个简单的线性序列,访问效率要优于容器,但是缺点是对象的大小不能改变。 数组可以持有基本数据类型,但是容器只能持有包装类(但是由于自动拆箱和装箱,使得差别不大)。 应该优先选择容器而不是数组,因为容器的灵活性要远远大于数组。除非性能已经成为瓶颈。 数组创建的过程数组创建其实...

2017-02-02 21:29:20

阅读数 159

评论数 0

异常处理

异常处理过程: 使用 new 在堆上创建异常对象 当前执行路径被终止,并从当前环境中弹出对异常对象的引用 异常处理机制接管程序,并开始寻找异常处理程序继续执行 —— 将程序从错误状态中恢复 异常处理的两种基本模型: 终止模型:假设错误非常关键,出错以后不能恢复,不能继续执行 恢复模型:异常处...

2017-02-01 13:24:11

阅读数 90

评论数 0

内部类

成员内部类 (普通非静态内部类) 成员内部类不能包含 static 成员和 static 方法。也不能包含静态内部类。 成员内部类可以访问外部类的成员和方法,他提供了一个访问外部类数据的钩子。在实现上内部类对象秘密包含了一个指向外部类对象的引用,所以成员内部类对象与外部类对象是紧紧关联的,只能...

2017-01-27 11:23:30

阅读数 115

评论数 0

1 ~ 9 章

Java 除了基本类型之外,操纵其他元素都是对象。对对象的操作都是通过引用,两者的关系如同电视机与遥控器。引用是可以脱离对象单独存在的,但是这时遥控器并不起作用。 引用保存在堆栈中,对象保存在堆中,基本数据类型保存在堆栈中。 在作用域内定义的基本变量只可用于作用域前。 { int x = ...

2017-01-22 22:59:17

阅读数 118

评论数 0

idea 个人使用

常用系统设置 显示工具栏:安装以后默认不显示顶部和两边的工具按钮 ,view -> toolbar 和 toolbuttons 。 设置主题和系统字体:系统字体默认不支持中文,需要按需修改,appearance & behavior -> appearance 。 设置编辑区...

2016-12-21 16:49:48

阅读数 355

评论数 0

微观经济学

经济学十大原理 人们面临权衡取舍:支出守恒,在某一方面的支出增加意味着在另一方面的支出减少;效率和平等的权衡,将资源平等的分配会导致蛋糕变小。 某种东西的成本是为了得到他所放弃的东西:机会成本。 理性人考虑边际量:根据边际成本和边际利益做出决策。 人们会对激励做出反应:激励是引起一个人做出某种行为...

2016-12-20 21:02:11

阅读数 1303

评论数 0

鸟哥私房菜总结

Bash echo ${varName} 输出变量 varName=varValue 设置变量 unset varName 取消变量 varName=${varName}:expendVarValue 扩展变量 env 查看所有环境变量 set 查看所有环境变量和自定变量 export varNa...

2016-12-17 22:06:03

阅读数 424

评论数 0

java Lock(显示锁)

1.显示锁与内置锁对比 内置锁在代码块调用结束后会自动释放锁,但是显示锁必须自己控制加锁和释放锁,因此使用显示锁更加危险(忘记释放锁)。 内置锁不支持中断,阻塞的线程会一直等待直到拥有锁。而显示锁支持中断并且在处理锁的不可用问题上更加灵活(例如调用tryLock不会阻塞并且可以定时和轮询)。 显示...

2016-04-26 23:33:13

阅读数 1237

评论数 0

java Executor框架

1.为什么要使用线程池 单线程执行任务必须串行的执行,那么如果某个任务需要很长的计算时间或者发生IO等阻塞,那么后面的任务必须长时间的等待。并且在多处理器环境中,单线程只占用一个处理器,其他处理器得不到利用。 假设为每一个任务创建一个线程(即无限制的创建线程),任务执行完之后销毁线程。那么频繁的创...

2016-04-17 12:51:52

阅读数 250

评论数 0

java CyclicBarrier

Barrier和CountDownLatch有些类似,它能阻塞一组线程直到某个事件发生,但是Barrier阻塞的这组线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件,而栅栏用于等待同组的其他线程。对应构造方法:CyclicBarrier(int parties)。parties对应阻塞的线...

2016-04-13 17:13:55

阅读数 229

评论数 0

java Semaphore(信号量)

1.信号量用来累计唤醒的次数,从而不会产生notify信号丢失的问题。信号量也要指定初始信号的大小,acquire()方法将信号量的值减一,如果信号量的值小于等于零,那么调用线程会阻塞。而release()方法将信号量加一,并且不会产生阻塞。关键:信号量的取值,判断,修改以及可能发生的阻塞这一系列...

2016-04-13 15:05:20

阅读数 361

评论数 0

java CountDownLatch(闭锁)

CountDownLatch的和join有类似之处,但是比join强大并且灵活许多。 在实例化一个CountDownLatch时,需要设置一个初始计数,所有调用await()方法的线程都会阻塞直到计数减为零,countDown()方法每调用一次 ,计数减一直到减为零从而唤醒其他所有调用await(...

2016-04-12 20:35:07

阅读数 176

评论数 0

线程间协作:wait,notify,notifyAll,join,yield

wait1.wait,notify,notifyAll是Object类的方法。在使用时必须包含在synchronized方法中或者同步块中。即必须先获得正确的对象锁,调用wait后,会释放自己占有的锁并且加入到等待池中等待。直到有其他线程调用同一个对象的notify/notifyAll方法才会唤醒...

2016-04-12 18:01:30

阅读数 319

评论数 0

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