每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;

  }

  /**

PING和TELNET用法介绍

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异常类总结

算术异常类:ArithmeticExecption

  空指针异常类:NullPointerException

  类型强制转换异常:ClassCastException

  数组负下标异常:NegativeArrayException

  数组下标越界异常:ArrayIndexOutOfBoundsException

  违背安全原则异常:SecturityException

  文件已结束异常:EOFException

  文件未找到异常:FileNotFoundException

  字符串转换为数字异常:NumberFormatException

  操作数据库异常:SQLException

  输入输出异常:IOException

  方法未找到异常:NoSuchMethodException

  java.lang.AbstractMethodError

  抽象方法错误。当应用试图调用抽象方法时抛出。

  java.lang.AssertionError

  断言错。用来指示一个断言失败的情况。

  java.lang.ClassCircularityError

引用类型和原始类型

 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

如何应用Clone

对于克隆(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

Java

Java线程同步的使用

Synchronized,顾名思义,代表线程同步。那么,在java编程中如何使用它呢?

  我们首先来看这样一个情况:对于同一个变量synDemo,我们分别在2个不同的线程中调用synDemo.synMethord1()与synDemo.synMethord2()。
[code]
  package com.cnblogs.gpcuster;/** * * @author Aaron.Guo * */

  public class Tester {public static void main(String[] args) {final SynDemo synDemo = new SynDemo();Thread thread1 = new Thread() {@Overridepublic void run() {// TODO Auto-generated method stub

  super.run();synDemo.synMethord1();}};Thread thread2 = new Thread() {@Overridepublic void run() {// TODO Auto-generated method stub

同步内容