如何销毁对象

在任何一个面向对象的语言中,这个对象销毁机制都是很重要的。因为如果对象不能够被及时的回收,那么很多没用的对象就仍然会占用内存地址。久而久之,就会导致内存耗竭,从而导致服务器当机。

在这个对象的销毁上,Java语言比其他面向对象的语言更胜一筹。因为其他面向对象的语言,需要在程序代码中手工回收废弃的对象。不过Java语言则不同。在Java语言中拥有一套完整的对象垃圾回收机制。即程序开发人员不需要手工的回收废弃的对象。垃圾回收器将回收无用对象所占用的内存资源。不过这个垃圾回收器并不是万能的,需要结合其他的对象回收方式,才能够最终解决这个对象回收的问题。在Java中,总共有三种方式可以用来解决对象回收的问题,笔者将他们称为三把利剑。

第一把剑:垃圾回收器

垃圾回收器是Java平台中用的最频繁的一种对象销毁方法。垃圾回收器会全程侦测Java应用程序的运行情况。当反先有些对象成为垃圾时,垃圾回收器就会销毁这些对象,并释放这些对象所占用的内存空间。在这里,程序开发人员需要知道,在哪些情况下垃圾回收器会认为这些对象是垃圾对象。通常情况下,如果发生以下两种情况时,系统会认为这些对象是垃圾对象,需要销毁。

如何比较对象

一、跟对象比较的几个相关的概念

为了更加审核的理解对象比较的含义以及多个比较方法之间的差异,笔者认为读者首先需要了解几个相关的概念,或者说几对关系。

一是类与对象的关系。类是具体的抽象,而对象是类的具体实现。这可能听起来还是有点模糊。做一个形象的比喻,类就好像是用来制作塑料盒子的模具,只要将PVC料注入到这个模具中就可以生产对应形状的盒子。而对象就好像是生产出来的盒子。虽然模具同一个,但是生产出来的盒子彼此之间仍然是不同的。一方面先天性就是不同的。因为根据相对论可以说明世界上没有两个相同的东西。其次后天性的影响,也会导致其不同。如生产出来后,在两个盒子上分别贴上不同的条码,他们两个就代表不同的盒子了。了解这个类与对象之间的关系,对于了解对象之间进行比较,会有很大的帮助。

二是需要知道类与对象在内存中的实际存储情况。当程序员定义一个类时(不含有静态成员或者变量),一般不会在内存中给其分配一个存储结构。而只有定义对象时,才会在内存中分配存储结构。当利用同一个类定义不同的对象时,系统会在内存中为不同的对象创建不同的存储结构。也就是说,会对应不同的内存地址。虽然同一个类中定义出来的对象,其内容可能相同(成员变量、成员方法等等都相同),但是其内存中的地址仍然是不同的。

浅析MyEclipse使用中的几个常见问题

MyEclipse使用1、插件安装有三种方法:

  ◆是将文件靠到的根目录,如文件夹取名为chajian,下层文件夹为Eclipse,下层文件夹为 features和plugins,再在Eclipse的根目录建links文件夹,内部建chajian.link,编辑为eclipsepath= chajian (或者c:/eclipse/chajian,即绝对和相对路径皆可),就ok了(多个插件可以定义一个 pluge.link,一个path=***一行;或者定义多个.link文件,每个包含一个path)。

  ◆是把插件包内的plugins和features内的文件拷贝到本目录下plugins和 features中。

  ◆通过Help-﹥Software Update-﹥Find and Instal直接安装

  MyEclipse使用2、打包成jar文件

  需要根据自定义的文件生成MANIFEST.MF,其中每行的冒号后面都有一个空格,否则出错。例:Manifest-Version: 1.0(1.0前有空格,其他行也是如此)

  MyEclipse使用3、由数据库中的表自动建立.java和.hbm.xml文件

循规蹈矩-Java开发编程规范

命名规范

定义这个规范的目的是让项目中所有的文档都看起来像一个人写的,增加可读性,减少项目组中因为换人而带来的损失。(这些规范并不是一定要绝对遵守,但是一定要让程序有良好的可读性)

Package 的命名

Package 的名字应该都是由一个小写单词组成。

Class 的命名

Class 的名字必须由大写字母开头而其他字母都小写的单词组成

Class 变量的命名

变量的名字必须用一个小写字母开头。后面的单词用大写字母开头。

Static Final 变量的命名

Static Final 变量的名字应该都大写,并且指出完整含义。

参数的命名

参数的名字必须和变量的命名规范一致。

数组的命名

数组应该总是用下面的方式来命名:

byte[] buffer;

而不是:

byte buffer[];

方法的参数

使用有意义的参数命名,如果可能的话,使用和要赋值的字段一样的名字:

SetCounter(int size){ 
this.size = size; 
} 

Java 文件样式

Java入门

学JAVA时间短了,可总没有一点自己原创的东西,今天就以写IDE开发工具的使用技巧作为我原创的开始吧,希望大家能喜欢这篇文章,也希望鄙文能对广大初学JAVA的朋友有一点帮助!在使用JCRETOR过程中,自己摸索出了一点点使用技巧,在这里供广大和我一样的初学者参考!

技巧1: 建立空项目进行JAVA编程;

在进行编程的时候最好首先建立一个空项目,然后在这个空项目里,编辑自己的JAVA程序;其实这是一个很好的习惯,你可以在这个项目里建立你自己的包,把你所编辑的源程序程序,按功能的不同分别放进不同的包里;这样在你学习JAVA一定长的时间后,你就拥有了一个属于你自己的包,这对你以后学习或查相关代码就很方便。

建立空项目的方法,或许大家都知道,不过在这里我还是罗嗦一下:):

按JCRETOR的菜单顺序,创建方法如下:

File??>New??>Project??>EmptyProject;

哈,其实很简单!祝你也早日拥有自己的类库!

技巧2: Jcretor对JDK的帮助文档提供了很好的支持;

汉字到拼音的转换

GUI代码部分:
/**
* @(#)CnToSpellGUI.java
* kindani
* 2004-10-25??
* */

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;

/**
*

*

JDK版本

1.4

* @author KIN
* @version 1.0
* @see
* @since 1.0
*/
public class CnToSpell2GUI extends JFrame {

private CnToSpell2GUI c = null;

public CnToSpell2GUI () {
super("Cn to Spell");
setSize(800,100);
getContentPane().setLayout(new FlowLayout());
// component layout
JTextArea from = new JTextArea(5,20);
JTextArea to = new JTextArea(5,20);

Java软件架构师所要需的东西

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。

一、Java编程入门类

对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。

1、《Java编程思想》

在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。

2、《Agile Java》中文版

如何对Java Web三层架构进行配置

一、软件下载:

1、java

这里使用的是jdk1.4.2。

下载地址:http://dlc.sun.com/jdk/j2sdk-1_4_2_07-windows-i586-p.exe;

2、tomcat

这里的tomcat的版本是5.0的,安装版或是解压版都是可以的。

下载地址:http://apache.linuxforum.net/dis ... a-tomcat-5.0.28.exe

3、数据库

推荐使用mysql,but暂时找不到下载地址,由于此次偶们班有课程设计要用sqlserver的,所以下面实践会使用sqlserver(找张安装盘安装)

注:连接sqlserver需要三个jar文件(文件名ms开头),可从这里下载:

http://www.softhouse.com.cn/html ... 11250300001646.html

上面包括完整的配置方法

二、软件安装 :

1.双击安装jdk。装完后在我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量:

(假设你的JDK安装在c:/jdk)

JDK_HOME=C:jdk

转载:Java软件架构师所要需的东西

作为Java程序员来说,最痛苦的事情莫过于可以选择的范围太广,可以读的书太多,往往容易无所适从。我想就我自己读过的技术书籍中挑选出来一些,按照学习的先后顺序,推荐给大家,特别是那些想不断提高自己技术水平的Java程序员们。

一、Java编程入门类

对于没有Java编程经验的程序员要入门,随便读什么入门书籍都一样,这个阶段需要你快速的掌握Java基础语法和基本用法,宗旨就是“囫囵吞枣不求甚解”,先对Java熟悉起来再说。用很短的时间快速过一遍Java语法,连懵带猜多写写代码,要“知其然”。

1、《Java编程思想》

在有了一定的Java编程经验之后,你需要“知其所以然”了。这个时候《Java编程思想》是一本让你知其所以然的好书,它对于基本的面向对象知识有比较清楚的交待,对Java基本语法,基本类库有比较清楚的讲解,可以帮你打一个良好的Java编程基础。这本书的缺点是实在太厚,也比较罗嗦,不适合现代人快节奏学习,因此看这本书要懂得取舍,不是每章每节都值得一看的,挑重点的深入看就可以了。

2、《Agile Java》中文版

几行代码轻松实现urlrewrite

实现urlrewrite不用自己HttpHandle,也不用自己实现HttpModule,用几行代码就可以轻松实现。

具体做法如下:打开global.asax.cs,定位到protected void Application_BeginRequest(Object sender, EventArgs e)。从方法名我想也能猜到它是做什么的。输入如下代码:

protected void Application_BeginRequest(Object sender, EventArgs e)
{
   string oldUrl = HttpContext.Current.Request.RawUrl ;

   string pattern = @"^(.+)default/(\d+)\.aspx(\?.*)*$";
   string replace = "$1default.aspx?id=$2";

   if(Regex.IsMatch(oldUrl, pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled))
   {
        string newUrl = Regex.Replace(oldUrl, pattern, replace, RegexOptions.Compiled | 
RegexOptions.IgnoreCase);
        this.Context.RewritePath(newUrl);
   }
}

有了上边这段代码,我访问一个类似:

同步内容