Java入门
每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;
}
/**
PING和TELNET用法介绍
由 maggie 于 星期三, 2010-01-20 14:00 发表JAVA里的PING是在JDK 1.5后用了新的函数isreachable去实现,具体介绍如下:
InetAddress对象的常用方法
InetAddress类有很多get方法,用来获取主机名,主机地址等信息。主要有:
byte[] getAddress() 返回次InetAddress对象的原始IP地址,保存为一个byte数组
String getCanonicalHostName() 获取此IP地址的完全限定域名
String getHostAddress() 获取IP地址的字符串,返回为一个String
String getHostName() 获取此IP地址的主机名
下面一个简单的例子展示这些方法的使用:
[code]
package org.dakiler.javanet.chapter1;
import java.net.InetAddress;
public class Example3
{
public static void main(String args[])throws Exception
{
InetAddress address=InetAddress.getByName("www.microsoft.com");
Java异常类总结
由 maggie 于 星期三, 2010-01-20 13:57 发表算术异常类:ArithmeticExecption
空指针异常类:NullPointerException
类型强制转换异常:ClassCastException
数组负下标异常:NegativeArrayException
数组下标越界异常:ArrayIndexOutOfBoundsException
违背安全原则异常:SecturityException
文件已结束异常:EOFException
文件未找到异常:FileNotFoundException
字符串转换为数字异常:NumberFormatException
操作数据库异常:SQLException
输入输出异常:IOException
方法未找到异常:NoSuchMethodException
java.lang.AbstractMethodError
抽象方法错误。当应用试图调用抽象方法时抛出。
java.lang.AssertionError
断言错。用来指示一个断言失败的情况。
java.lang.ClassCircularityError
引用类型和原始类型
由 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
如何应用Clone
由 maggie 于 星期一, 2010-01-18 17:02 发表对于克隆(Clone),Java有一些限制:
1、被克隆的类必须自己实现Cloneable 接口,以指示 Object.clone() 方法可以合法地对该类实例进行按字段复制。Cloneable 接口实际上是个标识接口,没有任何接口方法。
2、实现Cloneable接口的类应该使用公共方法重写 Object.clone(它是受保护的)。某个对象实现了此接口就克隆它是不可能的。即使 clone 方法是反射性调用的,也无法保证它将获得成功。
3、在Java.lang.Object类中克隆方法是这么定义的:
protected Object clone() throws CloneNotSupportedException
创建并返回此对象的一个副本。表明是一个受保护的方法,同一个包中可见。
按照惯例,返回的对象应该通过调用 super.clone 获得。
引题:
举个例子说吧,现在有一个对象比如叫foo,你需要在创建当前对象的一个副本作为存根你能怎么做?
假如你不用Clone,那么你可以先new一个对象foo1:Foo foo1=new Foo(),然后用foo给foo1对象set值,这样就得到foo的副本foo1;除此之外,别无选择。
解决Java内存泄露问题方案
由 maggie 于 星期三, 2010-01-06 11:30 发表内存泄漏的慨念
1.c/c++是程序员自己治理内存,Java内存是由GC自动回收的。
我虽然不是很熟悉C++,不过这个应该没有犯常识性错误吧。
2.什么是内存泄露?
内存泄露是指系统中存在无法回收的内存,有时候会造成内存不足或系统崩溃。
在C/C++中分配了内存不释放的情况就是内存泄露。
3.Java存在内存泄露
我们必须先承认这个,才可以接着讨论。虽然Java存在内存泄露,但是基本上不用很关心它,非凡是那些对代码本身就不讲究的就更不要去关心这个了。
Java中的内存泄露当然是指:存在无用但是垃圾回收器无法回收的对象。而且即使有内存泄露问题存在,也不一定会表现出来。
4.Java中参数都是传值的。
对于基本类型,大家基本上没有异议,但是对于引用类型我们也不能有异议。
Java是如何管理内存
对Java进行初始化应避免的问题
由 maggie 于 星期二, 2010-01-05 09:36 发表为了说明这个问题先给大家出个问题吧:
请看代码:
[code]
view plaincopy to clipboardprint?
public abstract class A {
public A() {
initMethod();
}
public abstract void initMethod();
}
public abstract class A {
public A() {
initMethod();
}
public abstract void initMethod();
}
view plaincopy to clipboardprint?
public class B extends A {
static String staticStr = "static1";
private String testStr = "Test1";
/*
* (non-Javadoc)
*
* @see A#initMethod()
*/
public void initMethod() {
如何改善系统对JVM的使用方式
由 maggie 于 星期二, 2010-01-05 09:30 发表应用程序服务器是一个 Java 进程,它需要 Java 虚拟机(JVM)才能运行以及支持它所运行的 Java 应用程序。在配置应用程序服务器的过程中,可以对设置进行微调以改善系统对 JVM 的使用方式。
关于本任务
JVM 为基于 Java 的应用程序提供了运行时执行环境。WebSphere Application Server 是 JVM 运行时环境与基于 Java 的服务器运行时的组合。它可以在不同 JVM 提供程序提供的 JVM 上运行。要确定正在运行 Application Server 的 JVM 的提供程序,请从 WebSphere Application Server 的app_server_root/java/bin 目录中发出 java -fullversion 命令。您也可以检查其中一个服务器的 SystemOut.log。当应用程序服务器启动时,Websphere Application Server 会将关于 JVM 的信息(包括 JVM 提供程序信息)写入此日志文件。
从调整 JVM 的观点看,有两种主要的 JVM 类型:
IBM JVM
基于 Sun HotSpot 的 JVM,其中包括 Solaris 上的 Sun HotSpot JVM 以及 HP 的 JVM for HP-UX





最新评论
1 天 12 小时之前
1 天 12 小时之前
2 天 7 小时之前
2 天 8 小时之前
2 天 14 小时之前
2 天 14 小时之前
2 天 14 小时之前
2 天 16 小时之前
2 天 16 小时之前
2 天 17 小时之前