全部博文(695)
发布时间:2017-03-13 13:04:17
1、stackoverflow:每当java程序启动一个新的线程时,java虚拟机会为他分配一个栈,java栈以帧为单位保持线程运行状态;当线程调用一个方法是,jvm压入一个新的栈帧到这个线程的栈中,只要这个方法还没返回,这个栈帧就存在。 如果方法的嵌套调用层次太多(如递归调用),随着java栈中的帧的增多,最终导致这个线程的.........【阅读全文】
发布时间:2017-03-10 14:15:03
装饰模式与适配器模式的的区别 做java也两年多的时间了,java入门不久就买了一本阎宏的《java与模式》研究,那时看模式简直就像看天书一样,特别是装饰模式和适配器模式,于是就束之高阁了。工作之后,在项目中也经常用到模式,体会到模式的好处,也渐渐理解了一些常用的模式。现在有时间也把《java.........【阅读全文】
发布时间:2017-03-10 11:28:30
1. 概述 动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比生成子类更灵活。 原理:增加一个修饰类包裹原来的类,包裹的方式一般是通过在将原来的对象作为修饰类的构造函数的参数。装饰类实现新的功能,但是,在不需要用到新功能的地方,它可以直接调用原来的类中的方法。修饰类必须和原来.........【阅读全文】
发布时间:2017-03-10 10:38:00
1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。3. 模式中的角色 3.1 目标接口(Target):客户所期待的接口。.........【阅读全文】
发布时间:2017-03-09 16:01:50
不用算术运算符实现两个数的加法(按位异或) 对于二进制的加法运算,若不考虑进位,则1+1=0,1+0=1,0+1=1,0+0=0,通过对比异或,不难发现,此方法与异或运算类似。因而排出进位,加法可用异或来实现。然后考虑进位,0+0进位为0,1+0进位为0,0+1进位为0,1+1进位为1,该操作与位运算的&操作相似。 那么加法运算.........【阅读全文】