JAVA
Evolução de JAVA
POO usando JAVA
Prof. Rafael Monteiro
Java é o nome da linguagem de programação usada
para desenvolver programas. Java é multiplataforma.
Isto quer dizer que não é necessário usar um tipo
especifico de computador, não importa se você usa
Windows, Mac, ou Unix. Na internet encontramos
pequenas aplicações em Java(Applets), que são
carregadas e executadas no browser do usuário. Esta
característica causa muita espectativa em relação ao
Java, pois espera-se que no futuro não precisaremos
mais instalar aplicativos no computador. Basta estar
conectado à Internet e acessar o programa desejado.
POO usando JAVA
Prof. Rafael
Monteiro
2
A linguagem JAVA foi projetada e implementada
por um pequeno grupo de pessoas(Green),
coordenado por James Gosling, na Sun
Microsystems em Mountain View, Califórnia, em
1991.
http://www.javasoft.com/people/jag/index.html
POO usando JAVA
Prof. Rafael
Monteiro
3
Equipe trabalhava no projeto de software para
produtos eletrônicos de consumo (software
para eletrodomésticos)
Nova geração de microcomputadores portáteis, TVs
interativas, lâmpadas interativas, etc.
Todos interconectados e com mesma interface.
PROJETO GREEN
POO usando JAVA
Prof. Rafael
Monteiro
4
1a TENTATIVA
Idéia de um protótipo de dispositivo para
comunicação, tipo controle remoto, para o controle
de aparelhos eletrodomésticos.
Sugestão inicial: C++
Orientada a objetos.
Extremamente popular.
Tentativa de desenvolver o sistema operacional
Star7 em C++.
POO usando JAVA
Prof. Rafael
Monteiro
5
Problema com LP´s existentes
C++ (e outras linguagens) não
estava desempenhando a tarefa
satisfatoriamente.
POO usando JAVA
Prof. Rafael
Monteiro
6
2a TENTATIVA
James Gosling (Sun) e equipe projetou uma nova
linguagem para manipular o Star7.
Linguagem denominada de OAK (precursora de Java)
OAK significa CARVALHO em inglês
POO usando JAVA
Prof. Rafael
Monteiro
7
2a TENTATIVA
PROJETO GREEN
Propósito de testar um novo tipo de interface do usuário
para controlar um ambiente doméstico (casa inteligente).
Videocassete,TV, luzes,telefone,etc.
*7 (Star Seven)
Computador experimental portátil, tipo controle remoto,
com interface gráfica e interativa.
Nova linguagem de programação: OAK
POO usando JAVA
Prof. Rafael
Monteiro
8
2a TENTATIVA
PROJETO GREEN
*7 (Star Seven)
DUKE – figura
*7 utilizava uma interface gráfica bastante
atraente para controlar os
eletrodomésticos.
POO usando JAVA
animada do
protótipo *7
Prof. Rafael
Monteiro
9
Protótipo do Gream Team
Dispositivo portátil, sem teclado, botões e com
uma pequena tela.
Controle se dava por toques na tela.
Interface gráfica - uma casa animada com um
guia de turismo, o mascote DUKE.
POO usando JAVA
Prof. Rafael
Monteiro
10
A Sun descobriu que o nome Oak já estava sendo
usado.
Decidem chamar esta nova linguagem de
Java
http://www.javasoft.com/hooked/languageref.html
POO usando JAVA
Prof. Rafael
Monteiro
11
JAVA ( Just Another Vague Acronym) ?!
NÃO. Inspiração na hora do cafezinho:
Café da Ilha de Java
POO usando JAVA
Prof. Rafael
Monteiro
12
Java é o nome de uma ilha do Pacífico,
onde se produz uma certa variedade de
café homônimo.
A inspiração bateu à equipe de
desenvolvimento ao saborear esse café
em uma lanchonete local.
Era extremamente apreciado por
profissionais da área de software (ainda
o é).
POO usando JAVA
Prof. Rafael
Monteiro
13
1994: Criação do HotJava
Feito totalmente em Java.
Navegador da Web que podia efetuar Downloads e
executar applets Java.
Java mostrou-se ideal para ser usada na Internet.
POO usando JAVA
Prof. Rafael
Monteiro
14
1995: Netscape Navigator 2.0 suporta Java, que incorpora
as capacidades de efetuar o download e realizar a execução de
pequenas aplicações Java, então chamadas de applets.
A Sun amplia esforços para o desenvolvimento de Java.
Criação da JavaSoft.
1996: Lançamento oficial de Java 1.02
Download gratuito pela Internet (http://www.javasoft.com)
Sun decide disponibilizar um conjunto de ferramentas de
desenvolvimento Java (JDK) “gratuitamente” para a comunidade
de software.
1997: Java toma conta da Internet
Netscape, Internet Explorer, HotJava, ...
POO usando JAVA
Prof. Rafael
Monteiro
15
Em 2002, desenvolvedores do mundo todo preferirão a linguagem
Java à C/C++ e Visual Basic. Quem confirma esse dado é a Evans
Data Corporation, instituto norte-americano de pesquisas de
mercado. Janel Garvin, vice-presidente da empresa, afirma que
mais da metade da população dos Estados Unidos usa Java e
calcula-se que esse número cresça mais 10% até o próximo ano.
A pesquisa do Evans Data Corporation também mostra que o uso
da tecnologia tem se fortalecido fora da América do Norte, onde
aproximadamente 60% dos desenvolvedores a utilizam para suas
programações.
Dados da Sun Microsystems do Brasil apontam que a procura por
cursos de Java cresceu 674%, de 2000 para 2001, com um aumento
de 30% para os cursos voltados a pessoas com pouca ou nenhuma
experiência em programação e 50% para os cursos básicos de Java.
POO usando JAVA
Prof. Rafael
Monteiro
16
Utilizada em empresas como:
IBM, Kaiser NASA, ESPN, Museu de Arte Moderna de
NY, diversos bancos, etc.
Mais de 2000 livros escritos.
Contagem recente da Java World Magazine.
POO usando JAVA
Prof. Rafael
Monteiro
17
Grande disseminação na Europa e EUA.
No Brasil, grandes empresas já adotam
JAVA, principalmente em aplicações de
Comércio Eletrônico.
POO usando JAVA
Prof. Rafael
Monteiro
18
Serviços financeiros
Home Banking, comércio seguro
Marketing e propaganda
Loja interativa, animações, multimídia
Diversão e entretenimento
Jogos multi-usuário, chat
Educação
Ensino à distância, simulações interativas
Outros
Astronomia (telescópios orbitais).
Telefonia.
Aparelhos eletroeletrônicos.
POO usando JAVA
Prof. Rafael
Monteiro
19
British Telecom (empresa de telefonia inglesa) -ServiceView;
MountSinai (hospital de Nova York) emite certificados de óbitos
usando JAVA;
VISA Internacional irá substituir as tarjas magnéticas de seus
cartões por chips com tecnologia JAVA;
American Express (serviços financeiros);
CSX (maior companhia ferroviária dos EUA) montou rede JAVA;
POO usando JAVA
Prof. Rafael
Monteiro
20
J.P. Morgan (banco de investimentos);
Hong Kong Telecom (operações de rede de TV interativa);
Fannie Mac (maior empresa americana de hipotecas);
Banco Itaú usando JAVA em sua Intranet;
Banco do Brasil anunciou migração para JAVA;
UNIVERSIDADES (no Brasil: UNB, UNICAMP, UFPE, entre outras).
POO usando JAVA
Prof. Rafael
Monteiro
21
Prós
Escreva uma vez, execute em qquer lugar
Escrever somente para a plataforma JAVA
Suporte nos browsers da Web, TVs, PDAs e celulares.
Segurança
Permite que usuários descarreguem código não confiável em
uma rede e o executem em um ambiente seguro:
Não pode infectar o sistema host com vírus
Não consegue ler ou gravar arquivos a partir do disco rígido, etc.
a inexistência de ponteiros evita o acesso direto a memória
Programação centrada em rede
Slogan corporativo da Sun: “ A rede é o computador”
Suporte a arquitetura cliente/servidor e multicamadas.
POO usando JAVA
Prof. Rafael
Monteiro
22
Prós
Programas dinâmicos e extensíveis
Código Java organizado em unidades modulares orientadas por objeto
chamadas classes.
Cada classe é armazenada em um arquivo separado e somente
descarregadas para o interpretador Java qdo necessárias.
O código torna-se uma coleção interativa de componentes
independentes de software.
Internacionalização
Única linguagem de programação que suporta Unicode.
Eficiência do programador e tempo de comercialização
Conjunto de APIs (Application Programming Interface) poderoso e bem
projetado.
POO usando JAVA
Prof. Rafael
Monteiro
23
Torna as páginas da Web mais interessantes
Som, vídeo, animações, relógios, contadores
Nova plataforma
Pode-se criar uma grande variedade de aplicações.
planilhas eletrônicas, processadores de texto, jogos,
salas de bate-papo, programas financeiros, gerência
de recursos humanos, etc.
POO usando JAVA
Prof. Rafael
Monteiro
24
Características Importantes
Portabilidade (Independente de plataforma – Os programas
Java são compilados para uma forma intermediaria de código
denominada Bytecodes)
Familiaridade (Similar ao C, C++)
Sem Ponteiros (O Java não permite a manipulação direta de
endereços na memória nem exige que os objetos criados
sejam destruídos livrando o programador de uma tarefa
complexa)
POO usando JAVA
Prof. Rafael
Monteiro
26
Características Importantes
Distribuição (No caso dos applets, os bytecodes da Java são
tranferidos em tempo de execução, então o usuário sempre
estará utilizando o código mais recente. Isto resolve todo tipo
de pesadelo de distribuição que tradicionalmente as empresas
tem de enfrentar)
Segurança (a Java foi planejada para verificar e executar
programas binários em um ambiente controlado. Isto protege
o usuário final de vírus e violações de segurança. Toda vez que
um applet Java é transferido para o browser do usuário recebe
um verificação de seu byte-code. Isto significa que se o
tamanho do pacote de código for alterado pelo caminho, o
programa será abortado. Esta checagem protege contra
Cavalos de Tróia e outras viroses que forem adicionadas aos
Java bytecodes.)
Orientada a objetos (baseada no modelo de Smalltalk e
Simula67)
POO usando JAVA
Prof. Rafael
Monteiro
27
Carga Dinâmica de Código
Programas não monolíticos: cada classe é armazenada
independentemente e pode ser carregada somente quando for
utilizada.
Concorrência
Permite múltiplas linhas de execução (threads) num mesmo
programa e oferece primitivas para sincronizá-las.
Pilha de Execução
Idêntica a outras OOPLs (cada thread numa pilha própria)
Coleta Automática de Lixo
Desalocação de memória (objetos) automática.
POO usando JAVA
Prof. Rafael
Monteiro
28
Tratamento de Exceções
Java institui um método de detecção de erros conhecido com
“tratamento de exceções”.
objetivo  tratar erros de software ou hardware
como  separando o código de tratamento de erros do código normal
da aplicação
Modelo de Objetos
Incorpora todos os principais conceitos
Recursos de Rede
Extensa biblioteca de rotinas que facilitam a cooperação com protocolos
TCP/IP, como HTTP e FTP.
Maior facilidade de criação de conexões de rede do que C ou C++.
Aplicações Java podem abrir e acessar objetos na rede através das URLs.
POO usando JAVA
Prof. Rafael
Monteiro
29
A concepção da Máquina Virtual Java é
fortemente orientada a pilhas. As principais
funções da pilha Java são:
Armazenar parâmetros para os bytecodes e guardar
os resultados decorrentes da execução dos mesmos;
Passar parâmetros para os métodos e armazenar os
valores retornados pelos mesmos;
Manter o estado dos métodos que foram invocados.
POO usando JAVA
Prof. Rafael
Monteiro
30
Ambiente JAVA ...
POO usando JAVA
Prof. Rafael
Monteiro
31
Download

POO_aula1_evolucao