对象及其引用和销毁

对象

使用static注意

  1. 在静态方法中不可以使用this关键词
  2. 在静态方法中不可以直接调用非静态方法
  3. 局部变量不可以使用static关键词声明
  4. 主方法必须用static声明
  5. 只有内部类可以使用static声明

对象的创建及访问对象

public class Person {
    String name;
    int age;             //定义属性
    String gender;

    public Person() {    //无参构造
    }

    public Person(String name, int age, String gender) {    //有参构造
        this.name = name;
        this.age = age;
        this.gender = gender;
    }
      //访问对象   输出
    public static void main(String[] args) {
        Person person1 = new Person("tom",23,"男");
        System.out.println(person1.name+person1.age+person1.gender);
        Person person2 = new Person("lily",19,"女");
        System.out.println(person2.name+person2.age+person2.gender);
    }
}

对象的引用

Person person1 = new Person("tom",23,"男");
//类名   引用        对象实体
//‘new People()’对象能做的事,person1也能做   可以说new People()=person1
//例如
new People().getClass();
//等价于
Person person1 = new Person();
person1.getClass;

对象的销毁

java中有较为完整的垃圾回收机制,但只能回收有new操作符创建的对象

被视为垃圾有两种情况

  1. 对象引用超过其作用范围,这个对象被视为垃圾
  2. 当对象被赋值为null,被视为垃圾,将消亡
finalize()方法

是Object类方法,被声明为protected,可以在自己的类中定义这个方法。若定义此方法,在垃圾回收中会首先调用该方法,在下一次垃圾回收动作发生时,才真正回收被对象占用的内存。

注意:垃圾回收或finalize()方法并不保证一定会发生,若Java虚拟机内存损耗殆尽,将不会执行垃圾回收处理

java提供了System.gc()方法来强制启动垃圾回收器

posted @ 2021-07-13 16:28  valder-  阅读(110)  评论(0)    收藏  举报