Escolar Documentos
Profissional Documentos
Cultura Documentos
POO Aula03
POO Aula03
Oak
Star Seven
Evolução do Java
Nº de Classes
Versão Ano Novos Recursos da Linguagem
e Interfaces
1.0 1996 A própria linguagem 211
1.1 1997 Classes Internas 477
1.2 1998 Nenhum 1.524
1.3 2000 Nenhum 1.840
1.4 2002 Assertivas. Encadeamento de Exceções 2.723
Classes genéricas, loop “for each”, autoboxing,
5.0 2004 3.279
metadados, enumerações, importação estática
6 2006 Nenhum 3.777
Suporte ao uso de strings no switch,
7 2011 aprimoramento no tratamento de exceções, 4.024
operador diamante,
Expressões lambdas, Interfaces com métodos
8 2014 4.240
default, novas bibliotecas de streams e data/ hora
Evolução do Java
Java 9
2017
Read-Eval-Print-Loop (REPL) – Jshell
“Ambiente simples e interativo onde você pode facilmente
executar códigos, oferecendo uma forma bastante efetiva de
experimentar novos recursos e APIs”
[ http://blog.caelum.com.br/java-9-na-pratica-repl/ ]
Java 9
Modularização – Jigsaw
“Cria um sistema de módulos, que poderemos usar em nossos
projetos, mas também aplicá-lo em toda a plataforma e JDK em
busca de melhor organização e desempenho”
[ http://blog.caelum.com.br/java-9-na-pratica-jigsaw/ ]
Java 9
Modularização – Jigsaw
“Cria um sistema de módulos, que poderemos usar em nossos
projetos, mas também aplicá-lo em toda a plataforma e JDK em
busca de melhor organização e desempenho”
[ http://blog.caelum.com.br/java-9-na-pratica-jigsaw/ ]
Java 9
Modularização – Jigsaw
“Agora ser público não significa mais ser acessível. Em um
sistema modular você precisa definir explicitamente o que pode
ou não ser acessado por fora do módulo”
[ http://blog.caelum.com.br/java-9-na-pratica-jigsaw/ ]
Java 9
Mudanças APIs
Muitas APIs ganharam melhorias no Java 9, mas Collections,
Streams, Collectors, e Optional são os destaques.
Lists e Sets ganharam o método of, com isso a forma de
criar coleções muda e pode ser feita de forma mais simples.
Set<String> cars = Set.of(“Ferrari”, “Fusca”, “Bugatti”)
[ https://www.concrete.com.br/2017/10/09/introducao-ao-java-9-quais-sao-as-principais-novidades/ ]
Evolução do Java
Java 9
Novas APIs
HTTP/2 Client, logging, Stack-Walking,...
Garbage Collector G1
Java 9 adotou o G1 como default GC
Ele foi programado para trabalhar com menor tempo de pausa e de
forma mais previsível, a fim de entregar maior performance em seus
eventos de cleanning
[ https://www.concrete.com.br/2017/10/09/introducao-ao-java-9-quais-sao-as-principais-novidades/ ]
Evolução do Java
Java 10
Vale a pena dar uma olhada
http://blog.caelum.com.br/o-minimo-que-voce-deve-saber-de-
java-10/
Java
“Java é uma plataforma integral, com uma biblioteca enorme
contendo uma grande quantidade de códigos reutilizáveis e um
ambiente de execução que fornece serviços como segurança,
portabilidade para diferentes sistemas operacionais e coleta de
lixo automática.”
(HORSTMANN; CORNELL, 2010)
PLATAFORMA JAVA
Linguagem de
Ambiente de Execução
Programação Orientada a
Multiplataforma
Objetos
ME
robusto e flexível para aplicativos executados em
dispositivos embarcados e móveis na Internet das Coisas
Java: Plataformas Mais Modernas
FX
rico conjunto de APIs que simplificam o desenvolvimento
de softwares que utilizam conteúdo de multimídia
Card
outros dispositivos confiáveis com capacidade limitada de
memória e processamento
Ambientes de Desenvolvimento
Integrado – IDE
Ambientes baseados em janelas
Editor de Texto
+
Compilador
+
Ferramenta de Depuração
Java: Características
Orientação a Objetos
Suporte a Encapsulamento, Herança e Polimorfismo
Independência de Plataforma
Os programas Java são compilados para uma forma
intermediária de código
Bytecode
Permite multithreading
Aplicações capazes de executar múltiplas rotinas
concorrentemente
Sincronização destas várias rotinas
Segurança
Mecanismos de segurança que impedem a geração de efeitos
colaterais fora do sistema
Java Virtual Machine
Em linguagens como C e Pascal, temos o seguinte quadro quando
vamos compilar um programa
Código Binário para um
Código Fonte
Compila determinado SO
Sistema
Operacional Windows Linux
Bytecode Bytecode
Java Java
Linux Windows
.java
Compilador
Carregador Interpretador
.class
Arquivo-Fonte
public class Conta {
Arquivo de Classe
}
Classe
Método 1
instrução
public class Conta {
void depositar() {
Método 1
instrução 1 }
instrução 2 }
Método
Estrutura de Código do Java
instrução 1;
Método 1
instrução 2;
instrução ...
}
Método 1 }
Instruções
instrução 1
instrução 2
Alô, mundo!
Um comentário /*
de bloco Este é um programa Java Simples
Chame este arquivo de Programa1.java
*/
Insere a definição de class Programa1{
uma nova classe
}
O método main em detalhes
public static void main(String[] args)
Vetor de strings
Usado quando o método que recebe os
não retorna valor. argumentos
passados ao
programa.
Indica que o método deve
ser compartilhado por todos
os objetos criados a partir Método principal.
desta classe Obrigatório em
aplicações, pois indica
Significa que a classe ao compilador o início
ou método é acessível da execução da linha
externamente a esta
classe.
Saída do Console
System.out.println("Oi, Java!");
Nomes de Métodos
São “verbos” e iniciam com letras minúsculas e seguem a notação
camelo.
Exemplo: void alteraNota()
Como Compilar e Executar
Compilação Execução
javac java
A partir do diretório local A partir do diretório local
javac Nome.java java Nome
Vai produzir Arquivos .class Nome = arquivo .class que
separados para cada classe contém o método main()
no arquivo Nome.java
Coloca os arquivos no diretório
Executa a partir de main()
corrente. Ou com argumentos
Java Nome arg1, arg2
O que pode dar errado?
Erros de Sintaxe
Java é case-sensitive
Esquecer “ ; ”
Escrever palavras reservadas com
letras maiúsculas.
Esquecer de abrir e fechar { }
Exemplo
Programa1.java:8: ‘;’ expected
public static void main(String[] args)
^
Programa1.java:11: class, interface, or enum
expected
}
^
O que pode dar errado?
Erros de Execução
Se você declarar uma classe como X, compilá-la e depois
tentar usá-la como x minúsculo, o Java te avisa:
Exception in thread "main"
java.lang.NoClassDefFoundError: X (wrong name: x)
}
Mais um exemplo
Para escrever um número, basta escrever [string]+ n
}
Mais um exemplo
public class Programa4 {
var1 = 1024;
System.out.println("var1: " + var1);
var2 = var1/2;
System.out.println(var2);
}
}
Faça suas anotações