JavaRush /Blogue Java /Random-PT /Pausa para café #173. Qual é a diferença entre HashMap e ...

Pausa para café #173. Qual é a diferença entre HashMap e Hashtable. Como encontrar e corrigir NullPointerException em Java

Publicado no grupo Random-PT

Qual é a diferença entre HashMap e Hashtable

Fonte: Medium Hoje você aprenderá a resposta para uma das perguntas mais populares das entrevistas sobre Java: qual é a diferença entre HashMap e Hashtable. Pausa para café #173.  Qual é a diferença entre HashMap e Hashtable.  Como encontrar e corrigir NullPointerException em Java - 1Uma Hashtable é uma estrutura de dados para armazenar pares de chaves e seus valores, baseada em hash e em uma implementação da interface Map. HashMap também é uma estrutura de dados para armazenamento de chaves e valores, baseada em hashing e uma implementação da interface Map. HashMap permite obter rapidamente um valor por chave. Por exemplo, o nome e o número de telefone do usuário. Existem diferenças significativas entre HashMap e Hashtable em Java . Isso inclui segurança de thread, sincronização e consistência de implementação de mapa. É importante considerar estes aspectos ao escolher o tipo de estrutura de dados a ser usada em seu programa Java: Um HashMap é um mapa não sincronizado e não ordenado de pares chave-valor. Ele permite valores nulos e usa um código hash como verificação de igualdade, enquanto Hashtable é um mapa ordenado sincronizado de pares de valores-chave. Ele não permite valores nulos e usa o método equals() para verificar a igualdade. Um HashMap tem uma capacidade padrão de 16 e um Hashtable tem uma capacidade inicial padrão de 11. Os valores de um objeto HashMap são iterados usando um iterador, e Hashtable é a única classe além de um vetor que usa um enumerador para iterar sobre os valores de um objeto Hashtable. Lembre-se de que as diferenças entre HashMap e Hashtable é uma das questões mais populares nas entrevistas Java.

Como encontrar e corrigir NullPointerException em Java

Fonte: Theflashreads Depois de ler este artigo, você será mais capaz de encontrar e corrigir um erro comum no código Java - NullPointerException. Pausa para café #173.  Qual é a diferença entre HashMap e Hashtable.  Como encontrar e corrigir NullPointerException em Java - 2

O que é uma NullPointerException?

java.lang.NullPointerException é uma exceção de tempo de execução em Java. Ocorre quando é feita uma tentativa de acesso a uma variável que não aponta ou se refere a nenhum objeto, ou seja, é nula. Como NullPointerException é uma exceção em tempo de execução, ela não precisa ser capturada e tratada explicitamente no código do aplicativo.

Em que circunstâncias ocorre uma NullPointerException?

NullPointerException ocorre quando é feita uma tentativa de acessar um objeto não inicializado. Como já mencionado, isso acontece quando a referência do objeto não leva a lugar nenhum e possui um valor nulo. Aqui estão alguns dos cenários de exceção NullPointerException mais comuns :
  • Acesse propriedades de um objeto nulo.
  • Lançando null de um método que lança uma exceção.
  • Configuração incorreta para estruturas de injeção de dependência, por exemplo: (Spring).
  • Passando parâmetros nulos para um método.
  • Chamando métodos em um objeto nulo.
  • Usando sincronizado em um objeto nulo.
  • Acesse o elemento de índice (por exemplo, em uma matriz) de um objeto nulo.

Exemplo NullPointerException

Neste exemplo, estamos tentando chamar o método printLength , que recebe uma string como parâmetro e imprime seu comprimento. Se o valor da string que é passada como parâmetro for nulo, será lançada uma java.lang.NullPointerException .
public class NullPointerExceptionExample {

    private static void printLength(String str) {

        System.out.println(str.length());

    }



    public static void main(String args[]) {

        String nullString = null;

        printLength(nullString);

    }

}





Exception in thread "main" java.lang.NullPointerException

    at NullPointerExceptionExample.printLength(NullPointerExceptionExample.java:3)

    at NullPointerExceptionExample.main(NullPointerExceptionExample.java:8)

Como evitar lançar NullPointerException

NullPointerException pode ser evitado usando as seguintes verificações e métodos preventivos:
  • Certifique-se de que um objeto seja inicializado corretamente adicionando uma verificação nula antes de acessar seus métodos ou propriedades.

  • Use Apache Commons StringUtils para operações de string: por exemplo, StringUtils.isNotEmpty() para verificar se uma string está vazia antes de usá-la novamente.

    import org.apache.commons.lang3.StringUtils;
    
    
    
    public class NullPointerExceptionExample {
    
        private static void printLength(String str) {
    
            if (StringUtils.isNotEmpty(str)) {
    
                System.out.println(str.length());
    
            } else {
    
                System.out.println("This time there is no NullPointerException");
    
            }
    
        }
    
    
    
        public static void main(String args[]) {
    
            String nullString = null;
    
            printLength(nullString);
    
        }
    
    }
  • Use primitivos em vez de objetos sempre que possível, pois eles não podem ter referências nulas. Por exemplo, use int em vez de Integer e boolean em vez de Boolean .

  • Certifique-se de verificar seu código. Isso reduzirá a probabilidade de um NullPointerException ser lançado .

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION