`
lianxiangbus
  • 浏览: 528610 次
文章分类
社区版块
存档分类
最新评论
文章列表
基础篇(一)[写在前面]随着计算机技术的发展,编程模型也越来越复杂多样化.但多线程编程模型是目前计算机系统架构的最终模型.随着CPU主频的不断攀升,X86架构的硬件已经成为瓶,在这种架构的CPU主频最高为4G.事实上目前3.6G主频的CPU已经接近了顶峰.如果不能从根本上更新当前CPU的架构(在很长一段时间内还不太可能),那么继续提高CPU性能的方法就是超线程CPU模式.那么,作业系统,应用程序要发挥CPU的最大性能,就是要改变到以多线程编程模型为主的并行处理系统和并发式应用程序.所以,掌握多线程编程模型,不仅是目前提高应用性能的手段,更是下一代编程模型的核心思想.多线程编程的目的,就是&quo ...
在UOP之数据缓存一文中我介绍了对象缓存的一般原则,对其中的大对象缓存只是简单介绍了基本原理.本文详细地说明如何进行大对象缓存.基于本栏目的类型,在本栏目中讨论的内容是如何恰当地应用某种技术来进行系统设计.而不会介绍某种基本技术.如本文涉及的对象的次(软)/弱/虚引用的概念,这是你要自己参看相关资料而掌握的.大对象(FatObject)是指在创建时要耗费一定时间,或创建完成后要占用一定的空间的对象,简单说,就是"来之不易"啊.比如图形对象,Socket连结等.所以这类对象不宜频繁地创建.应该尽量使用它的缓冲.对象的缓冲不仅仅指缓存对象本身,而且包括多次复用.但因为这样的对象占 ...
在WEB/WAP这种以http协议为主的大用户应用中,即时性是非常重要的一个指标.客户端对一个请求的响应时间的感受,可以说是衡量大规模用户的WEB应用的第一指标.适时地采用异步处理,不仅可以提高对客户端的响应速度,而且使交互过 ...
数据缓存是提高性能的有效手段,但缓存什么内容,如何缓存,这是重要的设计理念.也就是如何提高你的缓存命中率.1.小批量数据完全缓存.象字典数据,如省份,地区等,还有一个公司的部门,员工(如果一个公司员工超地一万人一般不会 ...
javadefunct产生的原因和解决办法:在很多时候,我们启动JAVA进程后,如果退出这个JAVA进程,在系统进程中仍然可以看到这个进程.这种情况一般出现在UNIX/LINUX系统,对于WIN平台出现情况较少.这个进程在UNIX平台上,你即使kill进程号也不能杀掉它,但它仍然占用系统资源,成了真正的"僵尸"。产生的原因:以前我们下载JDK时,可以下载到JDK的SRC然后自己编译,现在的官方网站上已经找不到可以自己编译的JDK包,下载回来的JDK都是释放包,我们可以想象,无论SUN在发布JDK时考虑得如何完美,本地库都不可能完全和当前系统的版本号完全一致。举个例子,假如Sy ...
自动归还的对象池--一个并不美丽的传说 有一个美丽的传说,精美的石头它会唱歌........多么令人神往的事啊(不用买MP3了),既然连石头都会唱歌,于是太多的传说诞生了. 程序员杂志第十一期上,发表了一篇题为<<自动归还的对象池>>,作者为我们描述了一个美妙的可以自动归还的对象池,让每一个痛苦于垃圾回收的程序员带来了心动的向往. 但传说真的会成为现实吗? 通读全篇,没有发现一行示意性的实现代码,所有代码片断只是示意了获取可回收对象的原理性机制,比如我要向大家介绍一种高性能的httpserver,然后我告诉你: ServerSocket sc = new ServerSo ...
Go deep into HashCode 为什么HashCode对于对象是如此的重要?一个对象的HashCode就是一个简单的Hash算法的实现,虽然它和那些真正的复杂的Hash算法相比还不能叫真正的算法,它如何实现它,不仅仅是程序员的编程水平问题,而是关系到你的对 ...
深入equals方法 equals方法的重要性毋须多言,只要你想比较的两个对象不愿是同一对象,你就应该实现equals方法,让对象用你认为相等的条件来进行比较. 下面的内容只是API的规范,没有什么太高深的意义,但我之所以最先把它列在这儿, ...
关于Java 初始化,有多文章都用了很大篇幅的介绍。经典的<<Thinking in java>>更是用了专门的一章来介绍Java初始化。但在大量有代码实例后面,感觉上仍然没有真正深入到初始化的本质。 本文以作者对JVM的理解和自己的经 ...
我们知道,在很多脚本语言中都有eval涵数,它可以把字符串转换为表态式并执行.如在javaScript中var str = aid.value + ".style.top = 10;"把一个id为"aid"的控制的值取出来加合并成一个字符串,如果aid的值是"axman",则str = "axman.style.top = 10"现在我们要让控制axman移动到顶部为10的位置:eval(str);这样这个字符串就变成了表达式或语句开始执行.这样的功能对于动态构造变量是有非常重要的意义.那么在java中,如果实现这个 ...
Global site tag (gtag.js) - Google Analytics