JAVA
Evoluo do Java
Prof. M. Sc. Edgar Gurgel
Linguagem Java - Conceito
Java o nome da linguagem de programao usada para
desenvolver programas.
programas Java multiplataforma.
multiplataforma Isto
quer dizer que no necessrio usar um tipo especifico
de computador, no importa se voc usa Windows, Mac,
ou Unix. Na internet encontramos pequenas aplicaes
em Java(Applets), que so carregadas e executadas no
browser do usurio. Esta caracterstica causa muita
p
em relao
ao Java,, p
pois espera-se
p
que no
q
espectativa
futuro no precisaremos mais instalar aplicativos no
computador. Basta estar conectado Internet e acessar
o programa desejado.
POOII
Linguagem Java - Histrico
A linguagem JAVA foi projetada e implementada
por um pequeno grupo de pessoas(Green),
coordenado por James Gosling, na Sun
Microsystems em Mountain View, Califrnia, em
1991.
[Link]
POOII
Linguagem Java - Histrico
Equipe trabalhava no projeto de software para
produtos eletrnicos de consumo (software
para eletrodomsticos)
Nova gerao de microcomputadores portteis, TVs
interativas, lmpadas interativas, etc.
Todos interconectados e com mesma interface.
PROJETO GREEN
POOII
Linguagem Java - Histrico
1a TENTATIVA
Idia de um prottipo de dispositivo para comunicao,
tipo controle remoto, para o controle de aparelhos
eletrodomsticos.
Sugesto inicial: C++
Orientada a objetos.
Extremamente popular.
popular
Tentativa de desenvolver o sistema operacional Star7
em C++.
POOII
Linguagem Java - Histrico
Problema com LP
LPs
s existentes
C++ (e outras linguagens) no estava
desempenhando
a
tarefa
satisfatoriamente.
POOII
Linguagem Java - Histrico
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 ingls
POOII
Linguagem Java - Histrico
2a TENTATIVA
PROJETO GREEN
Propsito de testar um novo tipo de interface do usurio para
controlar um ambiente domstico (casa inteligente).
Videocassete,TV, luzes,telefone,etc.
*7 (St
(Star S
Seven))
Computador experimental porttil, tipo controle remoto, com
interface grfica e interativa.
Nova linguagem de programao: OAK
POOII
Linguagem Java - Histrico
2a TENTATIVA
PROJETO GREEN
*7 (Star Seven)
*7 utilizava uma interface grfica bastante
atraente para controlar os
eletrodomsticos.
DUKE figura
animada do
prottipo *7
POOII
Linguagem Java - Histrico
Prottipo do Gream Team
Dispositivo porttil, sem teclado, botes e
com uma pequena tela.
Controle se dava por toques na tela.
Interface grfica - uma casa animada com
guia de turismo, o mascote DUKE.
um g
POOII
10
Linguagem Java - Histrico
A Sun descobriu que o nome Oak j estava sendo
usado.
usado
Decidem chamar esta nova linguagem de
Java
[Link]
POOII
11
Por que o nome Java?
JAVA ( Just
J t Another
A th Vague
V
A
Acronym)
) ?!
NO. Inspirao na hora do cafezinho:
Caf da Ilha de Java
POOII
12
Por que o nome Java?
Java o nome de uma ilha do Pacfico, onde se
produz uma certa variedade de caf homnimo.
homnimo
A inspirao bateu equipe de desenvolvimento ao
saborear esse caf em uma lanchonete local.
Era extremamente apreciado por profissionais da rea
de software (ainda o ).
)
POOII
13
Linguagem Java - Histrico
1994: Criao do HotJava
Feito totalmente em Java.
Navegador da Web que podia efetuar Downloads e
executar applets Java.
Java mostrou-se
mostrou se ideal para ser usada na
Internet.
POOII
Prof. Edgar Gurgel
14
Linguagem Java - Histrico
1995: Netscape Navigator 2.0 suporta Java, que incorpora as
capacidades de efetuar o download e realizar a execuo de pequenas
aplicaes Java, ento chamadas de applets.
A Sun amplia esforos para o desenvolvimento de Java.
Criao da JavaSoft.
1996: Lanamento oficial de Java 1.02
Download gratuito pela Internet ([Link]
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, ...
POOII
15
Linguagem Java - Histrico
Em 2002, desenvolvedores do mundo todo preferiro a linguagem Java
C/C++ e Visual Basic. Quem confirma esse dado a Evans Data
Corporation instituto norte-americano
Corporation,
norte americano de pesquisas de mercado.
mercado Janel
Garvin, vice-presidente da empresa, afirma que mais da metade da
populao dos Estados Unidos usa Java e calcula-se que esse nmero
cresa mais 10% at o prximo ano.
A pesquisa do Evans Data Corporation tambm mostra que o uso da
tecnologia tem se fortalecido fora da Amrica do Norte, onde
aproximadamente 60% dos desenvolvedores a utilizam para suas
programaes.
programaes
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
experincia em programao e 50% para os cursos bsicos de Java.
POOII
16
Linguagem Java - Histrico
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.
POOII
17
Quem est usando Java?
Grande disseminao na Europa e EUA.
EUA
No Brasil, grandes empresas j adotam JAVA,
principalmente em aplicaes de Comrcio
Eletrnico.
POOII
18
Quem est usando Java?
Servios financeiros
Home Banking, comrcio seguro
M k ti
Marketing
e propaganda
d
Loja interativa, animaes, multimdia
Diverso e entretenimento
Jogos multi-usurio, chat
Educao
Ensino distncia,
distncia simulaes interativas
Outros
Astronomia (telescpios orbitais).
Telefonia.
Aparelhos eletroeletrnicos.
POOII
19
Quem est usando Java?
British Telecom (empresa de telefonia inglesa) - ServiceView;
MountSinai (hospital de Nova York) emite certificados de bitos
usando JAVA;
VISA Internacional ir substituir as tarjas magnticas de seus
cartes por chips com tecnologia JAVA;
American Express (servios financeiros);
CSX (maior companhia ferroviria dos EUA) montou rede JAVA;
POOII
20
10
Quem est usando Java?
J.P.
Morgan
(banco
de
investimentos);
Hong Kong Telecom (operaes de rede de TV interativa);
Fannie Mac (maior empresa americana de hipotecas);
Banco Ita usando JAVA em sua Intranet;
Banco do Brasil anunciou migrao para JAVA;
UNIVERSIDADES (no Brasil: UNB, UNICAMP, UFPE, entre
outras).
POOII
21
Por que Java?
Vantagens
Escreva uma vez,
vez execute em qualquer lugar
Escrever somente para a plataforma JAVA
Suporte nos browsers da Web, TVs, PDAs e celulares.
Segurana
Permite que usurios descarreguem cdigo no confivel em uma
rede e o executem em um ambiente seguro:
a inexistncia de ponteiros evita o acesso direto a memria
P
Programao
centrada
t d em rede
d
Slogan corporativo da Sun: A rede o computador
Suporte a arquitetura cliente/servidor e multicamadas.
POOII
22
11
Por que Java?
Vantagens
Programas
g
dinmicos e extensveis
Cdigo Java organizado em unidades modulares orientadas por objeto
chamadas classes.
Cada classe armazenada em um arquivo separado e somente
descarregadas para o interpretador Java quando necessrias.
O cdigo torna-se uma coleo interativa de componentes independentes
de software.
Internacionalizao
nica linguagem
g g
de p
programao
g
q
que suporta
p
Unicode.
Eficincia do programador e tempo de comercializao
Conjunto de APIs (Application Programming Interface) poderoso e bem
projetado.
POOII
23
Por que Java?
Torna as pginas da Web mais interessantes
S
Som,
vdeo,
d
animaes,
i
relgios,
l i
contadores
t d
Nova plataforma
Pode-se criar uma grande variedade de aplicaes.
planilhas eletrnicas, processadores de texto, jogos, salas
de bate
papo, programas financeiros,
bate-papo
financeiros gerncia de recursos
humanos, etc.
POOII
24
12
Por que Java?
Desvantagens
Desempenho
Eficincia (cdigo interpretado: bytecode)
Necessidade de uma mquina virtual
Por ser interpretada, torna-se mais lenta, no podendo
ser comparada velocidade de execuo de cdigo
nativo.
Garbage Collection
A rotina para manter o controle dos objetos que esto
sendo referenciados durante a execuo, exige mais do
processador hospedeiro.
POOII
25
Por que Java?
Caractersticas Importantes
p
Portabilidade
(Independente de plataforma Os programas Java
so compilados para uma forma intermediaria de cdigo denominada
Bytecodes)
Familiaridade (Similar ao C, C++)
Sem Ponteiros (O Java no permite
a manipulao direta de
endereos na memria nem exige que os objetos criados sejam
destrudos livrando o programador de uma tarefa complexa)
POOII
26
13
Por que Java?
Caractersticas Importantes
Distribuio
(No caso dos applets, os bytecodes da Java so
tranferidos em tempo de execuo, ento o usurio sempre estar
utilizando o cdigo mais recente. Isto resolve todo tipo de pesadelo de
distribuio que tradicionalmente as empresas tem de enfrentar)
Segurana
(Java foi planejada para verificar e executar programas
binrios em um ambiente controlado. Isto protege o usurio final de
vrus e violaes de segurana. Toda vez que um applet Java
transferido para o browser do usurio recebe um verificao de seu
byte-code.
y
Isto significa
g
que se o tamanho do p
q
pacote de cdigo
g for
alterado pelo caminho, o programa ser abortado. Esta checagem
protege contra Cavalos de Tria e outras viroses que forem
adicionadas aos Java bytecodes.)
Orientada a objetos
(baseada no modelo de Smalltalk e
Simula67)
POOII
27
Conceitos Gerais
Carga Dinmica de Cdigo
Programas no monolticos: cada classe armazenada
independentemente e pode ser carregada somente quando for
utilizada.
Concorrncia
Permite mltiplas linhas de execuo (threads) num mesmo
programa e oferece primitivas para sincroniz-las.
Pilha de Execuo
Idntica a outras OOPLs (cada thread numa pilha prpria)
Coleta Automtica de Lixo
Desalocao de memria (objetos) automtica.
POOII
28
14
Conceitos Gerais
Tratamento de Excees
Java institui um mtodo de deteco de erros conhecido com tratamento de
excees.
objetivo tratar erros de software ou hardware
como separando o cdigo de tratamento de erros do cdigo normal da
aplicao
Modelo de Objetos
Incorpora todos os principais conceitos
R
Recursos
d Rede
de
R d
Extensa biblioteca de rotinas que facilitam a cooperao com protocolos
TCP/IP, como HTTP e FTP.
Maior facilidade de criao de conexes de rede do que C ou C++.
Aplicaes Java podem abrir e acessar objetos na rede atravs das URLs.
POOII
29
A pilha Java
A concepo da Mquina Virtual Java fortemente
orientada a pilhas. As principais funes da pilha
Java so:
Armazenar parmetros para os bytecodes e guardar os
resultados decorrentes da execuo dos mesmos;
Passar parmetros para os mtodos e armazenar os
valores retornados pelos mesmos;
Manter o estado dos mtodos que foram invocados.
POOII
30
15