JavaSE-Common Class-Object Class (12)

Um, a introdução da classe Object
  1. Classe de objeto: Localizada no pacote java.lang, é a classe raiz e superclasse do relacionamento de herança, e a classe pai de todas as classes (classe pai direta ou classe pai indireto);

  2. As referências de tipo de objeto podem ser usadas para armazenar qualquer tipo de objeto;

  3. Os métodos são definidos na classe Object e todas as classes podem ser usadas diretamente.

2. Métodos comuns na classe Object:
  1. getClass (): Retorna o tipo de objeto realmente armazenado na referência.

    Desenvolvimento de aplicações práticas: usado para determinar se os tipos de objetos realmente armazenados nas duas referências são iguais,

    Consistente-verdadeiro; inconsistente-falso.

    class Animal{
          
          }
    class Dog extends Animal{
          
          }
    class Cat extends Animal{
          
          }
    public class TestAnimal{
          
          
        public static void main(String[] args){
          
          
            Animal a1 = new Cat();
         	Animal a2 = new Dog();
          	System.out.println(a1.getClass() == a2.getClass());
        }
    }
  2. int hashCode (): Retorna o valor do código hash inteiro do objeto. A fonte do valor do código hash do objeto é

    O endereço em hexadecimal, o resultado da conversão de um inteiro decimal.

    Nota: Uma vez que objetos diferentes têm endereços diferentes no espaço de heap, todos os objetos diferentes

    Tem diferentes valores de código hash.

  3. String toString (): Retorna a forma de realização da string do objeto.

    (1) Função: É conveniente exibir as informações do objeto, e a subclasse geralmente cobre o método toString

    (2) O princípio da cobertura do método toString é: normalmente todos os atributos são unidos em uma string.

    O resultado é retornado.

    public class TestStudent{
          
          
        public static void main(String[] args){
          
          
            Student s = new Student("liucy",18,99.0);
            System.out.println(s);// 默认调用toString方法
        }
    }
    class Student{
          
          
        private String name;
        private int age;
        private double score;
        public Student(){
          
          }
        public Student(String name,int age,double score){
          
          
            this.name=name;
            this.age=age;
            this.score=score;
        }
        // get/set
        public String toString(){
          
          
            return "name:"+name+",age:"+age+",score:"+score;
        }
    }

    Observação: a diferença entre o método get e o método toString:

    a. O método get retorna as informações de um único atributo do objeto e não altera os dados correspondentes do atributo

    Tipo

    b. O método toString obtém as informações de todos os atributos e une todos os atributos em um

    O resultado do tipo String é retornado.

  4. boolean equals (Object o): usado para comparar se o conteúdo do objeto é o mesmo.

    == Aplicação

    (1) Se as duas extremidades de == são variáveis ​​do tipo de dados básicos, então julgue se os valores nas variáveis ​​são os mesmos

    Se ambas as extremidades de == forem referências, será avaliado se os endereços armazenados nas referências são os mesmos.

    (2) Aplicação prática no desenvolvimento: normalmente usado para determinar se duas referências apontam para o mesmo objeto.

    Expressão: nome de referência 1 == nome de referência 2

    A. O resultado é verdadeiro, o que significa que as duas referências apontam para o mesmo objeto;

    B. O resultado é falso, o que significa que as duas referências apontam para objetos diferentes.

    Aplicação do método igual:

    (1) O princípio de implementação do método equals na classe-pai Object class é o seguinte:

    public boolean equals(Object obj) {
          
          
    	return (this == obj);
    }

    Nota: O método equals na classe pai é usado para comparar se duas referências são o mesmo objeto, mas durante o desenvolvimento, o método equals é geralmente usado para comparar o conteúdo do objeto, então o método equals na classe pai não é suficiente para atender às necessidades da subclasse, portanto, você precisa substituir o método equals na classe pai Object.

    (2) O princípio da cobertura do método igual:

    public boolean equals(Object obj){
          
          
    	// 1. 自反性:判断当前对象和要比较的对象是否为同一个对象 :        //this(当前对象) 和  obj(要比较对象) 
    	if(this == obj){
          
          
    		return true;
    	}
    	// 2. 判断 obj是否 空
    	if(obj == null){
          
          
    		return false;
    	}	
    	// 3. 判断 两个引用中实际存储的对象类型是否一致
    	if(this.getClass() != obj.getClass()){
          
          
    		return false;
    	}
        
    	// 4. 强制类型转换: 为一一比较对象属性做准备
    	Student s = (Student)obj;
    		
    	// 5. 将对象中属性一一进行比较:基本数据类型的属性:==  ; 引用类型:equals比较
    	if(this.age == s.age && this.score == s.score && this.name.equals(s.name)){
          
          
    		return true;
    	}else{
          
          
    		return false;
    	}
    }

    Foco da entrevista: A diferença entre == e o método de igual.

    (1) == Ambas as extremidades são tipos de dados básicos, compare se os valores nas variáveis ​​são os mesmos

    == Ambas as extremidades são variáveis ​​de tipo de referência, compare se o endereço de armazenamento de referência é o mesmo

    (2) Método igual: O método na classe Object é usado para implementar (==) implementação, comparar o objeto

    Endereço; mas no desenvolvimento real, o método equals precisa ser substituído para comparar objetos

    Se o conteúdo de é o mesmo.

  5. finalize (): Um método que é chamado automaticamente quando a JVM executa a coleta de lixo.

    (1) Objeto de lixo: um objeto apontado por nenhuma referência.

    Aluno s = novo Aluno ();

    s = null; // Defina o objeto apontado por s como um objeto de lixo

    (2) Coletor de lixo: usado para JVM para coletar objetos de lixo. Referido como gc / GC

    (3) O objetivo da coleta de lixo: remover objetos de lixo, liberar espaço e melhorar a utilização do espaço.

    (4) Quando o coletor de lixo coleta objetos de lixo:

    a. Mecanismo de reciclagem automática: Quando a memória JVM se esgota e o espaço não pode mais ser alocado para objetos recém-criados, o coletor de lixo na JVM irá reciclar automaticamente todos os objetos de lixo de uma vez. Quando o coletor de lixo recicla objetos de lixo, o finalize método é chamado automaticamente.

    b. Mecanismo de coleta manual: Use System.gc (); Notifique o coletor de lixo (GC) para realizar a coleta de lixo, se o GC estiver ocioso, então a coleta de lixo será realizada, se o GC estiver ocupado, não será coletado temporariamente

    Nota: Durante o desenvolvimento, nenhum código importante é escrito no método finalize e o nó de execução do método finalize é incontrolável.

Acho que você gosta

Origin blog.csdn.net/Java_lover_zpark/article/details/105259729
Recomendado
Clasificación