JavaRush /Blogue Java /Random-PT /Pausa para café #167. Coisas para revisar antes de uma en...

Pausa para café #167. Coisas para revisar antes de uma entrevista Java. Qual é a diferença entre enum e iterador em Java?

Publicado no grupo Random-PT

Coisas para revisar antes de uma entrevista Java

Fonte: Médio Neste artigo você encontrará 17 dicas de um desenvolvedor experiente que o ajudará em uma entrevista Java. Pausa para café #167.  Coisas para revisar antes de uma entrevista Java.  Qual é a diferença entre enum e iterador em Java?  - 1Trabalho no setor de TI há mais de 20 anos e passei a maior parte desse tempo trabalhando com Java. Além disso, ganhei considerável experiência entrevistando desenvolvedores Java. Embora a linguagem Java esteja em constante evolução, os conceitos centrais permanecem praticamente os mesmos. Aqui estão algumas dicas que quero compartilhar com aspirantes a desenvolvedores antes de irem para uma entrevista. Se você repeti-los, você evitará erros graves.
  1. A classe Object está na raiz da hierarquia de classes Java. Todas as classes Java remontam a Object . Mesmo que uma classe não estenda explicitamente nenhuma classe, ela estende Object . No entanto, uma classe é livre para estender Object explicitamente.

  2. Em Java, você pode estender apenas uma classe (herança múltipla não é permitida devido à ambigüidade). No entanto, uma classe pode implementar qualquer número de interfaces ao mesmo tempo.

  3. Uma interface estende outra interface (em oposição a uma implementação).

  4. Existem quatro modificadores de acesso em Java: público (disponível para todos), protegido (disponível apenas para subclasses), privado (disponível apenas dentro de uma única classe), padrão (disponível dentro de um único pacote). Deve-se observar que subclasses da mesma classe podem estar em pacotes diferentes. A classe pai e as subclasses não precisam fazer parte do mesmo pacote.

  5. A string da classe é imutável. Imutabilidade significa que a própria classe String não fornece nenhum método para substituir o valor em uma referência String . Se quiser substituir o valor de uma referência de string, você deverá atribuir o valor explicitamente usando o operador = . Compare isso com as classes StringBuffer ou StringBuilder , que possuem métodos como append para que você não precise usar o operador = lá .

  6. ConcurrentHashMap é mais eficiente que Hashtable . ConcurrentHashMap opera em segmentos da estrutura de dados subjacente, nos quais uma operação de gravação bloqueia apenas um segmento específico (independentemente de qual segmento a chave pertence). Porém, no Hashtable toda a estrutura de dados será bloqueada.

  7. ConcurrentHashMap é mais lento que HashMap porque HashMap não implementa segurança de thread. HashMap pode lançar uma ConcurrentModificationException se um thread iterar sobre um HashMap e outro thread tentar modificar o mesmo HashMap . ConcurrentHashMap não lançará uma exceção aqui.

  8. Como implementar a igualdade de dois objetos da mesma classe que você definiu? Resposta: Isso pode ser feito substituindo o método hashcode() .

  9. Qual é o resultado padrão do método toString() ? Resposta: É a concatenação do nome da classe, do sinal @ e do valor hashcode() .

  10. Como implementar polimorfismo em Java? Uma maneira de fazer isso é sobrecarregar o método. Outra maneira é substituir o método.

  11. Como você chama um construtor de superclasse de uma classe filha? Resposta: Isso pode ser feito usando a palavra-chave super() . O método super() sem argumentos é sempre chamado, mesmo que não seja especificado explicitamente. O método super() com um argumento deve ser especificado explicitamente. Uma chamada para super() (com ou sem argumento) deve sempre ser a primeira linha no construtor da classe filha se for necessário chamá-la.

  12. O que são exceções verificadas e não verificadas? Resposta: Exceções verificadas são aquelas que devem ser declaradas ou capturadas no método onde se espera que sejam lançadas. Uma exceção não verificada não tem essa limitação. java.io.IOException é um exemplo de exceção verificada. Exceções não verificadas vêm da classe RunTimeException .

  13. A classe raiz da hierarquia de exceção é Throwable (que por sua vez estende implicitamente Object ). Exceção e erro vêm de Throwable .

  14. Desde Java 8, os métodos podem ter uma implementação em uma interface. Métodos padrão e métodos estáticos podem ter implementações.

  15. Uma classe qualificada como abstrata não pode ser instanciada. Qualquer classe que não forneça um corpo para nenhum dos métodos deve ser declarada abstrata. Um desenvolvedor pode declarar uma classe como abstrata mesmo que todos os métodos tenham um corpo - porém, isso não é muito recomendado porque neste caso a classe não pode ser instanciada.

  16. A aula final não pode ser prorrogada. Uma variável final não pode receber outro valor. Um método final não pode ser substituído.

  17. Quais palavras-chave são necessárias em uma construção try-catch-finalmente ? Pode ser try-catch , try-finally ou todos os três. Nesse caso, catch não é uma palavra-chave obrigatória.

Qual é a diferença entre enum e iterador em Java?

Fonte: Rrtutors Esta postagem trazida para você discute as diferenças entre enumeração e iteração em Java. O pacote Java.util fornece duas interfaces para percorrer os elementos de um objeto Collection : Enumeration e Iterator . Mesmo que ambos passem por um objeto Collection , existem algumas diferenças entre eles.

Diferenças entre enum e iterador

  • Tempo adicionado ao JDK: Eles são introduzidos em momentos diferentes. Enum foi introduzido no JDK 1.0, enquanto o iterador foi introduzido no JDK 1.2.

  • Removendo elementos: Esta é a principal diferença entre os dois. Na interface Iterator , podemos remover um elemento ao iterar sobre um objeto Collection , mas não podemos alterá-lo ao iterar sobre um objeto Collection usando Enumeration . Isso ocorre porque a interface Iterator possui um método remove() , mas a interface Enumeration não.

  • Tipo de operação: o iterador possui tipo de operação à prova de falhas e a enumeração possui tipo de operação à prova de falhas. Como resultado, Iterator lança uma ConcurrentModificationException quando a coleção é modificada durante a iteração, a menos que seu próprio método remove() seja usado , enquanto Enumeration não lança nenhuma exceção quando a coleção é modificada durante a iteração.

Exemplos de enumeração e iterador em Java

Exemplo de enumeração

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Enumeration;

import java.util.List;

import java.util.Vector;

public class Enumeration_Example {

      public static void main(String[] args) {

                  List laptoplist = new ArrayList(Arrays.asList( new String[] {"Samsung", "Lenovo", "Apple", "HP"}));

            Vector vectali = new Vector(laptoplist);

            delete(vectali, "Samsung");

        }

        private static void delete(Vector vectali, String laptop) {

            Enumeration lapi = vectali.elements();

            while (lapi.hasMoreElements()) {

              String s = (String) lapi.nextElement();

              if (s.equals(laptop)) {

                  vectali.remove(laptop);

              }

            }

            System.out.println("The Laptop brands includes:");

            lapi = vectali.elements();

            while (lapi.hasMoreElements()) {

              System.out.println(lapi.nextElement());

            }

      }

}
Conclusão:
As marcas de laptop incluem: Lenovo Apple HP

Exemplo de iterador:

import java.util.ArrayList;

import java.util.Arrays;

import java.util.Iterator;

import java.util.List;

import java.util.Vector;

public class Iterator_example {

      public static void main(String[] args) {

                  List laptoplist = new ArrayList(Arrays.asList( new String[] {"Samsung", "Lenovo", "HP", "Apple"}));

            Vector vectali = new Vector(laptoplist);

            delete(vectali, "HP");

        }

        private static void delete(Vector vectali, String name) {

            Iterator a = vectali.iterator();

            while (a.hasNext()) {

              String s = (String) a.next();

              if (s.equals(name)) {

                  a.remove();

              }

            }

            // Display the names

            System.out.println("The laptop brand includes:");

            a = vectali.iterator();

            while (a.hasNext()) {

              System.out.println(a.next());

            }

      }

}
Conclusão:
A marca do laptop inclui: Samsung Lenovo Apple
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION