Java SE 11 Developer

Java SE 11 Developer

Created
Mar 6, 2021 09:30 PM
Language
Português
Summary
Certification study notes.
Attention Status
Explicações
Conteúdos

  • Packages utilizam o seu domínio por convenção para garantir que um nome de classe seja único e possibilitar que o código seja utilizado por terceiros quando for o caso
  • É possível rodar um código fonte de arquivo único como se fosse um .class através do comando java <path class with method main>
  • Method Chaining consiste em chamar um método de um objeto retornado por outro método diretamente após a chamada desse outro método. (e.g. price.add(5.0).setScale(2, RoundingMode.HALF_UP))
  • Utilizar static final para definir uma variável é preferível à apenas final, já que uma variável ou método static ocupara apenas um espaço em memória, e sem essa palavra reservada o dado seria replicado em cada instância
  • Se uma comparação entre dois objetos resultar em verdadeiro, o hashCode desses deve ser idêntico
  • O método hashCode() gera a identidade de uma instância, e é utilizada por coleções hash (como HashSet, HashMap, ...) para otimização de busca.
  • Todas classes estende, em último nível, a classe Object
  • O método utilizado para gerar o hash está em Objects e não garante segurança.
  • Devido a maneira como Java armazena Strings, comparar duas Strings inicializadas com o mesmo valor e com aspas duplas (e.g. x = "Hello") utilizando x == y irá retornar verdadeiro, por mais que se esteja comparando a referência para o objeto em Heap, já que ambas apontam para o mesmo endereço de Heap.
  • Herança múltipla não é permitida em Java devido ao possível problema de uma subclasse, que estenda duas superclasses, tente chamar um método que possuí a exata mesma assinatura em ambas superclasses
  • Todo objeto mutável em heap não é thread-safe; apenas objetos imutáveis são seguros em cenários multi-thread
    • Tornar uma coleção imutável, não garante segurança de processos concorrentes para os objetos que ela contêm; apenas objetos que sejam imutáveis são seguros nesse cenário
  • Heap Pollution ocorre ao atribuir uma instância do tipo X a uma variável do tipo Y, onde X e Y não são compatíveis
  • Uma ação atômica é uma ação que é garantida de ser executada em uma thread sem interrupção;
    • operações que a CPU consegue executar em um único ciclo são atómicas, por definição
    • atribuição de variáveis são ações atômicas, exceto para os tipos long e double — são valores de 64 bits que levariam duas operações em uma plataforma 32 bits
    • operações como + - / * % ++ — não são atômicas
  • O termo paralelismo implica que dois fluxos de processamento estão ocorrendo ao mesmo tempo. O termo concorrência implica que dois fluxos podem estar ocorrendo ao mesmo tempo.
    • em Java paralelismo não é garantido, pois isso depende do hardware que está executando a aplicação e das tarefas que estão sendo agendadas no processador