zoukankan      html  css  js  c++  java
  • 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轻松入门经典教程【完整版】

  • 相关阅读:
    JdbcTemplate增删改查案例
    顾问和注解
    使用多种方式实现AOP
    面试题
    Spring Bean的生命周期和作用域
    IOC和AOP交互拓展(二)
    AOP
    错题
    Spring核心概念
    hadoop-MapReduce框架原理之OutputFormat数据输出
  • 原文地址:https://www.cnblogs.com/cenliang/p/5701085.html
Copyright © 2011-2022 走看看