milk 的blog

每5秒生成一个随机数代码

   import java.util.Random;

  import java.util.Timer;

  import java.util.TimerTask;

  /**

  * Java如何每5秒生成一个随机数

  *

  * @author Java人(java2000.net)

  */

  public class Test {

  public static void main(String[] args) {

  final Random random = new Random();

  Timer executeSchedule = new Timer();

  executeSchedule.schedule(new TimerTask() {

  @Override

  public void run() {

  System.out.println(random.nextInt());

  }

  }, 0, 5000);

  }

  }

举例说明什么是JAVA序列化

 首先来看看要序列化的对象
[code]
  Person.java

  package com.zjut.yunfeiyang;

  import java.io.Serializable;

  public class Person implements Serializable{

  private static final long serialVersionUID = -5434734211562785652L;

  public Person() {

  }

  private String name;

  private String password;

  private String id;

  private String address;

  /**

  * @return the name

  */

  public String getName() {

  return name;

  }

  /**

  * @param name the name to set

  */

  public void setName(String name) {

  this.name = name;

  }

  /**

引用类型和原始类型

 Java 提供两种不同的类型:引用类型和原始类型(或内置类型)。另外,Java 还为每个原始类型提供了封装类(Wrapper)。如果需要一个整型变量,是使用基本的 int 型呢,还是使用 Integer 类的一个对象呢?如果需要声明一个布尔类型,是使用基本的 boolean,还是使用 Boolean 类的一个对象呢?本文可帮助您作出决定。

  下表列出了原始类型以及它们的对象封装类。

  原始类型 封装类

  =================

  boolean Boolean

  char Character

  byte Byte

  short Short

  int Integer

  long Long

  float Float

  double Double

  引用类型和原始类型的行为完全不同,并且它们具有不同的语义。例如,假定一个方法中有两个局部变量,一个变量为 int 原始类型,另一个变量是对一个 Integer 对象的对象引用:

  int i = 5;                       // 原始类型

  Integer j = new Integer(10);     // 对象引用

值传递和引用传递

在java中实质只存在一种传递方式:即值传递。 而引用传递是对C/C++而言的。结论:

  对于基本类型,在方法体内对方法参数进行重新赋值,并不会改变原有变量的值。

  对于引用类型,在方法体内对方法参数进行重新赋予引用,并不会改变原有变量所持有的引用。

  方法体内对参数进行运算,不影响原有变量的值。

  方法体内对参数所指向对象的属性进行运算,将改变原有变量所指向对象的属性值。

  在JAVA中变量有以下两种:

  基本类型变量,包括char、byte、short、int、long、float、double、boolean。

  引用类型变量,包括类、接口、数组(基本类型数组和对象数组)。

  最后我们得出如下的结论:

  基本类型和基本类型变量被当作参数传递给方法时,是值传递。在方法实体中,无法给原变量重新赋值,也无法改变它的值。

  对象和引用型变量被当作参数传递给方法时,在方法实体中,无法给原变量重新赋值,但是可以改变它所指向对象的属性。
[code]
  2 public class Person

  3 {

  4 private String name = null;

  5 private int age = 0;

  6

处理鼠标和键盘事件的方法

 Java中的鼠标和键盘事件

  1、使用MouseListener借口处理鼠标事件

  鼠标事件有5种:按下鼠标键,释放鼠标键,点击鼠标键,鼠标进入和鼠标退出

  鼠标事件类型是MouseEvent,主要方法有:

  getX(),getY() 获取鼠标位置

  getModifiers() 获取鼠标左键或者右键

  getClickCount() 获取鼠标被点击的次数

  getSource() 获取鼠标发生的事件源

  事件源获得监视器的方法是addMouseListener(),移去监视器的方法是removeMouseListener()

  处理事件源发生的时间的事件的接口是MouseListener 接口中有如下的方法

  mousePressed(MouseEvent) 负责处理鼠标按下事件

  mouseReleased(MouseEvent) 负责处理鼠标释放事件

  mouseEntered(MouseEvent) 负责处理鼠标进入容器事件

  mouseExited(MouseEvent) 负责处理鼠标离开事件

  mouseClicked(MouseEvent) 负责处理点击事件

SAF将消失于Java 7

Sun已经决定在Java 7中放弃JSR 296:Swing Application Framework(SAF)。规范的领导者Alexander Potochkin在其博客中写到: 在多次讨论后,大家并没有就Swing Application Framework API达成共识,我们觉得还需要进一步设计才行。 我们已经将SAF API提交至JDK 7 M5了,进度就在那摆着呢,时间太紧了,所以我们得把SAF从JDK 7的里程碑版中移除。

Jave入门必读:表单数据存储处理方法

摘 要

本文以Oracle数据库为例,介绍了在采用JSP技术开发WEB应用时一种简便通用的表单数据存储处理方法,以减轻开发工作量,同时提供了主要的程序代码。

引言

J2EE(Java 2 Enterprise Edition)技术已广泛应用在Web应用开发中,其中的JavaBean、Servlet技术为开发者提供了更为清晰的开发环境,使用JSP技术表现页面,使用Servlet技术完成大量的业务处理,使用Bean来存储数据及一些业务处理。在WEB应用中,业务数据存储到数据库中的处理工作经常很繁重,其中一种主要的形式就是表单数据存储到数据库,整个应用处理过程牵涉到大量的这种数据存储操作,对每个表单都要单独编写相应的数据存储程序,花费了开发人员大量的时间和精力。采用什么方法来减轻表单数据存储的开发工作量是值得研究的问题。

两种常见的表单数据存储处理方法

1、对每一表单都编写相应的程序代码

在JSP页面或JavaBean或Servlet中,使用request. getparameter()函数逐一提取表单提交的数据,或编写相应的JavaBean,使用setProperty方法将数据自动取到JavaBean中,然后生成SQL语句(insert,update,delete),最后执行executeupdate()函数完成数据表存储。

公告栏文字滚动效果代码

首先要掌握一个概念:一个字符串在计算机屏幕中所占的像素,比方说取一个JLabel里面的Text所占的宽和高,方法如下: (主要用到FontMetrics类)

  import java.awt.FontMetrics;

  import javax.swing.JLabel;

  JLabel label = new JLabel("test Label ");

  FontMetrics metrics = label.getFontMetrics(label.getFont());

  int textH = metrics.getHeight();   //字符串的高,只和字体有关

  int textW = metrics.stringWidth(label.getText());   //字符串的宽

  通常情况下,一个空格占3个像素。

  具体代码如下:
[code]
  Test.java

  import java.awt.BorderLayout;

  import java.awt.Color;

  import java.awt.Dimension;

  import java.awt.FontMetrics;

浅析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文件

几行代码轻松实现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);
   }
}

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

同步内容