自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 通过svn钩子进行代码同步

最近在搭开发环境,svn的仓库和nginx在一台服务器上,想自动同步svn上的代码到nginx配置的文件目录去,这里通过钩子可以实现。首先,在nginx配置的目录下checkout代码,例如我的目录是/home/admin/staticsvn co svn地址 /data/admin/static/迁出代码后,就需要建立钩子脚本了,找到版本库放的位置下的hook目录,新建一个pos...

2014-08-18 14:11:34 205

原创 ==和equals(转)

A.==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。 B.对于String a = “a”; Integer b = 1;这种类型的特有对象创建方式,==的时候值是相同的。 C.基本类型没有equals方法,equals只比较值(对象中的内容)是否相同(相同返回true)。 ...

2013-02-28 10:32:42 107

原创 Volatile

Volatile修饰的成员变量在每次被线程访问时,都强迫从共享内存中重读该成员变量的值。而且,当成员变量发生变化时,强迫线程将变化值回写到共享内存。这样在任何时刻,两个不同的线程总是看到某个成员变量的同一个值。Java语言规范中指出:为了获得最佳速度,允许线程保存共享成员变量的私有拷贝,而且只当线程进入或者离开同步代码块时才与共享成员变量的原始值对比。这样当多个线程同时与某个对象交...

2013-01-21 20:54:31 88

原创 模式与原则复习

在继承与组合的选择上,当用继承时,应保证基类或接口尽量的稳定,要不然接口一变化则所有的子类都被迫需要进行一定的改变。而用组合则可以避免这一问题,将变化封装起来变成脱离类继承体系的外部行为,某个子类需要拥有该行为时只要让其拥有该行为的一个实例,而对别的子类没有影响,同时需要面向接口编程,这样当需要的该行为发生变化时,只要变换注入的行为实体类就可以达到目的(策略模式)。(head first 设计模式...

2013-01-21 00:18:16 73

原创 java循环中断

内部循环中断外部循环[code="java"]1.outter: // 外部循环 2.for(int i = 1; i < 10; i ++) { 3. inner: //内部循环 4. for(int j = 1; j < 10; j ++) { 5. if(i == 8) { 6. break outt...

2012-12-29 17:58:49 351

原创 相对路径来获取资源

[code="java"]方法1  URL url = this.getClass().getResource(imageName); 定位类路径下的资源[/code][code="java"]方法2  URLClassLoader loader = (URLClassLoader)this.getClass().getClassLoader();   ...

2012-12-20 16:25:05 141

原创 加载与初始化

类的加载并不导致类的初始化,class.forName(),其实是有参数来设定是否对类进行初始化的,当对应参数设为true时,是对包含加载和初始化两个部分的。 当一个Java类第一次被真正使用到的时候,JVM会进行该类的初始化操作。初始化过程的主要操作是执行静态代码块和初始化静态域。Java类和接口的初始化只有在特定的时机才会发生,这些时机包括: 创建一个Jav...

2012-12-10 00:57:52 137

原创 字符集与编码(转)

需要再一次强调的是,无论历史上的UCS还是现如今的Unicode,两者指的都是编码字符集,而不是字符集编码。花费一点时间来理解好这件事,然后你会发现对所有网页的,系统的,编码标准之间的来回转换等等繁杂事务都会思路清晰,手到擒来。首先说说最一般意义上的字符集。一个抽象字符集其实就是指字符的集合,例如所有的英文字母是一个抽象字符集,所有的汉字是一个抽象字符集,当然,把全世界所有语言的符号都...

2012-11-30 14:26:27 101

原创 数据库范式(转,自己复习用)

[b]当1NF消除了非主属性对码的部分函数依赖,则成为 2NF。当2NF消除了非主属性对码的传递函数依赖,则成为3NF。即当3NF消除了主属性对码的部分和传递函数依赖,则成为 BCNF。[/b]数据库范式1NF 2NF 3NF BCNF(实例) 设计范式(范式,数据库设计范式,数据库的设计范式)是符合某一种级别的关系模式的集合。构造数据库必须遵循一定的规则。在关系数据...

2012-11-26 11:19:35 104

原创 软引用 弱引用 虚引用

1、软引用(SoftReference) 如果一个对象只具有软引用,那就类似于可有可物的生活用品。如果内存空间足够,垃圾回收器就不会回收它,如果内存空间不足了,就会回收这些对象的内存。只 要垃圾回收器没有回收它,该对象就可以被程序使用。软引用可用来实现内存敏感的高速缓存。 软引用可以和一个引用队列(ReferenceQueue)联 合使用,如果软引用所引用的对象被垃圾回收,Java虚拟机就...

2012-09-15 17:39:57 68

原创 Enum 小结

[b]Enum的作用[/b]1.增加程序的可读性和可维护性,比如一些参数只能取那么几个值,而从参数类型上又看不出来有哪些值可以取。2.可以保证单例,且比较时候可以用”==”来替换equals(同时可以利用枚举来实现单例)。3.可以用switch,这个特点是用enum的一大原因4.复杂的应用里,有很多字典表,这些字典表必须体现出其词性才有意义5.类型安全, 不会出现非法参数...

2012-08-06 23:02:46 82

原创 spring和struct整合

在web.xml中完成加载WebApplicationContext之后,接下来就可以做到Spring和Struts2的整合了。整合有两种方法,分别叙述如下: 1. 第一种实现方法:1) 将Struts的业务逻辑控制器类配置在Spring的配置文件中,业务逻辑控制器中引用的业务类一并注入。注意,必须将业务逻辑控制器类配置为scope=”prototype”...

2011-10-13 20:18:31 224

原创 Hibernate面试题

hibernate工作原理及为什么要用? 原理: hibernate,通过对jdbc进行封装,对 java类和 关系数据库进行mapping,实现了对关系数据库的面向对象方式的操作,改变了传统的jdbc + sql操作数据的方式,从而使开发人员可以话更多精力进行对象方面的开发1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3...

2011-10-08 21:39:10 70

原创 观察者模式

观察者模式:定义了对象之间的一对多依赖关系,当一个对象的状态改变时,它的所有依赖者(观察者对象)都会收到通知并自动更新。观察者模式实现了主题对象与观察者对象之间的松耦合,当有新的观察者时,无需修改主题对象的代码,只需要新的观察者对象实现接口,并向主题对象提交注册。在程序运行的过程中,可以随时注册和删除观察者而不影响主题对象。实则上在主题对象状态发生变化时,相当于调用回调方法的形式来调用...

2011-09-13 20:51:11 65

原创 变量覆盖小结

1、由于private变量受访问权限的限制,它不能被覆盖。 2、属性的值取父类还是子类并不取决于我们创建对象的类型,而是取决于我们定义的变量的类型。 3、friendly、protected和public修饰符并不影响属性的覆盖。 4、静态变量和静态常量属于类,不属于对象,因此它们不能被覆盖。 5、常量可以被覆盖。 6、对于基本类型和对象,它们适用同样的覆盖规律。 ...

2011-09-13 20:27:34 124

原创 自定义异常使用目的

1,系统中有些错误符合java语法但却步符合业务逻辑,如果要用异常形式处理这些错误,则需要自定义异常2,在分层的软件结构中,通常在表现层对其它层次的异常进行捕获处理,而往往需要对不同层次的异常进行分类处理,而如果用java自带的则不能够区分。自己的异常定义可以从Exception继承,也可以从Throwable继承  对于异常进行适当分类,方便捕获后的处理如果对于异常不...

2011-09-02 13:16:57 292

原创 装饰模式

装饰模式是在已有的功能上添加新的功能,装饰器和原有的组件调用的都是同一个方法。对于添加的功能可按流程分拆成不同的功能面,用不同的装饰器来实现这些功能面,然后这些装饰器可以按不同的顺序相互组合,也可以只取其中部分装饰器进行组合(java输入输出流)。对于这些装饰器之间其实是一个递归调用的过程。这样的扩展对原有组件是透明的,符合开闭原则。策略模式也可以实现动态的改变对象的功能,但是策略模式只是一层...

2011-08-31 15:31:30 73

原创 堆与栈

堆主要用来存放对象的,栈主要是用来执行程序的 .而这种不同又主要是由于堆和栈的特点决定的。栈的优势是,存取速度比堆要快,仅次于直接位于CPU中的寄存器。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。另外,栈数据可以共享。在编程中,例如C/C++中,所有的方法调用都是通过栈来进行的,所有的局部变量,形式参数都是从栈中分配内存空间的。堆的优势是可以动态地分配内存大小,生存期也不必事先告...

2011-08-30 15:11:40 80

原创 java类加载器

系统提供的类加载器主要有下面三个:引导类加载器(bootstrap class loader):它用来加载 Java 的核心库,是用原生代码来实现的,并不继承自 java.lang.ClassLoader。扩展类加载器(extensions class loader):它用来加载 Java 的扩展库。Java 虚拟机的实现会提供一个扩展库目录。该类加载器在此目录里面查找并加载 Jav...

2011-08-30 14:31:40 109

原创 各种排序

插入排序:从第一个元素开始,该元素可以认为已经被排序取出下一个元素,在已经排序的元素序列中从后向前扫描如果该元素(已排序)大于新元素,将该元素移到下一位置重复步骤3,直到找到已排序的元素小于或者等于新元素的位置将新元素插入到该位置中重复步骤2 void InsertSort(char array[],unsigned int n) { in...

2011-08-28 15:38:02 73

原创 线程同步

synchronized 总是与对象相关的,当对对象的某个方法同步时,并不影响别的线程访问其非同步方法,原因是别的线程根本就不需要去获取该对象的锁,但是当该对象的两个方法methodA和methodB都被加上同步后,当一个线程访问methodA时,别的方法同样不能访问methodB,因为访问methodB时需要获得该对像的锁。对线程调用sleep时不会放弃对象锁。...

2011-08-27 13:33:49 54

原创 hascode()与equals()

这两个方法重写一个时必须重写另一个,否则使用hashmap等集合时可能会发生错误,在java的集合中,判断两个对象是否相等的规则是: 1),判断两个对象的hashCode是否相等如果不相等,认为两个对象也不相等,完毕如果相等,转入2)2),判断两个对象用equals运算是否相等如果不相等,认为两个对象也不相等如果相等,认为两个对象相等(equals()是判断两个对象是否...

2011-08-26 13:25:37 81

原创 java内部类

内部类主要有以下几类:成员内部类、局部内部类、静态内部类、匿名内部类,可用protected和private修饰(而外部类只能使用public和缺省的包访问权限)。 使用目的:java通过内部类加上接口,可以很好的实现多继承的效果。外部类想实现的接口有方法和类中的方法重名,可以把这个接口留给子类实现。 外部类作用范围之外要创建内部类对象必须先创建其外部类对象:一个内部类对象...

2011-08-26 12:16:50 67

原创 java util 集合类小结

 Collection主要有list和set两个子接口:List接口:对Collection进行了简单的扩充,它的具体实现类常用的有ArrayList,Vector和LinkedList。ArrayList从其命名中可以看出它是一种类似数组的形式进行存储,因此它的随机访问速度极快,而LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作。(ArrayList 是...

2011-08-23 19:26:53 90

原创 lucene缓存

lucene的缓存可分为两类:filter cache和field cache。filter cache的实现类为CachingWrapperFilter,用来缓存其他Filter的查询结果。field cache的实现类是FieldCache,缓存用于排序的field的值。简单来说,filter Cache用于查询缓存,field cache用于排序。这两种缓存的生存周期都是在一个Ind...

2011-08-23 09:52:01 249

原创 lucene文件结构

 1.索引块文件这个文件包含了索引中的索引块信息,这个文件包含了每个索引块的名字以及大小等信息。表 2 显示了这个文件的结构信息。表2:索引块文件结构表2:索引块文件结构2.域信息文件我们知道,索引中的文档由一个或者多个域组成,这个文件包含了每个索引块中的域的信息。表 3 显示了这个文件的结构。表3:域信息文件结构表3:域信息文件结构3.索引项信息文件这...

2011-08-22 10:24:51 153

原创 IndexWriter的参数设定

1.合并因子(mergeFactor) 这个参数决定了在 Lucene 的一个索引块中可以存放多少文档以及把磁盘上的索引块合并成一个大的索引块的频率。比如,如果合并因子的值是 10,那么当内存中的文档数达到 10 的时候所有的文档都必须写到磁盘上的一个新的索引块中。并且,如果磁盘上的索引块的隔数达到 10 的话,这 10 个索引块会被合并成一个新的索引块。这个参数的默认值是 10,如果需要索引...

2011-08-22 09:28:47 251

原创 struct2执行流程

(1)客户端提交一个HttpServletRequest请求(.action或JSP页面)(2)请求被提交到一系列Filter过滤器,如ActionCleanUp和FilterDispatcher等(3)FilterDispatcher是Struts2控制器的核心,它通常是过滤器链中的最后一个过滤器(4)请求发到FilterDispatcher后,FilterDispatcher询问A...

2011-08-19 15:34:45 158

原创 策略模式

策略模式,把算法的实现和处理逻辑进行分离,选定特定的算法实现,将其填到context中去,然后由context来调用这个算法进行处理(处理流程对每个算法都是等同的)这样客户端只要持有一个context实例,然后为它设定相应的策略算法就可以了,如此可以方便添加不同的算法实现(典型应用:商城打折)在具体应用中,很可能会出现,不同的策略算法所需要的数据个数及类型不相同,有两种常用的扩展方法,1:...

2011-08-19 13:44:03 64

原创 工厂设计模式

工厂设计模式与普通的继承跟本区别在于工厂设计模式中的功能方法会用到没有实现的抽象方法所返回的结果,在工厂方法模式里面,客户端要么使用Creator对象,要么使用Creator创建的对象,一般客户端不直接使用工厂方法工厂方法模式和IoC/DI的思想是相似的,都是“主动变被动”,进行了“主从换位”,从而获得了更灵活的程序结构。只是在被动获取资源的方式上不同,IoC/DI是通过set的方式注入,而工...

2011-08-18 16:00:47 68

空空如也

空空如也

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

TA关注的人

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