Java

JAVA内存泄漏——内存泄漏原因和内存泄漏检测工

摘要虽然Java虚拟机(JVM)及其垃圾收集器(garbagecollector,GC)负责管理大多数的内存任务,Java软件程序中还是有可能出现内存泄漏。实际上,这在大型项目中是一个常见的问题。避免内存泄漏的第一步是要弄清楚它是如何发生的。本文介绍了编写Java代码的一些常见的内存泄漏陷阱,以及编写不泄漏代码的一些最佳实践。一旦发生了内存泄漏,要指出造成泄漏的代码是非常困难的。因此本文还介绍了一种新工具,用来诊断泄漏并指出根本原因。该工具的开销非常小,因

系统 2019-08-29 23:05:05 2512

Java

java工厂模式

一、引子话说十年前,有一个爆发户,他家有三辆汽车(Benz(奔驰)、Bmw(宝马)、Audi(奥迪)看来这人比较爱国,没有日本车),还雇了司机为他开车。不过,爆发户坐车时总是这样:上Benz车后跟司机说"开奔驰车!",坐上Bmw后他说"开宝马车!",坐上Audi后他说"开奥迪车!"。你一定说:这人有病!直接说开车不就行了?!而当把这个爆发户的行为放到我们程序语言中来,我们发现C语言一直是通过这种方式来坐车的!幸运的是,这种有病的现象在OO语言中可以避免了。

系统 2019-08-29 23:01:33 2512

编程技术

华润重组三九大局敲定

WWW.CNLIST.COM时间:2007/09/3007:28:30中国上市公司资讯网今天你“论股”了么?掌握持仓个股全方位资讯--就用"搜股易"查看S三九(000999)的基本资料查看S三九(000999)的新股发行资料三九医药为三九药业和三九生化担保责任解除华润重组三九大局敲定本报记者张旭北京报道受困于三九集团重组局势的华润集团终于可以长舒一口气。9月26日,三九医药(000999)发布公告称,近日,三九债委会再次召开债权人大会,华润集团与三九债委会

系统 2019-08-29 22:54:34 2512

编程技术

[全程建模]几个常见的UML设计错误

这里是几个常见的uml设计错误,文中也是实例,因此隐去了相关信息,图中遮挡的部分是完全一样的两个字,你可以把它考虑成任何东西。一个朋友17:29:39青润兄,周末的时候让你指教的地方有没有看青润17:30:21还没有看,这几天比较累,等下应该会有时间了。一个朋友17:32:06好的,拜托了。青润17:32:29过会儿给你消息。一个朋友17:33:16thanks青润17:56:44这个拆分,貌似有点过度细化了,如果业务不是很复杂没有必要,有发布必然有人看,

系统 2019-08-29 22:48:45 2512

编程技术

chr码的资料

Replace(字符串表达式,findnreplacewith[,start[,count[,compare]]])将一个字符串取代部份字。寻找待取代的原字符串(find),若找到则被取代为新字符串(replacewith)。find:待寻找取代的原字符串。replacewith:取代后的字。start:从第几个字开始寻找取代,若未设定则由第一个字开始寻找。count:取代的次数。若未设定则所有寻找到的字符串取代字符串全部被取代。compare:寻找比较的

系统 2019-08-29 22:44:48 2512

编程技术

关于displaytag external paging 第二种分页方

首先要感谢zuiyanwangyue提供给我的解决方法!!!我是采用了displaytag提供的第二种分页方法//页数的参数名StringpageIndexName=newParamEncoder(Constants.ABSENCE_LIST).encodeParameterName(TableTagParameters.PARAMETER_PAGE);//每页显示的条数intpageSize=15;//当前页intpageIndex=GenericVal

系统 2019-08-29 22:31:12 2512

编程技术

全新的Struts2框架

1.为什么要使用框架?(1)框架自动完成了很多琐屑的任务对于Struts2来说,它帮助我们方便地完成了数据类型转换、数据验证、国际化等等Web开发中常见的任务。还有Spring中大量使用的Template模式,都是在让我们的开发过程更加自动化、智能化。使用框架就是避免重新发明轮子,重新复制这些模板代码。框架让我们将精力更多地放在更高级别的问题上,而不是常见工作流和基础任务上。(2)使用框架就是优雅地继承了框架背后的架构框架背后的架构通常定义了一系列的工作流

系统 2019-08-29 22:14:42 2512

Java

Java多线程-volatile的原理与技巧

volatile,用更低的代价替代同步为什么使用volatile比同步代价更低?同步的代价,主要由其覆盖范围决定,如果可以降低同步的覆盖范围,则可以大幅提升程序性能.而volatile的覆盖范围仅仅变量级别的.因此它的同步代价很低.volatile原理是什么?volatile的语义,其实是告诉处理器,不要将我放入工作内存,请直接在主存操作我.(工作内存详见java内存模型)因此,当多核或多线程在访问该变量时,都将直接操作主存,这从本质上,做到了变量共享.v

系统 2019-08-29 22:02:41 2512

Java

敏捷开发中编写高质量Java代码

敏捷开发的理念已经流行了很长的时间,在敏捷开发中的开发迭代阶段中,我们可以通过五个步骤,来有效的提高整个项目的代码质量。Java项目开发过程中,由于开发人员的经验、Java代码编写习惯,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入和周期等问题。这些问题在一个项目组初建、需求和设计均具有不完全可预期性和完备性的全新项目中将尤为突出。如图1所示,敏捷开发过程经历需求调研,用例分析和用例分解,进入开发迭代阶段。在每个

系统 2019-08-29 21:58:48 2512

编程技术

分享3个超棒的免费wordpress主题: Splus, EMaga

wordpress绝对是强大的一款内容管理系统,最重要的是很多设计师和开发人员都免费开发大家可以随意使用的wordpress主题,社区的力量是强大的,这也是wordpress如此流行的一个原因,今天我们这里分享3款非常不错的wordpress主题,希望大家有机会应用到自己的网站和应用中。谢谢!SPLUS:免费的摄影类wordpress网站主题splus是一个具有创新元素的摄影类网站主题,拥有全屏的背景图片展示。非常适合个人类型网站和摄影图片类型网站使用。只

系统 2019-08-12 09:30:16 2512

编程技术

Flash Socket底层接受数据的初级处理

用flash去开发应用,,免不了网络通讯,特别是网络游戏,需要用到即使通讯。as3提供了两个支持即时通讯的类:XMLSocket和Socket,前者其实是只支持发送字符串,而后者就强大多了,支持发送字节,相对来说比较底层,而这也给我们更多的发挥空间。其实,flashsocket的网络底层接受数据,就以与C++服务器通讯为例子,C++服务器一般会发一段一段数据过来,每段数据都是由一定结构组成的,一般是消息头和消息头,然后再逐步分层解析。在这里,我只说接受网络

系统 2019-08-12 09:30:04 2512

Java

带线程池的小服务器-Java实现

前两天,利用线程池技术(ThreadPool)写了个web服务器,其性能当然无法和apacheiis等相比,但基本的功能都有了,唯一欠缺的是无法解析动态页面,采用解释执行(asp模式的)效率太低,如果采用编译执行,要么自己编写一个编译器来编译整个动态页面,要么采用预编译,很复杂。。。。现在把代码拿出来晒一晒!由于只是初步的设计所以没有考虑到很多设计模式,代码在优化上很不到位,请各位高手不吝赐教。MainServer.java这是主服务文件,也是提供主线程的

系统 2019-08-12 09:29:48 2512

Java

Java基于Socket文件传输示例

最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解。在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加快传输的速度。废话少说,先来看服务器端的程序。1.服务器端packagesterning;importjava.io.BufferedInputStream;importjava.io.DataInputStream;importjava.io.DataOut

系统 2019-08-12 09:29:40 2512

编程技术

利用webBrowser获取框架内Html页面内容

[转自]http://hi.baidu.com/zonesky/blog/item/d8b89e1b66329ed3ac6e7517.html利用webBrowser获取页面比较简单,MSDN下有示例,在这里不必多说。可是一些HTML文档由“框架”构成,或可以存放它们自己独特HTML文档的窗口。使用框架可以轻松地创建HTML页面,其中一页或多页在其他框架持续更改它们内容的同时保持静态,例如导航栏。HTML作者可以采用以下两种方法之一创建框架:使用FRAME

系统 2019-08-12 01:33:28 2512

编程技术

Cocoa的MVC架构分析 -delegate

Cocoa的MVC架构分析博客分类:Objective-CCocoaMVCObjective-CMacRubyOSCocoa是MacOS和iPhoneOS上的开发框架,使用Objective-C做为开发语言。当然,在代码中也可以嵌入C和C++的语句。初识Objective-C时会觉得它的语法很奇怪,但本质上和其他面向对象语言都差不多。具体语法大家可以参考相关文档。在Cocoa框架中:所有的控件、窗口等都继承自UIView,对应MVC中的V。UIView及其

系统 2019-08-12 01:32:34 2512