Prof. Alessandro Borges
Linguagem de Programação II
Programação Orientada a Objetos
Introdução - Java
Tópicos
Java
O que é Java?
História
Vantagens
O que pode fazer
Arquitetura
Plataformas Java
Bibliotecas de classes
Compilando e executando em Java 2
O que é Java?
3
O que é Java
Uma linguagem de programação orientada a objetos
Procura manter o poder computacional de C/C++, agregando características de segurança, robustez e portabilidade
Oferece independência de plataforma, permitindo que os programas rodem em diferentes sistemas
operacionais
Elimina o uso de ponteiros e o controle de alocação/liberação de memória
Permite o uso de Threads
4
História
5
Java - História
Desenvolvida e mantida pela SUN
http://java. sun.com.
Java pode ser vista como uma união de tecnologias, que herda características de muitas outras linguagens de programação.
Proposta:
Linguagem a ser usada em pequenos dispositivos (ex: TV, micro- ondas, geladeira, DVD players, etc.)
6
Java - História
1991 – Sun cria o Green Team para desenvolver inovações tecnológicas sob o comando de James Gosling
Linguagem baseada em C e C++
Chamada de Oak (carvalho) pelo seu criador
Homenagem a uma árvore que via pela janela de seu escritório
Descobriu-se já existir uma linguagem com esse nome
Mais tarde, em uma visita da equipe da Sun a uma cafeteria, viu- se o nome Java, uma ilha da Indonésia origem de um tipo de café
O nome foi sugerido e pegou
Proposta da criação da máquina virtual para pequenos dispositivos
7
Java - História
Fracasso na busca de parceria com grandes fabricantes de eletrônicos em 1994
Surgimento e crescimento da Web
Uso para rodar pequenas aplicações (applets) nos navegadores Web (browsers)
Linguagem única que rodaria em diferentes navegadores e sistemas operacionais
Lançamento do Java 1.0
Páginas com conteúdo dinâmico
Browser passou a poder realizar operações, e não apenas renderizar páginas HTML
8
Java - História
1995 – Sun anuncia Java oficialmente
Gerou interesse imediato devido ao grande interesse pela WWW.
Lançado inicialmente para rodar applets, ganhou grande importância também no lado servidor.
2009 – Oracle compra a Sun
9
Java - História
Grupos de usuários criados para
disseminar os
conhecimentos da linguagem
Ex: GUJ –
www.guj.com.br 10
Vantagens
11
Java - Vantagens
Projetada para atender às necessidades dos
desenvolvedores de aplicações em um ambiente distribuído e heterogêneo
Orientação a objetos
Portabilidade
Grande número de bibliotecas de classes já testadas
Coleta automática de lixo (Garbage Collector)
12
Java - Vantagens
Robustez
Mecanismos de tratamento de exceções
Aplicações não abortam, mesmo rodando sob condições anormais
Necessidade de pouco espaço e pouca memória
Arquitetura neutra e portável
Byte-code gerado pode ser transportado entre plataformas distintas
Não é necessário recompilar o programa
Multithread
13
O que pode fazer
14
Java – O que pode fazer
Applets
Programas que podem executar em browsers com suporte a Java
Servlets
Executam em servidores Java
Programas standalone
Não executados em browsers
API dividida em pacotes (packages) de componentes de software
Ampla gama de funcionalidades
API central (Core API) incluída em qualquer implementação da plataforma Java.
15
Arquitetura
16
Java - Arquitetura
Pode ser vista com duas definições:
Linguagem de programação
Plataforma
Oferece
Gabage Collector (Coletor de lixo)
Multithreading
Tratamento de exceções
Orientação a objetos 17
Java - Arquitetura
Linguagem de programação
Linguagem de alto nível
Programa compilado (p/ byte-code) e interpretado (pela MV) 18
Java - Arquitetura
Plataforma Java
Plataforma de software que executa sobre outras plataformas baseadas em hardware e software (sistema operacional)
Possui dois componentes:
A Máquina Virtual Java (JVM)
A API (Application Programming InterfaceI – Interface de Programação de Aplicação)
Coleção de componentes de software que oferecem funcionalidades úteis
Agrupada em bibliotecas (packages) de componentes relacionados
19
Java - Arquitetura
Gabage Collector (Coletor de lixo)
Mecanismo automático de gerenciamento de memória
Verifica e libera automaticamente memória que não está sendo usada
Multithreading
Permite o desenvolvimento de aplicações capazes de executar múltiplas rotinas concorrentemente
20
Java - Arquitetura
Tratamento de exceções
Tratamento de situações excepcionais sem a interrupção do programa
Orientação a objetos
Com exceção dos tipos primitivos de dados, tudo são classes ou instâncias de classes
21
Java - Arquitetura
Máquina Virtual Java (JVM – Java Virtual Machine)
Independência de sistema operacional
Uma JVM para cada sistema operacional
Interpreta bytecodes gerados pelo compilador
Fornece definições para:
Conjuntos de instruções (CPU) e de registradores
Formato do arquivo class
Pilha de execução e pilha para garbage collector
Área de memória
22
Java - Arquitetura
Máquina Virtual Java (JVM – Java Virtual Machine)
Código fonte Java Compilador
Bytecode Java (.class) JVM SO1
SO1
JVM SO2 SO2
JVM SO3 SO3
23
Plataformas Java
24
Plataformas Java
J2SE (Java Standard Edition)
É a base da plataforma
Voltada para PC’s e servidores
Inclui ambiente de execução e bibliotecas comuns
J2EE (Java Enterprise Edition)
Voltada para o desenvolvimento de aplicações corporativas e para a Internet
J2ME (Java Micro Edition)
Voltada para o desenvolvimento de aplicações para dispositivos móveis e embarcados
25
Bibliotecas de classes
26
Bibliotecas de classes
Programas Java consistem em partes chamadas classes
Classes consistem em partes chamadas métodos
Realizam tarefas e retornam informações ao final
Bibliotecas possuem ricas coleções de classes prontas e disponíveis para uso
Bibliotecas também são conhecidas como Java APIs
Applications Programming Interfaces (Interfaces de Programação de Aplicativos)
Duas partes para aprender o “mundo Java”
Linguagem Java – para programar as classes
Utilizar as classes presentes nas bibliotecas de classes Java
27
Compilando e executando em Java
28
Compilando e executando em Java
O código fonte (.java) é compilado usando o javac (Java Compiler) gerando o arquivo com o bytecode (.class)
A Java Virtual Machine (JVM) interpreta os bytecodes produzidos pelo compilador
O Just In Time (JIT) converte, em tempo de execução, o bytecode para a linguagem de máquina segundo o sistema operacional (SO) em uso
O SO coloca o programa em execução
Código fonte
.(java) Bytecodes
.(class) JVM
JIT SO
29
Prof. Alessandro Borges