O Optional é um objeto contêiner usado para armazenar objetos não nulos. Ele representa a ausência de valor em vez de null, fornecendo métodos utilitários para lidar com valores como presente ou ausente, evitando verificações explícitas de null. Introduzido no Java 8, é semelhante ao Optional do Gua
Stream é uma nova camada abstrata introduzida no Java 8. Usando stream, você pode processar dados de forma declarativa, similar a instruções SQL. Por exemplo, considere a instrução SQL: SELECT max(salary), employee_id, employee_name FROM Employee A expressão SQL acima retorna automaticamente detalhe
O Java 8 introduz o conceito de implementação padrão de método em interfaces. Esta capacidade foi adicionada para compatibilidade reversa, para que interfaces antigas possam aproveitar a capacidade de expressões lambda do Java 8. Por exemplo, interfaces List ou Collection não têm declaração do méto
Interfaces funcionais têm uma única funcionalidade a exibir. Por exemplo, interface Comparable com método único compareTo é usada para comparação. O Java 8 definiu muitas interfaces funcionais para uso extensivo em expressões lambda. Lista das interfaces em java.util.function: Nº Interface e Des
Referências de método ajudam a apontar para métodos pelos seus nomes. Uma referência de método é descrita usando o símbolo ::. Pode apontar para: Métodos estáticos Métodos de instância Construtores usando operador new (TreeSet::new) Exemplo de Referência de Método Crie o seguinte programa em C:\J
Expressões lambda foram introduzidas no Java 8 e são consideradas o maior recurso do Java 8. Lambdas facilitam programação funcional e simplificam muito o desenvolvimento. Sintaxe Uma expressão lambda é caracterizada pela seguinte sintaxe: expression body Características Importantes Declaração d
Configuração do Ambiente Local Se você quer configurar seu próprio ambiente para programação Java, esta seção guia todo o processo. Siga os passos abaixo. O Java SE pode ser baixado gratuitamente em: oracle.com/technetwork/java/javase/downloads Baixe a versão baseada no seu sistema operacional. Si
O JAVA 8 é um lançamento maior de recursos da linguagem de programação JAVA. Sua versão inicial foi lançada em 18 de março de 2014. Com o Java 8, o Java passou a suportar programação funcional, novo motor JavaScript, novas APIs para manipulação de data/hora, nova API de streams, etc. Novos Recursos
A classe CompletableFuture foi introduzida no Java 8 para representar um Future que pode ser completado definindo seu valor e status explicitamente. Pode ser usada como java.util.concurrent.CompletionStage. Suporta funções e ações dependentes disparadas na conclusão do future. No Java 9, a API Compl
Com o Java 9, uma nova Multi-Resolution Image API foi introduzida, suportando múltiplas imagens com variantes de resolução diferentes. Esta API permite que um conjunto de imagens com diferentes resoluções seja usado como uma única imagem multiresolução. Principais operações: Image getResolutionVari
A classe Optional foi introduzida no Java 8 para evitar verificações de null e problemas de NullPointerException. No Java 9, três novos métodos foram adicionados para melhorar sua funcionalidade: stream() ifPresentOrElse() or() Método stream() Sintaxe public Stream<T> stream() Se um valor e
O operador diamond (<>) foi introduzido no Java 7 para tornar o código mais legível, mas não podia ser usado com classes internas anônimas. No Java 9, pode ser usado com classes anônimas também, simplificando código e melhorando legibilidade. Código Antes do Java 9 public class Tester { p
A anotação @Deprecated foi introduzida no Java 5. Um elemento anotado com @Deprecated significa que não deve ser usado por: Seu uso pode levar a erros. Pode ser incompatível em versão futura. Pode ser removido em versão futura. Uma alternativa melhor e eficiente o substituiu. O compilador gera avi
A instrução try-with-resources é uma instrução try com um ou mais recursos devidamente declarados. Recurso é um objeto que deve ser fechado quando não for mais necessário. O try-with-resources garante que cada recurso seja fechado após o término. Qualquer objeto implementando java.lang.AutoCloseable
Streams foram introduzidas no Java 8 para ajudar desenvolvedores a realizar operações agregadas a partir de uma sequência de objetos. No Java 9, mais alguns métodos foram adicionados para tornar streams melhores. takeWhile(Predicate) Sintaxe default Stream<T> takeWhile(Predicate<? super T&
No Java 9, a Process API, responsável por controlar e gerenciar processos do sistema operacional, foi aprimorada consideravelmente. A classe ProcessHandle agora fornece: ID nativo do processo, hora de início, tempo de CPU acumulado, argumentos, comando, usuário, processo pai e descendentes. Também f
Antes do Java 8, interfaces podiam ter: Variáveis constantes Métodos abstratos Não era possível ter implementação de métodos em interfaces. Veja o exemplo com duplicação de código: interface Logging { String ORACLE = Oracle_Database; String MYSQL = MySql_Database; void logInfo(String
Com o Java 9, novos métodos de fábrica foram adicionados às interfaces List, Set e Map para criar instâncias imutáveis. Esses métodos de fábrica são métodos de conveniência para criar uma coleção de forma menos verbosa e concisa. Forma Antiga de Criar Coleções import java.util.ArrayList; import jav
No Java 9, um novo recurso aprimora o formato JAR para que diferentes versões de classes ou recursos Java possam ser mantidas e usadas conforme a plataforma. No JAR, o arquivo MANIFEST.MF tem uma entrada Multi-Release: true em sua seção principal. O diretório META-INF também contém um subdiretório v
A documentação Java pode ser gerada usando a ferramenta javadoc. Atualmente gera documentação em formato HTML 4.0. No Java 9, podemos gerar documentação em HTML 5 usando a opção -html5 nos argumentos de linha de comando. Documentação Java Estilo Antigo Considere o seguinte código em C:/JAVA. Teste
Java