milk 的blog
每5秒生成一个随机数代码
由 milk 于 星期四, 2010-01-21 10:05 发表
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序列化
由 milk 于 星期四, 2010-01-21 10:03 发表 首先来看看要序列化的对象
[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;
}
/**
引用类型和原始类型
由 milk 于 星期二, 2010-01-19 18:00 发表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); // 对象引用
值传递和引用传递
由 milk 于 星期二, 2010-01-19 17:56 发表在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
处理鼠标和键盘事件的方法
由 milk 于 星期四, 2010-01-07 13:56 发表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
由 milk 于 星期二, 2009-10-13 16:44 发表Sun已经决定在Java 7中放弃JSR 296:Swing Application Framework(SAF)。规范的领导者Alexander Potochkin在其博客中写到: 在多次讨论后,大家并没有就Swing Application Framework API达成共识,我们觉得还需要进一步设计才行。 我们已经将SAF API提交至JDK 7 M5了,进度就在那摆着呢,时间太紧了,所以我们得把SAF从JDK 7的里程碑版中移除。
Jave入门必读:表单数据存储处理方法
由 milk 于 星期四, 2009-09-10 14:14 发表摘 要
本文以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()函数完成数据表存储。
公告栏文字滚动效果代码
由 milk 于 星期四, 2009-09-10 14:04 发表首先要掌握一个概念:一个字符串在计算机屏幕中所占的像素,比方说取一个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使用中的几个常见问题
由 milk 于 星期二, 2009-09-01 09:19 发表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
由 milk 于 星期三, 2009-07-01 16:30 发表实现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);
}
}
有了上边这段代码,我访问一个类似:





最新评论
4 天 20 小时之前
4 天 20 小时之前
5 天 16 小时之前
5 天 16 小时之前
5 天 22 小时之前
5 天 22 小时之前
5 天 23 小时之前
6 天 21 分钟之前
6 天 58 分钟之前
6 天 1 小时之前