摘要虽然Java虚拟机(JVM)及其垃圾收集器(garbagecollector,GC)负责管理大多数的内存任务,Java软件程序中还是有可能出现内存泄漏。实际上,这在大型项目中是一个常见的问题。避免内存泄漏的第一步是要弄清楚它是如何发生的。本文介绍了编写Java代码的一些常见的内存泄漏陷阱,以及编写不泄漏代码的一些最佳实践。一旦发生了内存泄漏,要指出造成泄漏的代码是非常困难的。因此本文还介绍了一种新工具,用来诊断泄漏并指出根本原因。该工具的开销非常小,因
系统 2019-08-29 23:05:05 2355
存在不如意的地方就意味着存在bug。当我们像摆弄机器一般去利用这个那个框架的时候,很快,就陷入无休止的试验,试验这个那个的功能。创新简直和我们绝缘。随便抱怨一句。最近,公司同事利用spring+struts2做个工具,涉及到隐私,故我把代码简单化(普世的原则啊)。publicclassLoginActionextendsActionSupport{/****/privatestaticfinallongserialVersionUID=1L;private
系统 2019-08-29 23:04:28 2355
一、引子其实没有什么好的例子引入解释器模式,因为它描述了如何构成一个简单的语言解释器,主要应用在使用面向对象语言开发编译器中;在实际应用中,我们可能很少碰到去构造一个语言的文法的情况。虽然你几乎用不到这个模式,但是看一看还是能受到一定的启发的。二、定义与结构解释器模式的定义如下:定义语言的文法,并且建立一个解释器来解释该语言中的句子。它属于类的行为模式。这里的语言意思是使用规定格式和语法的代码。在GOF的书中指出:如果一种特定类型的问题发生的频率足够高,那
系统 2019-08-29 22:23:20 2355
以下是设置按钮的右边框和底边框颜色为红色,边框大小为3dp,如下图:在drawable新建一个buttonstyle.xml的文件,内容如下:-
系统 2019-08-29 22:17:59 2355
最近的机器内存又爆满了,出了新增机器内存外,还应该好好review一下我们的代码,有很多代码编写过于随意化,这些不好的习惯或对程序语言的不了解是应该好好打压打压了。下面是参考网络资源和总结一些在java编程中尽可能做到的一些地方1.尽量在合适的场合使用单例使用单例可以减轻加载的负担,缩短加载的时间,提高加载的效率,但并不是所有地方都适用于单例,简单来说,单例主要适用于以下三个方面第一,控制资源的使用,通过线程同步来控制资源的并发访问第二,控制实例的产生,以
系统 2019-08-29 22:01:06 2355
由于上一篇关于管道表函数写的有些粗糙,追加一篇,方便大家理解。两个函数完成管道表函数数据的初始化,所以设计到一个函数中调用另一个函数获取含数据部分。一下是完整代码:1:创建row类型createorreplacetypesubwhiteblack_row_typeasobject(spidnumber,spnamevarchar(200),whitegroupcountnumber,whitelistcountnumber,whiteaddedcountn
系统 2019-08-12 09:30:25 2355
1、java中用两种线程:1)守护线程守护线程(Daemon)是比较特殊的一种低级别线程,一般被用于在后台为其它线程提供服务。比如当用户编写Word文档时,不断进行拼写检查的线程就是个守护线程,它不会影响用户编辑文件。典型的守护线程例子是JVM中的系统资源自动回收线程,它始终在低级别的状态中运行,不需要占用大量的系统资源,多用于实时监控和管理系统中的可回收资源。可以通过调用方法isDaemon()来判断一个线程是否是守护线程,而将一个用户线程设置为守护线程
系统 2019-08-12 09:29:59 2355
Java线程:并发协作-死锁线程发生死锁可能性很小,即使看似可能发生死锁的代码,在运行时发生死锁的可能性也是小之又小。发生死锁的原因一般是两个对象的锁相互等待造成的。在《Java线程:线程的同步与锁》一文中,简述死锁的概念与简单例子,但是所给的例子是不完整的,这里给出一个完整的例子。/***Java线程:并发协作-死锁**@authorAdministrator2009-11-422:06:13*/publicclassTest{publicstaticv
系统 2019-08-12 09:29:31 2355
项目中有时会需要启动另外的程序来协助实现一些功能,如系统打电话会调用电话程序,打开图片会打开图片程序等。让我们来看看用代码是如何实现这个功能的。/***启动应用*@paramcontext*@parampackageName包名*@return*/publicstaticbooleanstartPackage(Contextcontext,StringpackageName){finalIntentmainIntent=newIntent(Intent.A
系统 2019-08-12 09:26:43 2355
functionAddProcessFwauthor()STRINGszCServer,szFServer,szTmp;OBJECTobjFirewall,objProfile,objCS,objFS;beginSdShowMsg("将服务器添加到Windows防火墙例外程序中,请稍后...",TRUE);//要添加到防火墙程序的应用程序的完整路径:安装目录\WinClient.exeszCServer=TARGETDIR^("WinClient"+".e
系统 2019-08-12 09:26:43 2355