05 2007 档案
摘要:平时数据库处理时,总要接触关于数据同步修改的问题,有时候我们需要在业务处理时保证业务数据同步(一般这种情况都包含统计字段,也就是说需要根据前面的值算出后面的值的字段),例如,两个人同时查询出1条记录后,先后对其加1,保存入数据库中,这样就可能造成保存问题,因此,需要对该数据进行同步。这里有3种方法可以采用:1.增加一个版本字段,查询时得到该字段,修改后增加1,以后其他的修改需要进行比较,如果不同,则保存失败 (需要额外比较)2.依赖数据库本身的机制,对将要修改的数据进行锁定(该方法会造成数据库访问瓶颈)3.在保存时使用复合sql语句进行修改,例如 updata a tem1set tem1.f
阅读全文
摘要:做了几个项目,有一个深深的体会,靠看书学习得来的很多设计经验到真正要用在实际项目中的时候就会觉得困难重重,看别人的东西热血沸腾,跃跃欲试,总是以为自己理解了别人的精髓,以后可以写出同样优秀的代码来,结果却令人沮丧,很多时候是拿到具体项目模块或升级单的时候,总觉得以前学的设计的东西好像不能使用,写的代码依旧那么凌乱,想想方法应该按照单独的功能划分,结果实现出来了就是一个大方法,什么鸟功能都在里面,学习了重构,在实际中运用却不那么简单,因为有的时候你不知道应该怎么划分才好,结果划分出来的东东晦涩难懂,结果发现稍微一点变动,又得改方法签名,所以不要看不起编码,一个真正的成熟编码人员应该能够对上面的.
阅读全文
摘要:public class Inbox {private static Integer tt=1;private static StringBuffer t(){ StringBuffer i=new StringBuffer("123");try{if(true)throw new IOException("");}catch(IOException e){return i;}finally{System.out.println("111");i.append("test");i=new StringBuffer(
阅读全文
摘要:移位运算一般用来取某几个指定位上的值,或快速实现乘以或除以2^n的运算。 比如2<<1,就是把00000010变成了00000100,2变成了4,相当于乘了2; 60>>2,就是把00111100变成了00001111,60变成了15,相当于除以4。 8>>>1,8的二进制是00001000,符号位即最高位是0,所以用0填充,00001000变成00000001,得到1,相当于除以8。 1.负数的位运算是对负数补码进行操作。2.如果位移位数超过32,那么将会对位移位数取32的模来进行运算,例如:32>>34 和32>>2相同;3
阅读全文
摘要:1 Java起源2 Java语言概述1.面向对象编程的3个原则:封装(encapsulation)、继承(inheritance)、多态性(polymorephism)封装:将代码及其处理的数据捆绑在一起的一种机制;继承:一个对象获得另一个对象的属性的过程;多态性:一个接口,多种方法。2.System.out.println(“dfjdfjdf”);System.out.print(“dfdfdfdf”);这两种写法输出基本一样,只是print不换行3.基本词汇:空白分隔符(whitespace)标识符(identifiers)常量(literal)注释(comments)分隔符(separa
阅读全文
摘要:最近一段时间一直在学习设计模式,我有一个感受就是:接触头几个设计模式时感觉似乎就那么一回事,好像没有什么可学习的,因为理解起来很简单,也很容易记忆,在例子的带动下似乎也有那么一点意思了,好像自己懂了。慢慢地,随着学习的深入,接触到了各种各样的设计模式,前面那种轻松的劲儿就没了,越学越迷糊,感觉很多模式好像都是类似的,自己也分不清和前面学的模式的区别是什么了。再后来,经过对这23种基本的设计模式仔细研究,对比其实现类图以及模式使用的目的,基本上清楚明白了各个设计模式之间的区别以及他们各自的使用范围,为了使和我一样在学习设计模式的朋友少一些迷惑,我将我认为的一些类似的、容易混淆的设计模式之间的区别
阅读全文