Termos de Java
150 termos de Java em português. JVM, tipos, concorrência e o ecossistema de quem constrói sistemas corporativos.
A
- anotaçãoMetadado escrito com @ e anexado a classes, métodos, campos e parâmetros. Compilador, ferramentas e…
- anotação TransactionalAnotação do Spring que executa o método dentro de uma transação: abre no início, confirma no fim e desfaz se…
- aquecimento da JVMPeríodo inicial em que a JVM interpreta o código e vai compilando os trechos quentes com o JIT. Só depois…
- ArrayListImplementação de List baseada em array redimensionável. Oferece acesso por índice em tempo constante e…
- AtomicIntegerInteiro cuja leitura e atualização são atômicas e sem lock, baseadas em instruções compare-and-set do…
- auto-configuraçãoMecanismo do Spring Boot que registra beans automaticamente conforme o classpath e as propriedades, usando…
- autoboxingConversão automática, feita pelo compilador, de um tipo primitivo para seu wrapper, como int para Integer. A…
- avaliação preguiçosaCaracterística dos streams em que as operações intermediárias só rodam quando uma operação terminal pede o…
B
- beanObjeto criado e gerenciado pelo contêiner do Spring, que cuida de sua criação, dependências e ciclo de vida…
- BigDecimalNúmero decimal de precisão arbitrária e imutável, usado para dinheiro. Evita os erros de arredondamento de…
- BOMBill of Materials: POM especial que só fixa versões compatíveis de várias bibliotecas, importado no…
- bytecodeConjunto de instruções intermediárias, independentes de processador, que o javac grava nos arquivos .class e…
C
- cache de IntegerCache de objetos Integer entre -128 e 127 que o autoboxing reutiliza por padrão. Por isso == entre Integers…
- checked exceptionExceção que o compilador obriga a tratar com catch ou a declarar com throws, como IOException. Representa…
- classe abstrataClasse declarada com abstract que não pode ser instanciada. Serve de base para subclasses e pode misturar…
- classe internaClasse declarada dentro de outra. Se não for static, cada instância guarda uma referência à instância…
- classe públicaClasse declarada com public. Cada arquivo .java pode ter no máximo uma, e o nome do arquivo precisa ser…
- classloaderComponente da JVM que localiza e carrega classes na memória sob demanda, a partir de JARs, diretórios ou da…
- classpathLista de diretórios e JARs onde a JVM procura classes e recursos em execução. É definida por -cp ou pela…
- CleanerUtilitário de java.lang.ref que registra uma ação de limpeza para rodar quando um objeto se torna…
- CloneableInterface marcadora que autoriza Object.clone() a copiar um objeto campo a campo. Seu design é considerado…
- coleção imutávelColeção criada com List.of, Set.of ou Map.of que não aceita adição, remoção nem null. Qualquer tentativa de…
- CollectorObjeto que define como reduzir os elementos de um stream a um resultado, como lista, mapa ou soma. Composto…
- ComparatorInterface que define uma ordem de comparação entre objetos, independente da classe deles. Permite ordenar…
- compilação em camadasEstratégia do HotSpot que combina interpretador, compilador C1 (rápido) e C2 (agressivo), promovendo métodos…
- CompletableFutureClasse que representa um resultado futuro e permite compor etapas assíncronas, com thenApply, thenCompose e…
- ConcurrentHashMapMapa thread-safe e de alto desempenho, com leituras sem bloqueio, escritas em partes separadas e operações…
- ConcurrentModificationExceptionExceção lançada quando uma coleção é alterada durante uma iteração que não esperava a mudança, como remover…
- constant poolTabela dentro do arquivo .class com literais, nomes de classes, métodos e campos referenciados. As…
- construtorBloco especial, com o nome da classe e sem tipo de retorno, que roda na criação do objeto com new e…
- construtor flexívelRecurso do Java 25 que permite escrever instruções antes de super(...) ou this(...) num construtor, desde…
- CountDownLatchSincronizador que faz threads esperarem até que um contador chegue a zero, decrementado por outras threads…
- covariância de arraysCaracterística dos arrays Java em que String[] é aceito onde Object[] é esperado. A checagem de tipo ocorre…
D
- deadlockSituação em que duas ou mais threads ficam bloqueadas para sempre, cada uma esperando um lock que outra…
- delegação ao classloader paiRegra pela qual um classloader pede primeiro ao pai para carregar uma classe e só tenta ele mesmo se o pai…
- dependência transitivaDependência que seu projeto recebe indiretamente, porque uma biblioteca que você declarou depende dela…
- desotimizaçãoProcesso em que a JVM descarta o código compilado de um método e volta ao interpretador quando uma suposição…
- diamond operatorSintaxe <> que manda o compilador inferir os argumentos de tipo na criação de um objeto genérico, evitando…
E
- enumTipo com um conjunto fixo de constantes nomeadas. Em Java o enum é uma classe de verdade: pode ter campos…
- equalsMétodo de Object que define quando dois objetos são iguais em valor. O padrão compara referências; classes…
- escape analysisOtimização do JIT que descobre se um objeto nunca escapa do método ou da thread, permitindo alocá-lo sem a…
- escopo de dependênciaAtributo scope do Maven que define em que fases a dependência entra no classpath: compile, provided…
- ExecutorServiceInterface que gerencia um pool de threads e a fila de tarefas, separando o que executar de como executar…
- expressão lambdaFunção anônima escrita como (parâmetros) -> corpo, usada onde Java espera uma interface funcional. Reduz o…
F
- fat JARJAR único que embute o código do projeto junto com todas as suas dependências, pronto para rodar com java…
- finalModificador que impede mudança. Em variável, proíbe nova atribuição; em método, proíbe sobrescrita; em…
- finallyBloco que roda depois de try e catch, haja ou não exceção, usado para liberar recursos. Só deixa de rodar se…
- flatMapOperação de stream que transforma cada elemento em um stream e junta todos num só, achatando, por exemplo…
- Foreign Function and Memory APIAPI estável desde o Java 22 para chamar código nativo e acessar memória fora da heap com segurança, em…
- ForkJoinPoolPool de threads com roubo de trabalho, feito para tarefas que se dividem em subtarefas. É a base dos…
G
- G1Coletor de lixo padrão da JVM desde o Java 9. Divide a heap em regiões e prioriza as que têm mais lixo…
- garbage collectorMecanismo da JVM que recupera automaticamente a memória de objetos que o programa não consegue mais…
- genericsRecurso que permite classes e métodos com parâmetros de tipo, como List<String>, dando segurança de tipos na…
- geração jovemParte da heap em que nascem os objetos novos, coletada com frequência e rapidez porque a maioria morre cedo…
- GradleFerramenta de build com scripts em Groovy ou Kotlin DSL e builds incrementais com cache. Define tarefas e…
- Gradle WrapperScript gradlew e um JAR pequeno, versionados no repositório, que baixam e usam a versão exata do Gradle do…
- groupingByColetor que agrupa os elementos de um stream num Map, usando uma função de classificação como chave, com…
H
- happens-beforeRelação do Modelo de Memória Java que garante que as escritas de uma ação ficam visíveis a outra. Sem ela…
- hashCodeMétodo de Object que devolve um inteiro usado por coleções de dispersão. Objetos iguais segundo equals…
- HashMapMapa que associa chaves a valores usando uma tabela de dispersão. Busca e inserção custam, em média, tempo…
- heapRegião da memória da JVM onde vivem os objetos criados com new e que o garbage collector limpa. Seu tamanho…
- heap dumpCópia do conteúdo da heap em arquivo .hprof, listando objetos e quem os referencia. É analisada com Eclipse…
- herança simplesRegra de que uma classe Java estende no máximo uma classe pai. Para reaproveitar comportamento de várias…
- HotSpotImplementação padrão da JVM no OpenJDK, com interpretador, compiladores JIT C1 e C2 e vários coletores de…
I
- inicializador estáticoBloco static { } que roda uma vez, quando a classe é inicializada, antes de qualquer uso. Serve para…
- injeção de dependênciaTécnica em que um objeto recebe de fora as dependências de que precisa, em vez de criá-las. No Spring, o…
- injeção por construtorForma de injeção de dependência em que as dependências chegam como parâmetros do construtor, ficando final e…
- inliningOtimização em que o JIT copia o corpo de um método pequeno para dentro do chamador, eliminando o custo da…
- instanceof com padrãoForma do instanceof que já declara uma variável do tipo testado, como obj instanceof String s, dispensando o…
- interfaceContrato que lista métodos que uma classe se compromete a oferecer. Uma classe pode implementar várias…
- interface funcionalInterface com exatamente um método abstrato, que pode ser implementada por lambda ou referência de método. A…
- interrupção de threadMecanismo cooperativo para pedir que uma thread pare o que faz, com interrupt(). A thread precisa checar o…
- invokedynamicInstrução de bytecode do Java 7 que liga uma chamada a um método só na primeira execução, via bootstrap…
J
- JARArquivo no formato ZIP que reúne classes, recursos e um manifesto META-INF/MANIFEST.MF. É a unidade de…
- JDKKit de desenvolvimento Java. Reúne o compilador javac, a JVM, a biblioteca padrão e ferramentas como jar…
- JFRJava Flight Recorder: profiling embutido na JVM que grava eventos de CPU, alocação, GC, locks e I/O com…
- JITCompilador em tempo de execução da JVM: traduz para código de máquina os trechos de bytecode executados com…
- JMHJava Microbenchmark Harness, ferramenta do OpenJDK para microbenchmarks confiáveis. Cuida de aquecimento…
- JNIInterface padrão para o Java chamar código nativo em C ou C++ e vice-versa, por métodos native e bibliotecas…
- JUnitFramework padrão de testes automatizados em Java. A versão 5, o JUnit Jupiter, usa anotações como @Test e…
- JVMMáquina virtual que executa bytecode Java. Carrega classes, gerencia a memória e traduz o código para…
M
- MavenFerramenta de build e de gerenciamento de dependências que usa o arquivo pom.xml e um ciclo de vida fixo…
- meta-anotaçãoAnotação aplicada a outra anotação para configurá-la, como @Retention, que define até quando ela vive, e…
- metaspaceRegião de memória nativa, fora da heap, onde a JVM guarda metadados de classes, como estruturas de métodos e…
- método bridgeMétodo sintético que o compilador cria em classes genéricas ou com retorno covariante para que a sobrescrita…
- método defaultMétodo de interface com corpo, marcado com default, desde o Java 8. Permite acrescentar comportamento a uma…
- método genéricoMétodo que declara o próprio parâmetro de tipo antes do retorno, como static <T> T primeiro(List<T> l), e…
- método mainPonto de entrada de um programa Java. Em geral é public static void main(String[] args), e a JVM o chama…
- MockitoBiblioteca de mocks para testes: cria dublês de dependências, programa respostas com when e verifica…
- modificador de acessoPalavra que define quem enxerga um membro: public, protected, private ou, sem nada, acesso de pacote…
- módulo JavaUnidade de encapsulamento do Java 9, definida em module-info.java, que declara dependências com requires e…
- multi-catchForma de catch que trata vários tipos de exceção no mesmo bloco, separados por barra vertical, como catch…
N
- native imageTecnologia do GraalVM que compila a aplicação antes da execução (AOT) num executável nativo, com…
- NullPointerExceptionExceção lançada ao usar uma referência null como se apontasse para um objeto, por exemplo chamando um método…
O
- opção XmxFlag da JVM que define o tamanho máximo da heap, como -Xmx2g. Ao passar do limite, o programa lança…
- OptionalContêiner que pode ou não conter um valor, usado como tipo de retorno para dizer explicitamente que o…
- ordem de inicializaçãoSequência em que Java prepara classes e objetos: estáticos do pai, estáticos do filho, depois instância e…
- OutOfMemoryErrorErro lançado quando a JVM não consegue alocar memória, mesmo após coletar, como heap esgotada, falta de…
- overrideRedefinir na subclasse um método herdado, mantendo a assinatura. A anotação @Override faz o compilador…
P
- pacoteAgrupamento de classes relacionadas, declarado com package no topo do arquivo. Organiza o código em espaços…
- parallel streamStream que divide o trabalho entre várias threads do ForkJoinPool comum, criado com parallelStream ou…
- PECSRegra mnemônica 'producer extends, consumer super': use ? extends T em estruturas que só fornecem dados e ?…
- pilha de execuçãoRegião de memória de cada thread onde ficam os quadros das chamadas de método, com variáveis locais e…
- pom.xmlArquivo de configuração do Maven que descreve o projeto: coordenadas (groupId, artifactId, version)…
- problema N+1Armadilha de ORM em que uma consulta traz N entidades e depois cada uma dispara outra consulta para carregar…
- processador de anotaçãoPlugin do compilador que roda durante o javac, lê anotações no código-fonte e gera novas classes ou…
- projeto multi-móduloProjeto Maven ou Gradle dividido em submódulos, cada um com seu build, coordenados por um projeto pai que…
- proxy dinâmicoObjeto gerado em execução que implementa interfaces e repassa cada chamada a um InvocationHandler. Permite…
R
- recordClasse concisa para dados imutáveis, declarada com record. O compilador gera construtor, acessores, equals…
- record patternPadrão que desmonta um record direto no instanceof ou no switch, extraindo seus componentes em variáveis…
- ReentrantLockLock explícito de java.util.concurrent que a mesma thread pode readquirir e que oferece tryLock, timeout…
- referência de métodoForma curta de lambda que aponta para um método existente, como String::length ou System.out::println…
- reflexãoCapacidade de inspecionar e manipular classes, métodos e campos em tempo de execução, pela API…
- RuntimeExceptionSuperclasse das exceções não verificadas: o compilador não exige catch nem throws. Cobre erros de…
S
- safepointPonto da execução em que a JVM consegue parar uma thread com o estado consistente, para operações como GC…
- ScopedValueValor imutável compartilhado dentro de um escopo de execução e das threads filhas, alternativa mais segura e…
- sealed classClasse ou interface que restringe quais tipos podem estendê-la, listados em permits. Permite hierarquias…
- serializaçãoConversão de um objeto em bytes, por meio de Serializable e ObjectOutputStream, para gravar ou transmitir…
- ServiceLoaderMecanismo do JDK para descobrir implementações de uma interface em execução, declaradas em META-INF/services…
- sobrecargaDefinir vários métodos com o mesmo nome na mesma classe, mas com parâmetros diferentes em tipo ou…
- SpringFramework que oferece um contêiner de injeção de dependência e módulos para web, dados, segurança e mais…
- Spring BootProjeto da família Spring que monta aplicações prontas para rodar, com configuração automática, servidor…
- stack traceLista das chamadas de método ativas no momento em que uma exceção foi criada, da mais recente para a mais…
- StackOverflowErrorErro lançado quando a pilha de uma thread estoura, em geral por recursão sem condição de parada ou profunda…
- starterDependência do Spring Boot que reúne num só artefato as bibliotecas e a auto-configuração de um recurso…
- staticModificador que prende um membro à classe, e não a cada instância. Campos e métodos static existem uma vez…
- stop-the-worldPausa em que a JVM suspende todas as threads da aplicação para o garbage collector ou outra operação…
- StreamAPI para processar sequências de dados de forma declarativa, encadeando operações como filter, map e…
- String poolTabela mantida pela JVM com Strings literais únicas. Literais iguais apontam para o mesmo objeto, o que…
- StringBuilderClasse de texto mutável usada para montar strings aos poucos, sem criar um objeto novo a cada concatenação…
- suppressed exceptionExceção secundária anexada à principal por addSuppressed, usada sobretudo pelo try-with-resources quando…
- switch expressionForma do switch que produz um valor, usando setas. Não cai nos casos seguintes, dispensa break e o…
- synchronizedPalavra-chave que garante exclusão mútua: só uma thread por vez executa o bloco ou método sobre o mesmo…
T
- text blockString de várias linhas delimitada por três aspas duplas, disponível desde o Java 15. O compilador remove a…
- threadLinha de execução independente dentro do processo, criada com Thread ou por um executor. Threads…
- thread dumpRetrato do estado de todas as threads da JVM e dos locks que seguram, gerado por jstack, jcmd ou kill -3…
- ThreadLocalVariável cujo valor é separado por thread: cada uma enxerga a sua própria cópia. Usada para carregar…
- tipo primitivoUm dos oito tipos que guardam o valor diretamente, sem objeto: byte, short, int, long, float, double, char e…
- toStringMétodo de Object que devolve a representação textual do objeto. O padrão imprime o nome da classe e um hash…
- try-with-resourcesForma de try que declara recursos AutoCloseable entre parênteses e os fecha sozinha ao sair, em ordem…
- type erasureProcesso em que o compilador remove os parâmetros de tipo dos genéricos depois de verificá-los, deixando no…
V
- varDeclara variável local deixando o compilador inferir o tipo pelo valor à direita, desde o Java 10. O tipo…
- varargsParâmetro final declarado com três pontos, como String... nomes, que aceita zero ou mais argumentos e chega…
- vazamento de memóriaSituação em que objetos sem uso continuam alcançáveis por alguma referência esquecida, o coletor não os…
- virtual threadThread leve, gerenciada pela JVM e não pelo sistema operacional, disponível no Java 21. Permite milhões de…
- volatileModificador de campo que garante visibilidade entre threads e impede reordenação de leituras e escritas, mas…
W
- wait and notifyMétodos de Object para coordenar threads: wait libera o monitor e espera, notify acorda uma thread. Só…
- weak referenceReferência que não impede o coletor de liberar o objeto. Se só existirem referências fracas a ele, o GC pode…
- wildcardCuringa ? em tipos genéricos, como List<? extends Number> ou List<?>, que representa um tipo desconhecido e…