自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

原创 JAVA 线程池

一、ThreadPoolExecutor的使用 1.ThreadPoolExecutor的完整构造方法是: ThreadPoolExecutor ( int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue  workQueue, RejectedExecutionHand

2013-06-28 14:28:48 969 1

转载 JAVA I/O与设计模式

一、简单介绍JAVA I/O JAVA采用流的机制来实现输入/输出,流就是数据的有序排列,而流可以是从某个源(称为流源或Source of Stream)出来,到某个目的地(称为流汇或Sink of Stream)去的。由流的方向,可以分成输入流和输出流,一个程序从输入流读取数据向输出流写数据。 如,一个程序可以用FileInputStream类从一个磁盘文件读取数据,如下图所示:

2013-06-26 21:13:51 1079

原创 编程之美学习笔记——数字相关(一)

1.二进制数中1的个数 ①有一个字节(8bit)变量,求其二进制表示中"1"的个数。 思路一:二进制数的最低位如果为1,那么它不可以被2整除,反之可以。我们可以先判断最后一位是否为1,然后右移一位,重复判断最后一位是否为1,直至该数为0;这个算法时间复杂度为O(N),其中N是这个二进制数的位数; 思路二:对于一个二进制数X,运算X&(X-1)可以将最后二进制表示中的最后一位1置为0,重复该操

2013-06-19 15:28:33 865

原创 策略模式

1.什么是策略模式 策略模式属于对象行为模式,其用意是针对一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使它们可以相互替换。 2.策略模式的结构 策略模式是对算法的包装,把使用算法的责任和算法本身分开,委派给不同的对象管理。 环境(Context)角色:持有一个Strategy引用; 抽象角色(Strategy)对象:抽象角色,由一个抽象类或借口实现,它指出所有的具体

2013-06-19 11:38:13 864

原创 观察者模式

1.什么是观察者模式 观察者模式定义了一个一对多的依赖关系,让一个或多个观察者对象监察一个主题对象,这样一个主题对象在状态上的变化就能够通知所有的依赖于此对象的那些观察者对象,使这些对象能够自动更新。 2.观察者模式中的角色 ①抽象主题(Subject)角色:维护了一个由观察者对象组成的聚集(如一个ArrayList),每个主题角色可以有任意个观察者,同时,主题角色提供增加和删除观察者对象的

2013-06-14 10:05:27 748

原创 装饰模式

1.什么是装饰模式 装饰模式又称为包装(Wrapper)模式,装饰模式以客户端透明的方式扩展对象的功能,是继承关系的一个替代方案。 特点:扩展特定对象的功能,不是扩展某个类的功能;不需要子类,防止由于子类带来的复杂和混乱;对于一个给定对象,同时可能有不同的装饰对象,客户端可以通过它的需要选择合适的装饰对象。 2.装饰模式的结构 装饰模式以对客户端透明的方式为某个对象动态的附加更多功能,换言

2013-06-13 07:52:43 1218

原创 适配器模式

1.什么是适配器模式 适配器模式把一个类的接口转换成客户端所期待的另一种接口,从而使得原来因接口不匹配而无法在一起工作的两个类能够在一起工作。 或者说适配器模式主要用于希望复用一些现存的类,但是接口又与复用环境要求不一致。 用电器做例子,笔记本电脑的插头一般都是三相的,即除了阳极、阴极外,还有一个地极。而有些地方的电源插座却只有两极,没有地极。电源插座与笔记本电脑的电源插头不匹配使得笔记本电

2013-06-12 16:24:32 984

原创 数据库主键生成策略

1.increment 可以生成long、int、short类型的主键,由hibernate在内存中生成主键,每次增量为1,不依赖于底层数据库,但是因为是由hibernate生成的,所以只能有一个hibernate进程访问数据库,否则就会产生主键冲突,所以不能在集群的情况下使用; 2.identity 可以生成long、int、short类型的主键,是由数据库自己生成的,这个主键必须设置为自

2013-06-11 21:17:31 3129

原创 代理模式

1.什么是代理模式 代理模式(Proxy)为另一个对象提供一个替身或占位符以控制该对象的访问(Provide asurrogate or placeholder for another object to control access to it),简而言之就是用一 个对象来代表另一个对象。 2.代理模式的作用 为其它对象提供一种代理来控制该对象的访问,在某些情况下,一个客户不想或不可以直

2013-06-11 17:40:31 608

原创 约瑟夫环

题目:有0,1,...,n-1这n个数字排成一个圈,从数字0开始每次从这个圈中删除第m个数字,求出这个圆圈里剩下的最后一个数字。 方法一:用环形链表模拟圆圈 int lastRemaining(unsigned int n,unsigned int m){ if(n < 1 || m < 1) return -1; unsigned int i = 0;

2013-06-11 11:24:16 569

原创 视图

一、什么是视图 视图是从一个或几个基本表中根据用户的需要而做成的虚表。同真实的表一样,视图包含一系列带有名称的列和行数据。 视图只存储定义,而不存储实际的数据,视图在打开的瞬间通过定义从基表中搜集数据,并展现给用户。 视图与查询都是由sql语句组成,但是它们也有明显的区别: 1.存储上的区别,视图存储为数据库设计的一部分,而查询不是; 2.更新的限制不同; 3.通过sql语句可以对一个

2013-06-10 21:55:37 718

原创 索引

一、为什么要使用索引 无索引的表就是一个无序的行集,如果我们要查询属性为特定值的某些记录,那么必须扫描所有的行,这是一个全表扫描,如果表中只有少数几条记录与搜索条件匹配,那么其效率是非常低的;如我们从一张学生表中查找数学不及格的同学名字及其分数,那么当同学的数量非常大时,全表扫描就不是一个好的做法。如果我们在分数这个字段上建立一个索引,此索引包括表中每行的一项,并且是排序的,那么我们就可以快速定

2013-06-09 21:39:15 643

转载 B树、B-树、B+树、B*树

B树: 即二叉搜索树:所有非叶子结点之多拥有两个儿子;所有结点只存储一个关键字;非叶子结点的左指针指向小于其关键字的子树,右指针指向大于其关键字的子树。 B树的搜索:从根结点开始,如果查询的关键字与结点的关键字相等,那么就命中;否则,如果查询关键字比结点关键字小,就进入左儿子;如果比结点关键字大,就进入右儿 子;如果左儿子或右儿子的指针为空,则报告找不到相应的关键字; 如果B树所有非叶

2013-06-07 13:44:48 643

转载 水平分割、垂直分割和库表散列概念说明

一、水平分割 根据一列或多列数据的值把数据行放到多个独立的表中,即按记录进行分割,不同的记录可以分开保存,每个子表的列数相同; 水平分区将表分为多个表,每个表包含的列数相同,但是行数更少。例如,可以将一个包含十亿行的表水平分区成12个表,没个小表表示特定年份内一个月的数据。任何需要特定 月份数据的查询只需要引用相应月份的表。 使用场景:表很大,分割后可以降低查询时需要读的数据和索引的页数,

2013-06-06 22:51:13 1349

原创 工厂模式

程序的几个重要特性:可维护性、可复用性、灵活性、可扩展性、 1.简单工厂模式 以一个计算器程序为例,我们来分析,代码如下: Operation类: class Operation{ public double numberOne; public double numberTwo; private String oper; public double getResult(){

2013-06-05 16:40:44 600

原创 单例模式

什么是单例模式? 单例模式(Singleton),保证一个类仅有一个实例,并提供一个访问它的全局访问点。通常我们可以让一个全局变量使得一个对象被访问,但它不能防止你实例化多个对象,一个 最好的办法是,让类自身负责保存它的唯一实例。这个类可以保证没有其它实例可以被创建,并且它可以提供一个访问该实例的方法。 单例模式解决了什么问题? 1.全局访问:外界不能通过new来实例化该变量,但是我们又要

2013-06-04 10:27:06 511

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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