码迷,mamicode.com
首页 > 编程语言 > 详细

java 常用类

时间:2015-02-28 20:04:54      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:

java 常用类库
Object 类:clone(), equals(), toString()
Runtime 类:代表 java 程序的运行环境
定时器: Timer 和 TimerTask 类
System 类:
日期操作类:
Math 类:可以进行一些常用的数学运算
正则式:
Random 类:随机数的获取
常用方法:

//创建并返回与该对象相同的新对象,即克隆该对象
protected native Object clone() throws CloneNotSupportedException

//比较两个对象是否相等
public boolean equals(Object obj)

//当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
protected void finalize() throws Throwable

//返回一个对象的运行时类
public final Class<? extends Object> getClass()

//返回该对象的哈希码值
public int hashCode()

//唤醒等待池中的线程
public final void notify()

//唤醒等待池中的所有线程
public final void notifyAll()

//返回该对象的字符串表示
public String toString()

//使当前的线程等待
public final void wait(long timeout) throws InterruptedException

// 重写 toString() 方法
class Person
{
    private String name;
    private int age;
    public Person(){}
    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
    public String toString()
    {
        return ("姓名:"+this.name+",年龄:"+this.age);
    }
}
public class Hi
{
    public static void main(String[] args)
    {
        Person p = new Person("小二", 27);
        System.out.println(p.toString());
        System.out.println(p);
    }
}
/**
姓名:小二,年龄:27
姓名:小二,年龄:27
*/
看到结果一样,所以都是调用 重写的 toString() 的方法
// ============
//重写 equals() 方法
class Person
{
    private String name;
    private int age;
    public Person(){}
    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
    // 重写equals() 方法
    public boolean equals(Object o)
    {
        // 判断当前对象与指定对象是否相等
        if(o == this)
        {
            return true;
        }
        // 判断指定的对象是否为空
        if(o == null)
        {
            return false;
        }
        // 判断指定对象是否为 Person 的实例
        if(!(o instanceof Person))
        {
            return false;
        }
        // 将指定对象转为 Person 实例
        Person per = (Person)o;
        // 比较对象的属性是否相等
        if(this.name.equals(per.name) && this.age == per.age)
        {
            return true;
        }else
        {
            return false;
        }
    }
}
public class Hi
{
    public static void main(String[] args)
    {
        //创建对象实例
        Person p1 = new Person("小二", 27);
        Person p2 = new Person("小二", 27);
        Person p3 = new Person("小小", 30);
        if(p1.equals(p2))
        {
            System.out.println("p1与p2相等");
        }else
        {
            System.out.println("p1与p2不相等");
        }
        if(p1.equals(p3))
        {
            System.out.println("p1与p3相等");
        }else
        {
            System.out.println("p1与p3不相等");
        }
    }
}
/**
p1与p2相等
p1与p3不相等
*/
// ------------
class Person
{
    private String name;
    private int age;
    public Person(){}
    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
    public boolean equals(Object o)
    {
        if(this == o)
        {
            return true;
        }
        if(o == null)
        {
            return false;
        }
        if(!(o instanceof Person))
        {
            return false;
        }
        Person per = (Person)o;
        if(this.name.equals(per.name) && this.age == per.age)
        {
            return true;
        }else
        {
            return false;
        }
    }
    public int hashCode()
    {
        final int prime = 13;
        int result = 13;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        result = prime * result + age;
        return result;
    }
}
public class Hi
{
    public static void main(String[] args)
    {
        Person p1 = new Person("小二", 27);
        Person p2 = new Person("小二", 27);
        Person p3 = new Person("小小", 30);
        System.out.println("p1的哈希值:"+p1.hashCode());
        System.out.println("p2的哈希值:"+p2.hashCode());
        System.out.println("p3的哈希值:"+p3.hashCode());
        if(p1.equals(p2))
        {
            System.out.println("p1,p2相等");
        }else
        {
            System.out.println("p1,p2不相等");
        }
        if(p1.equals(p3))
        {
            System.out.println("p1,p3相等");
        }else
        {
            System.out.println("p1,p3不相等");
        }
        
    }
}
/*
p1的哈希值:97
p2的哈希值:97
p3的哈希值:980
p1,p2相等
p1,p3不相等
*/
 // =============
// 克隆对象
class Person implements Cloneable
{
    private String name;
    private int age;
    public Person(){}
    public Person(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
    public boolean equals(Object o)
    {
        if(this == o)
        {
            return true;
        }
        if(o == null)
        {
            return false;
        }
        if(!(o instanceof Person))
        {
            return false;
        }
        Person per = (Person)o;
        if(this.name.equals(per.name) && this.age == per.age)
        {
            return true;
        }else
        {
            return false;
        }
    }
    public int hashCode()
    {
        final int prime = 13;
        int result = 13;
        result = prime * result+((name == null) ? 0 : name.hashCode());
        result = prime *result + age;
        return result;
    }
    // 重写 clone() 方法
    public Object clone() throws CloneNotSupportedException
    {
        return super.clone();
    }
    public String toString()
    {
        return ("姓名:"+this.name+",年龄:"+this.age);
    }
}
public class Hi
{
    public static void main(String[] args) throws CloneNotSupportedException
    {
        Person p1 = new Person("小二", 27);
        Person p2 = (Person)p1.clone();
        System.out.println(p1+",p1的哈希码:"+p1.hashCode());
        System.out.println(p2+",p2的哈希值:"+p2.hashCode());
        if(p1.equals(p2))
        {
            System.out.println("p1和p2相等");
        }else
        {
            System.out.println("p1和p2不相等");
        }
    }
}
/*
姓名:小二,年龄:27,p1的哈希码:9761129
姓名:小二,年龄:27,p2的哈希值:9761129
p1和p2相等
*/
// ==========
java.lang.Runtime 类封装了运行时的环境
常用方法:

//向java虚拟机返回可用处理器的数目
public int availableProcessors()

//在单独的进程中执行指定的字符串命令
public Process exec(String command) throws IOException

//
public void exit(int status)

//返回 java 虚拟机中的空闲内存量
public long freeMemory()

//运行垃圾回收
public void gc()

//返回与当前 java 应用程序相关的运行时对象
public static Runtime getRuntime()

//强行终止目前正在运行的 java虚拟机
public void halt(int status)

//加载具有指定库名的动态库
public void load(String libname)

//返回 java虚拟机试图使用的最大内存量
public long maxMemory()

//返回 java虚拟机中的内存总量
public long totalMemory()

// ===========
public class Hi
{
    public static void main(String[] args)
    {
        // 获取当前运行的对象
        Runtime rt = Runtime.getRuntime();
        System.out.println("JVM处理器的数目:"+rt.availableProcessors());
        System.out.println("JVM空闲内存量:"+rt.freeMemory());
        System.out.println("JVM内存总量:"+rt.totalMemory());
        System.out.println("JVM最大内存量:"+rt.maxMemory());
        String str = null;
        for(int i=0; i<10000; i++)
        {
            str =""+i;
        }
        System.out.println("操作 str后,jvm空闲内存量:"+rt.freeMemory());
        // 回收
        rt.gc();
        System.out.println("回收垃圾后,JVM空闲内存量:"+rt.freeMemory());
    }
}
/*
JVM处理器的数目:2
JVM空闲内存量:62455464
JVM内存总量:64487424
JVM最大内存量:947388416
操作 str后,jvm空闲内存量:61448808
回收垃圾后,JVM空闲内存量:63341168
*/
// ==========

Process 类
可用来控制进程并获取相关信息
常用方法:
//关闭子进程
public abstract void destory()

//返回子进程的出口值
public abstract int exitValue()

//获得子进程的错误流
public abstract InputStream getErrorStream()

//获得子进程的输入流
public abstract InputStream getInputStream()

//获得子进程的输出流
public abstract OutputStream getOutputStream()

//导致当前进程等待
public abstract int waitFor() throws InterruptedExeption

 

java 常用类

标签:

原文地址:http://www.cnblogs.com/lin3615/p/4306060.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!