JavaSE 高级 第02节 Object类

2016-07-24

1,Object类的常用方法介绍

finalize() gc() 这两个方法我们不要试图去控制,他们是由Java虚拟机

控制的,我们只能建议gc()去执行finalize(),但具体是否执行,只有

Java虚拟机才知道,因为这是有Java虚拟机的算法决定的。

package com.java1995;

public class TestClone {

    public static void main(String[] args) {
        Student s1 = new Student();
        s1.setName("老王");
        s1.setAge(29);
        s1.setSex("男");

        System.out.println(s1);

        try {
            Student s2 = s1.clone();
            System.out.println(s2);
            System.out.println(s1 == s2);
        } catch (CloneNotSupportedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

class Student implements Cloneable {

    private String name;
    private String sex;
    private int age;

    public Student clone() throws CloneNotSupportedException {
        return (Student) super.clone();
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student [name=" + name + ", sex=" + sex + ", age=" + age + "]";
    }

}

package com.java1995;

public class TestEquals_HashCode {

    public static void main(String[] args) {
        Object o1 = new Object();
        Object o2 = new Object();
        System.out.println(o1.equals(o2));
        System.out.println(o1.hashCode() + "," + o2.hashCode());

    }
}

package com.java1995;

public class TestFinalize {

    private int id;

    public TestFinalize(int id) {
        this.id = id;
    }

    public static void main(String[] args) {
        for (int i = 0; i < 10000; i++) {
            new TestFinalize(i);
            /**
             * 建议虚拟机执行垃圾回收,但是不保证执行, 也不保证回收所有垃圾。
             */
            System.gc();
        }
    }

    @Override
    public void finalize() {
        System.out.println(id + "正在被执行finalize方法");
    }
}

【参考资料】

[1] Java轻松入门经典教程【完整版】

时间: 2024-10-12 20:48:14

JavaSE 高级 第02节 Object类的相关文章

JavaSE 高级 第03节 Math类与猜数字游戏

2016-07-24 1,Math类介绍 Math.Random()  [0,1) 2,猜数字游戏 课下作业:猜数字小程序优化,增加次数限制的功能. package com.java1995; public class TestMath { public static void main(String[] args) { double d = Math.ceil(2.98); System.out.println(d); d = Math.floor(2.98); System.out.prin

JavaSE 高级 第04节 StringBuffer类

2016-07-24 1,StringBuffer简介 StringBuffer sb=new StringBuffer(); System.out.println(sb.capacity()); StringBuffer sb2=new StringBuffer("abc"); System.out.println(sb2.capacity()); StringBuffer sb3=new StringBuffer(100); System.out.println(sb3.capac

JavaSE 高级 第05节 日期类与格式化

2016-07-24 1,Date类 package com.java1995; import java.util.Date; public class TestDate { public static void main(String[] args) { Date d1 = new Date(); System.out.println(d1); Date d2 = new Date(System.currentTimeMillis() - 20000000); System.out.print

JavaSE 高级 第15节 写文件类FileWriter

2016-07-24 FileReader 1,FileWriter 课下作业: c:\ 定义两个文件 in.txt,out.txt 然后,in.txt里面写入部分中文以及英文. 然后写程序读取in.txt的内容,写到out.txt里面. 规定:读文件的类必须是FileReader 写文件的类必须是FileWriter. package com.java1995; import java.io.FileWriter; import java.io.IOException; public clas

JavaSE 高级 第16节 读取缓冲类BufferedReader

2016-07-24 字符流相关类:读取缓冲类 1,BufferedReader package com.java1995; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader; public class TestBuffere

JavaSE 高级 第14节 读文件类FileReader

2016-07-24 InputStreamReader  : FileInputStream fis=new FileInputStream(file); InputStreamReader isr=new InputStreamReader(fis); FileReader: FileReader fr=new FileReader("C:\\Users\\admin\\Desktop\\in.txt"); 1,FileReader package com.java1995; im

JavaSE 高级 第17节 写入缓冲类BufferedWriter

2016-07-24 1,BufferedWriter debug: F5 进入方法 F6 执行下一行代码 F7 退出方法 F8 跳到下一个断点 package com.java1995; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; i

JavaSE 高级 第06节 初识I、O流

2016-07-24 input  output 1,流的概念 输入流是读数据. 输出流是写数据. 输入输出的概念针对程序来说. 2,字节流 用于以字节为单位的输入输出,主要是处理字节或者二进制数据的各种输入输出. 一般用于处理图像.声音文件. InputStream 是所有字节输入流的祖先类. OutputStream 是所有字节输出流的祖先类. 3,字符流 以字符为基本处理的单位,主要用于处理字符或者是文本类型.一般用作处理文本 读取存储以及与网络的文本信息的交互. Reader 是所有字符

JavaSE 高级 第13节 字符输出流OutputStreamWriter

2016-07-24 Reader InputStreamReader Writer OutputStreamWriter package com.java1995; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStreamWriter; public class TestOutputStreamWri