`
文章列表
多核心和64位CPU是在企业服务器市场上这几天最热门的商品。近年来,由于增加的成本和更快的CPU时钟速度的功率要求,在单CPU的原始时钟速度增长(通常是衡量兆赫)放缓。硬件制造商继续提高基于X86的服务器的性能,提高多任务处理能力和内部数据带宽。英特尔和超微出货内部有两个CPU内核的64位处理器,四核心处理器是很快跟进。从戴尔第九代服务器利用这种新一代芯片。例如,PowerEdge 1955刀片服务器,最多支持两个64位双核心处理器在刀片配置,7机架单元(12.25“)机箱等十刀片。 然而,这些新世代的服务器软件也构成新的挑战。比如,采取多核心CPU的优势,软件应用程序必须能够并行地执行任务, ...
关于集合类,我觉得用图来描述是再好不好了,又能标明层次,又能标明用途 这些图都是网上收集来的,可以很好的说明问题,够用了 Collection和Map是Java集合类的根接口,Collection 主要是元素集合,就像C#里面List一样,而Map就像C#里面的HashTable,Dictionary一样,属于键值对集合,上面的图是这两个类的体系结构. 下面这么多类,它们的用处和区别也用图来表示
前面两篇文章介绍了怎样建立Java Socket通信,这一篇说一下怎样使用Java Socket来传输对象。 首先需要一个普通的对象类,由于需要序列化这个对象以便在网络上传输,所以实现java.io.Serializable接口就是必不可少的了,入下: package com.googlecode.garbagecan.test.socket.sample3; public class User implements java.io.Serializable { private static final long serialVersionUID = 1L; private ...
 等于还是不等于?   看来看下面的一段代码:   代码片段1 public static void main(final String[] args) { Integer a = new Integer(100); Integer b = 100; System.out.println(a == b); }   这段代码的输出是什么?相信很多 ...

JAVA内存管理

 
Java内存主要分为stack, heap, data segment, and code segment. stack(栈):存放非静态基本数据类型变量的名称和值,以及非静态对象的引用 若是非静态基本数据类型变量,则变量的名称和值一起被存入stack(栈)中,变量的名称指向变 ...

大型重构

一、梳理并分解继承体系 例:某个继承体系同时承担两项责任 解:建立两个继承体系,并通过委托关系让其中一个可以调用另一个 二、将过程化设计转化为对象设计 如:你手上有一些传统过程佛冈可选择代码 解:将数据记录变成对象,将大块的行为分成小块,并将行为移入相关对象之中 三、将领域和表述/显示分离 如:某些GUI类之中饮食了领域逻辑 解:将领域逻辑分离出来,为它们建立独立的领域类 四、提炼继承体系 如:你有某个类做了太多工作,其中一部分工作是以大量条件表达式完成的 解:建立继承体系,以一个子类表示一种特殊情况
一、字段上移 二、函数上移 三、构造函数本体上移 四、函数下移 五、字段下移 六、提炼子类 七、提炼超类 八、提炼接口 九、折叠继承体系 十、塑造模板函数 十一、以委托取代继承 十二、以继承取代委托
在Java程序中使用Runtime.exec("  ")调用外部程序,得到ErrorStream和InputStream进行处理。 在使用一段时间之后,程序会报“打开文件数过多”的问题。 debug过程: linux限制了一个程序打开的最大文件数,明显应该是超过了限制,这时有两种方法: (1)重新设置最大打开文件数(Linux下使用ulimit);   (2)  检查程序本身存在的可能问题。 使用第一种在大多数情况下是治标不治本的,如果程序本身存在问题,比如使用了socket而没有关闭,那么会打开一个socket就占用一个file descriptor,随着时间的增长终会超出 ...

简化函数调用

一、函数改名 二、添加参数 三、移除参数 四、将查询函数和修改函数分离 五、令函数携带参数 六、以明确函数取代参数 七、保持对象完整 八、以函数取代参数 九、引入参数对象 十、移除设值函数 十一、隐藏函数 十二、以工厂函数取代构造函数 十三、封装向下转型 十四、以异常取代错误码 十五、以测试取代异常

简化条件表达式

一、分解表达式 二、合并条件表达式 三、合并重复的条件片段 四、移除控制标记if(boolean) 以break/return取代 五、以卫语句取代嵌套条件表达式 六、以多态取代条件表达式 七、引入Null对象 八、引入断言Assert.isTrue();

重新组织数据

一、自封装字段 二、以对象取代数据值 三、将值对象改为引用对象 四、将引用对象改为值对象 五、以对象取代数组 六、复制“被监视数据” 七、将单向关联改为双向关联 八、将双向关联改为单向关联 九、以字面常量取代魔法数 十、封装字段 十一、封装集合 十二、以数据类取代记录 十三、以类取代类型码 十四、以子类取代类型码 十五、以State/Strategy类型码 十六、以字段取代子类
一、搬移函数 二、搬移字段 三、提炼类 四、将类内联化 五、隐藏“委托关系” 六、移除中间人 七、引入外加函数 八、引入本场扩展

重新组织函数

一、提炼函数 二、内联函数 三、内联临时变量 四、以查询取代临时变量 五、引入解释性变量 六、分解临时变量 七、移除对参数的赋值 八、以函数对象取代函数 九、替换算法

坏味道目录

一、重复代码 二、过长函数 三、过大的类 四、过长的参数列 五、发散式变化 六、霰弹式修改 七、依恋情绪 八、数据泥团 九、基本类型偏执 十、switch慵懒现身 十一、平等继承体系 十二、冗赘类 十三、夸夸其谈未来性 十四、令人迷惑的暂时字段 十五、过度耦合的消息链 十六、中间人 十七、狎昵关系 十八、异曲同工的类 十九、不完美的类库 二十、纯稚的数据类 二十一、被拒绝的遗赠 二十二、多过的注释

优化PHP程序的方法

    博客分类:
  • PHP
1. If a method c++an be static, declare it static. Speed improvement is by a factor of 4. 如果一个方法可静态化,就对它做静态声明。速率可提升至4倍。   2. echo is faster than print. echo 比 print 快。   3. Use echo's multiple parameters instead of string concatenation. 使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接。   4. Set the maxvalue for y ...
Global site tag (gtag.js) - Google Analytics