8/7/2019 Aula 01 - as Da Linguagem JAVA
1/116
Mestre em Computao de Alto Desempenho pela UFRJ
Especialista em Banco de DadosAnalista Web
Daves Martins
Plataformas da Linguagem JAVA:
Standard, Enterprise e Micro Edition
8/7/2019 Aula 01 - as Da Linguagem JAVA
2/116
Objetivos desse Mdulo
Mostrar a histria do Java
Principais Caracterstica
Linha do tempoPlataforma Java
JSE, JEE e JME
Principais Aplicaes
Certificao
Ambiente de Desenvolvimento
8/7/2019 Aula 01 - as Da Linguagem JAVA
3/116
Bibliografia
Livros Java: Como Programar (Harvey M. Deitel)
Use a Cabea! Java (Kathy Sierra)
Sites
www.sun.com.br
www.netbeans.org www.eclipse.org
8/7/2019 Aula 01 - as Da Linguagem JAVA
4/116
Histria do Java
Java foi criado em 1991 por James Gosling daSun Microsystems. Inicialmente chamada OAK
(Carvalho, arvore que ele via da janela de seu
escritorio), em homenagem uma rvore de
janela do Gosling, seu nome foi mudado para
Java devido a existncia de uma linguagem
com o nome OAK.
8/7/2019 Aula 01 - as Da Linguagem JAVA
5/116
Histria do Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
6/116
Histria do Java
A motivao original do Java era a necessidadede uma linguagem independente de plataforma
que podia ser utilizada em vrios produtos
eletrnicos, tais como torradeiras e
refrigeradores. Um dos primeiros projetos
desenvolvidos utilizando Java era um controle
remoto pessoal chamado *7 (Star Seven).
8/7/2019 Aula 01 - as Da Linguagem JAVA
7/116
Histria do Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
8/116
Histria do Java
o nome java foi sugerido por acaso quando aequipe visitava a cafeteria (java era o nome de
uma cidade de origem de um caf importado).
Durante algum tempo o projeto passou pordificuldades por causa da falta de mercado,
pois o mercado produtos eletrnicos que era o
principal foco da linguagem no estava
crescendo como esperado, porm apos agrande popularidade alcanada pela internet
em 1993
8/7/2019 Aula 01 - as Da Linguagem JAVA
9/116
Histria do Java
a Sun viu o grande potencial que o java tinhapara criar paginas mais dinmicas. A Sun
anunciou formalmente o Java em 1995, e hoje
uma das linguagens mais populares do
mundo, sendo usada para construir paginas
web, sistemas para PC, celulares, palms e todotipo de dispositivos moveis.
8/7/2019 Aula 01 - as Da Linguagem JAVA
10/116
Principais Caractersticas da
Linguagem Java
A linguagem Java foi projetada tendo em vista os
seguintes objetivos:
Orientao a objeto - Baseado no modelo de Smalltalk
e Simula67; Portabilidade - Independncia de plataforma - "write
once run anywhere";
Recursos de Rede - Possui extensa biblioteca de
rotinas que facilitam a cooperao com protocolosTCP/IP, como HTTP e FTP;
Segurana - Pode executar programas via rede comrestries de execuo;
8/7/2019 Aula 01 - as Da Linguagem JAVA
11/116
Principais Caractersticas da
Linguagem Java
Alm disso, podem-se destacar outras vantagens apresentadas pela
linguagem:
Sintaxe similar a Linguagem C/C++.
Facilidades de Internacionalizao;
Simplicidade na especificao, tanto da linguagem como do "ambiente" de execuo(JVM);
distribuda com um vasto conjunto de bibliotecas (ou APIs);
Possui facilidades para criao de programas distribudos e multitarefa (mltiplaslinhas de execuo num mesmo programa);
Desalocao de memria automtica por processo de coletor de lixo (garbage
collector); Ampla quantidade de frameworks.
Grande Comunidade Ajudando no desenvolvimento da Linguagem
8/7/2019 Aula 01 - as Da Linguagem JAVA
12/116
Platafor a ava -ali ha o t o
1995
Maro - nascimento oficial do Java. James Goslings, da SunMicrosystems.
Maio - A tecnologia Java oficialmente anunciada no eventoSunWorld.
1996
Janeiro - Release do JDK 1.0.
Maio - realizado o primeiro JavaOne, conferencia mxima da
tecnologia Java. Apresentados a tecnologia JavaBeans e Servlets. Outubro - anunciada a API Java Card.
Dezembro - release do JDK 1.1 Beta.
8/7/2019 Aula 01 - as Da Linguagem JAVA
13/116
Platafor a ava -ali ha o t o
1997
Janeiro - release do JavaBeans Development Kit.
Fevereiro - release do JDK 1.1.
Maro - release do Java Servlet Developers Kit e anunciada a JNDIAPI.
Abril - anunciada a tecnologia Enterprise JavaBeans (EJB), almde incluir a Java Foundation Classes (JFC) na plataforma Java.
1998
Maro - inicio do projeto JFC/Swing. Junho - a empresa Visa lana o primeiro smart card basedo em
Java Card.
8/7/2019 Aula 01 - as Da Linguagem JAVA
14/116
Platafor a ava -ali ha o t o
1999
Fevereiro - release do Java 2 Platform (Java 1.2).
Junho - anuncio da "diviso" da tecnologia Java em trsedies (J2SE, J2EE, J2ME).
2000
Maio - release da J2SE v. 1.3.
8/7/2019 Aula 01 - as Da Linguagem JAVA
15/116
Platafor a ava -ali ha o t o
2001
Fevereiro - anunciada a J2EE Connector Architecture.
Maro - release do J2EE Patterns Catalog e da tecnologia JavaWeb Start
Abril - release do J2EE 1.3 beta, contendo as especificaes EJB2.0, JSP 1.2 e Servlet 2.3.
2002
Janeiro - release 1 do Java Web Services Developer Pack (WSDP).
Dezembro - release do J2EE 1.4 Beta.
8/7/2019 Aula 01 - as Da Linguagem JAVA
16/116
8/7/2019 Aula 01 - as Da Linguagem JAVA
17/116
Platafor a ava -ali ha o t o
2006
Nova nomenclatura JEE (Java Enterprise Edition)
JSE (Java Standard Edition)
JME (Java Micro Edition)
8/7/2019 Aula 01 - as Da Linguagem JAVA
18/116
Platafor a ava -ali ha o t o
2006 verso final da plataforma Java SE 6.0 com uma srie de avanos. A
Java SE 6.0 (Mustang) incluiu avanos em diversas tecnologias:
framework de colees, deployment (Java Web Start e Java Plug-in),suporte a E/S, arquivos JAR, Java DB (Apache Derby), JavaManagement Extensions (JMX), Java Platform Debugger Architecture
(JPDA), pacotes java.lang e java.util, monitoramento e gerenciamento
da plataforma Java, suporte oficial ao JConsole, caractersticas de
rede, desempenho, reflexo, Remote Method Invocation (RMI),
Scripting, segurana, serializao de objetos, Swing e a Java VirtualMachine (JVM).
8/7/2019 Aula 01 - as Da Linguagem JAVA
19/116
Platafor a ava -ali ha o t o
2010 A Java SE 7.0 (Dolphin)
8/7/2019 Aula 01 - as Da Linguagem JAVA
20/116
Platafor a ava
Existe duas maneiras de se traduzir um
programa: compilao e interpretao
8/7/2019 Aula 01 - as Da Linguagem JAVA
21/116
Platafor a ava
8/7/2019 Aula 01 - as Da Linguagem JAVA
22/116
Platafor a ava
Compilao:
Execuo mais rpida;
Somente o executvel carregado emmemria.
Interpretao:
Portabilidade.
Compilao + Interpretao = Hbrido
Une as vantagens de ambos.
8/7/2019 Aula 01 - as Da Linguagem JAVA
23/116
Platafor a ava
8/7/2019 Aula 01 - as Da Linguagem JAVA
24/116
JSE,JEE JME: a br ve
expli ao
Java uma linguagem de programao que permiteo desenvolvimento de aplicaes para uma srie deplataformas. possvel ter software Java desde de
dispositivos pequenos, como telefones celulares,at computadores de grande porte, como osmainframes, por exemplo. Devido a essacaracterstica, a linguagem Java conta com trsconhecidos ambientes de desenvolvimento:
o JSE (ou J2SE), o JEE (ou J2EE) e o JME (J2ME).
8/7/2019 Aula 01 - as Da Linguagem JAVA
25/116
JSE,JEEeJME: a breve
expli ao
importante ressaltar que, a partir de 2006,passou-se a utilizar uma nova nomenclatura
para essas plataformas. O nmero 2 foi retirado
das siglas que as representam. Assim, estaspassaram a serJSE, JEE e JME.
8/7/2019 Aula 01 - as Da Linguagem JAVA
26/116
JSE,JEEeJME: a breve
expli ao
JSE
O JSE (Java Standard Edition) o ambiente dedesenvolvimento mais utilizado. Isso porque seu uso
voltado a PCs e servidores, onde h bem mais necessidadede aplicaes. Alm disso, pode-se dizer que essa a
plataforma principal, j que, de uma forma ou de outra, o
JEE e o JME tem sua base aqui. Pode-se dizer tambm que
esses ambientes de desenvolvimento so verses
aprimoradas do JSE para as aplicaes a que se propem.
8/7/2019 Aula 01 - as Da Linguagem JAVA
27/116
JSE,JEEeJME: a breve
expli ao
JSE
A verso final da plataforma Java SE 6.0 (Mustang) foi anunciada em 11de dezembro de 2006 pela Sun Microsystems, com uma srie de avanos.
8/7/2019 Aula 01 - as Da Linguagem JAVA
28/116
JSE,JEEeJME: a breve
expli ao
JSE
A Java SE 7.0 (Dolphin) est planejada para ser lanada como umasrie de novidades, das quais vale citar:
extenso na linguagem de programao Java com novas construes(superpacotes) que permitem uma organizao modular hierrquica;
suporte a linguagens dinmicas;
simplificao do desenvolvimento de aplicaes GUI com Swing;
novas APIs para E/S;
mapeamento bidirecional com a Java Persistence API; definio de novos marcadores e mecanismos de documentao para o
Javadoc;
diversas propostas de avanos na linguagem Java;
8/7/2019 Aula 01 - as Da Linguagem JAVA
29/116
JSE,JEEeJME: a breve
expli ao
8/7/2019 Aula 01 - as Da Linguagem JAVA
30/116
JSE,JEEeJME: a breve
expli ao
JEE
O JEE (Java Enterprise Edition) a plataforma Java voltadapara redes, internet, intranets e afins. Assim, ela contm
bibliotecas especialmente desenvolvidas para o acesso aservidores, a sistemas de e-mail, a banco de dados, etc.
Por essas caractersticas, o JEE foi desenvolvido para
suportar uma grande quantidade de usurios simultneos.
A plataforma JEE contm uma srie de especificaes,cada uma com funcionalidades distintas. Entre elas, tem-se:
Implementao de arquiteturas orientadas a servios (SOA)
coorporativas e da prxima gerao de aplicaes Web
8/7/2019 Aula 01 - as Da Linguagem JAVA
31/116
JSE,JEEeJME: a breve
expli ao
JEE
- JSP (Java ServerPages), um tipo de servidor Web.Grossamente falando, servidores Web so as aplicaes
que permitem a voc acessar um site na internet; - Servlets, para o desenvolvimento de aplicaes Web, isto
, esse recurso "estende" o funcionamento dos servidores
Web, permitindo a gerao de contedo dinmico nos sites.
8/7/2019 Aula 01 - as Da Linguagem JAVA
32/116
JSE,JEEeJME: a breve
expli ao
JME
O JME (Java Micro Edition) o ambiente dedesenvolvimento para dispositivos mveis ou portteis,
como telefones celulares e palmtops. Como a linguagemJava j era conhecida e a adaptao ao JME no
complicada, logo surgiram diversos tipos de aplicativos para
tais dispositivos, como jogos e agendas eletrnicas. As
empresas saram ganhando com isso porque, desde que
seus dispositivos tenham uma JVM (Java Virtual Machine -Mquina Virtual Java), possvel, com poucas
modificaes, implementar os aplicativos em qualquer
aparelho, sendo o nico limite a capacidade do hardware.
8/7/2019 Aula 01 - as Da Linguagem JAVA
33/116
JSE,JEEeJME: a breve
expli ao
JME
A plataforma JME contm configuraes e bibliotecastrabalhadas especialmente para a atuao em dispositivos
portteis. Assim, o desenvolvedor tem maior facilidade paralidar com as limitaes de processamento e memria, por
exemplo. Um exemplo disso a configurao chamada
CLDC (Connected Limited Device Configuration), destinadaa dispositivos com recursos de hardware bastantelimitados, como processadores de 16 bits e memrias com
512 KB de capacidade. Essa configurao contm uma
JVM e um conjunto bsico de bibliotecas que permite o
funcionamento da aplicao Java em dispositivos com tais
caractersticas.
8/7/2019 Aula 01 - as Da Linguagem JAVA
34/116
JSE,JEEeJME: a breve
expli ao
8/7/2019 Aula 01 - as Da Linguagem JAVA
35/116
GARBAGE COLLECTOR
Em Java, os programadores no necessitam preocupar-se com ogerenciamento de memria como em C++. Em C++, todo bloco de
memria alocado dinamicamente (com new, malloc ou funo similar)deveria ser liberado quando no fosse mais usado (com free, delete e
parentes prximos).
Isso acarretava diversos problemas mesmo ao programador maisexperiente, que tinha que manter sempre um controle das reas de
memria alocadas para poder liber-las em seguida.
8/7/2019 Aula 01 - as Da Linguagem JAVA
36/116
GARBAGE COLLECTOR
Java, ao contrrio, utiliza-se de um conceito j explorado por Smalltalk,que o de garbage collection (coleta de lixo).
Sua funo a de varrer a memria de tempos em tempos, liberandoautomaticamente os blocos que no esto sendo utilizados.
Se por um lado isso pode deixar o aplicativo um pouco mais lento, pormanter uma thread paralela que dura todo o tempo de execuo do
programa, evita problemas como referncias perdidas e avisos de falta
de memria quando sabe-se que h megas e megas disponveis namquina.
8/7/2019 Aula 01 - as Da Linguagem JAVA
37/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
38/116
Certifi adoSunparaaPlatafor a
Java
Associado Certificado Sun para a Plataforma Java (SCJA)
Esta certificao representa a entrada ideal para uma carreira de
desenvolvimento de aplicativos ou de gerenciamento de projetos desoftware usando tecnologias Java. Ela valida conhecimentos bsicossobre conceitos orientados a objetos (OO), a linguagem de programao
Java e conhecimentos gerais sobre plataformas e tecnologias Java.
A SCJA uma certificao de conhecimento geral da plataforma um pouco
de Java ME, SE e EE e um pouco de UML, voltada para gerentes,
lderes ou analista que no trabalham diretamente com o cdigo.
8/7/2019 Aula 01 - as Da Linguagem JAVA
39/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
40/116
Certifi adoSunparaaPlatafor a
Java
Programador Certificado Sun para a Plataforma Java (SCJP)
Esta certificao de base destina-se a programadores que
estejam interessados em demonstrar proficincia nosfundamentos da linguagem de programao Java. Para
obter esta certificao, o candidato deve concluir o exame
com xito. Para fazer este exame, no necessrio ser
Associado Certificado Sun para a Plataforma Java.
8/7/2019 Aula 01 - as Da Linguagem JAVA
41/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
42/116
Certifi adoSunparaaPlatafor a
Java
Desenvolvedor Certificado Sun para a Plataforma Java
(SCJD)
Esta certificao baseada no desempenho destina-se a
desenvolvedores que estejam interessados em demonstrarproficincia avanada na linguagem de programao Java
usando a plataforma Java SE. Para obter esta certificao,
o candidato deve concluir com xito dois elementos: uma
atribuio de programao e um exame de redao. Antes
de tentar a certificao, o candidato deve obter a
certificao Programador Certificado Sun (SCJP), qualquer
edio. Para fazer este exame, no necessrio ser
Associado Certificado Sun para a Plataforma Java.
8/7/2019 Aula 01 - as Da Linguagem JAVA
43/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
44/116
Certifi adoSunparaaPlatafor a
Java
Desenvolvedor de Componentes Web Certificado Sun
(SCWCD)
Esta certificao destina-se a desenvolvedores que estejam se
especializando na aplicao das tecnologias JSP(JavaServer Pages) e servlet usadas para apresentar Web
Services e contedo da Web dinmico. Para obter esta
certificao, o candidato deve concluir o exame com xito.
Antes de tentar a certificao, o candidato deve obter a
certificao Programador Certificado Sun (SCJP), qualquer
edio.
8/7/2019 Aula 01 - as Da Linguagem JAVA
45/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
46/116
Certifi adoSunparaaPlatafor a
Java
Desenvolvedor de Componentes de Negcios Certificado Sun
(SCBCD)
Esta certificao destina-se a desenvolvedores de
componentes de negcios com a tecnologia EnterpriseJavaBeans (EJB) que so responsveis pelas atividades de
projeto, desenvolvimento, teste, implantao e integrao
de aplicativos EJB. Para obter certificaes, o candidato
deve concluir o exame com xito. Antes de tentar a
certificao, o candidato deve obter a certificao
Programador Certificado Sun (SCJP), qualquer edio.
8/7/2019 Aula 01 - as Da Linguagem JAVA
47/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
48/116
Certifi adoSunparaaPlatafor a
Java
Desenvolvedor Certificado Sun para Web Services em Java
(SCDJWS)
Esta certificao destina-se a desenvolvedores que criam Web
Services para aplicativos com componentes da tecnologiaJava. Para obter esta certificao, o candidato deve concluir
o exame. Antes de tentar a certificao, o candidato deve
obter a certificao Programador Certificado Sun (SCJP),
qualquer edio.
8/7/2019 Aula 01 - as Da Linguagem JAVA
49/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
50/116
Certifi adoSunparaaPlatafor a
Java
Desenvolvedor de Aplicativos de Telefonia Mvel Certificado
Sun (SCMAD)
Esta certificao destina-se a desenvolvedores que criam
aplicativos de telefonia mvel com tecnologias Java paracelulares ou dispositivos "inteligentes". Para obter esta
certificao, o candidato deve concluir o exame com xito.
Antes de tentar a certificao, o candidato deve obter a
certificao Programador Certificado Sun (SCJP), qualquer
edio.
8/7/2019 Aula 01 - as Da Linguagem JAVA
51/116
Certifi adoSunparaaPlatafor a
Java
http://www.sun.com/training/certification/java/index.xml
8/7/2019 Aula 01 - as Da Linguagem JAVA
52/116
Certifi adoSunparaaPlatafor a
Java
Arquiteto Corporativo Certificado Sun (SCEA)
Esta certificao se destina a arquitetos corporativosresponsveis por arquitetar e projetar aplicativos compatveis
com Java EE, com nfase na melhor forma de aproveitar osrecursos da tecnologia Java EE para criar designs flexveis,
dimensionveis e seguros.
C tifi d S Pl t f
8/7/2019 Aula 01 - as Da Linguagem JAVA
53/116
Certificado Sun para a Plataforma
Java
SIMULADOS ON-LINE
Site de Katty Sierra, autora de um dos melhores livrossobre certificao Java: Sun Certified Programmer &
Developer for Java2. Katty Sierra tambm Sun CertifiedJava Instructor.
http://www.javaranch.com/
Site de Marcus Green. O forte so o bom numero de
questes e explicaes dadas a cada uma delas.http://www.jchq.net
C tifi d S Pl t f
8/7/2019 Aula 01 - as Da Linguagem JAVA
54/116
Certificado Sun para a Plataforma
Java
Examulator, a cada dia uma pergunta diferente sobre Java.http://www.examulator.com/jezam/exammenu.jsp
Alem dos mocks conta com muita informao sobre Java
estruturada de acordo com os objetivos do exame.
http://www.javaprepare.com
Dois mocks com 60 questes cada:
1. http://www.javacaps.com/scjp_mockexams1.html2. http://www.javacaps.com/scjp_mockexams2.html#test2
C tifi d S Pl t f
8/7/2019 Aula 01 - as Da Linguagem JAVA
55/116
Certificado Sun para a Plataforma
Java
Um teste com controle no tempo gasto para fazer asquestes. considerado dificil, ou seja, se vc se der bem,pode ficar confiante.
http://www.lanw.com/java/javacert/HardestTest.htm
Outros bons sites:
http://www.whizlabs.com/scjp/scjp-upgrade.htmlhttp://www.valoxo.ch/jr/mocks/mock01a.html
Fonte: www.javafree.com.br
C tifi d S Pl t f
8/7/2019 Aula 01 - as Da Linguagem JAVA
56/116
Certificado Sun para a Plataforma
Java
Exemplo:
Dado o seguinte
interface Base{
boolean m1();
byte m2(short s);
}
Qual fragmento de cdigo ir compilar ?(Marque todas as corretas.)
A. interface Base2 implements Base{ }
B. abstract class Class2 extends Base{
public boolean m1(){ return true; } }
C. abstract class Class2 implements Base{ }D. abstract class Class2 implements Base{
public boolean m1(){ return (true); } }
E. class Class2 implements Base{
boolean m1(){ return false; }
byte m2(short s){ return 42; } }
C tifi d S Pl t f
8/7/2019 Aula 01 - as Da Linguagem JAVA
57/116
Certificado Sun para a Plataforma
Java
Exemplo:
Qual das seguintes opes declara uma classe abstract compilvel ?
(Marque todasas orretas)
A. public abstract class Canine{ public Bark speak(); }
B. public abstract class Canine{ public Bark speak() { } }
C. public class Canine { public abstract Bark speak(); }
D. public class Canine abstract { public abstract Bark speak(); }
Certificado S n para a Plataforma
8/7/2019 Aula 01 - as Da Linguagem JAVA
58/116
Certificado Sun para a Plataforma
Java
Exemplo:
Qual das seguintes afirmativas est correta ?
(Marque todasas orretas)
A. X estende Y correto se, e somente se, X for uma classe e Y for uma interface.
B. X estende Y correto se, e somente se, X for uma interface e Y for uma classe.
C. X estende Y correto se X e Y forem ambos classes ou ambos interfaces.
D. X estende Y correto para todas as combinaes de X e Y sendo classes e/ouinterfaces.
Certificado Sun para a Plataforma
8/7/2019 Aula 01 - as Da Linguagem JAVA
59/116
Certificado Sun para a Plataforma
Java
Exemplo:
Quais nomes de mtodos obedecem ao padro JavaBeans ?
(Marque todasas orretas)
A. addSize
B. getcust
C. deleteRep
D. isColorado
E. putDimensions
Certificado Sun para a Plataforma
8/7/2019 Aula 01 - as Da Linguagem JAVA
60/116
Certificado Sun para a Plataforma
Java
Exemplo:
Dado:
Class Clidders{ Public final void flipper() { System.out.println(Clidder); } }
public class Clidlets extends Cledders {
public void flipper(){System.out.println(Flip a Clidlet);
Super.flipper(); } }
public static void main (String [] args) {
new Clidlets().flipper(); } }
Qual o resultado ?
A. Flip a ClidletClidderB. Flip a Clidder
C. Flip a Clidder
Flip a Clidlet
D. Flip a Clidlet
Flip a Clidder
E. A compilao falha.
8/7/2019 Aula 01 - as Da Linguagem JAVA
61/116
Desenvolvendo Aplicaes
na Linguagem Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
62/116
8/7/2019 Aula 01 - as Da Linguagem JAVA
63/116
Aplicaes da Linguagem Java
Applets:
So programas Java que seguem um padro especfico;
Este padro permite que o programa execute em um
browser;Aplicaes Stand-alone:
Similares a programas convencionais;
Necessitam do interpretador Java para executarem;
Aplicaes Internet de lado servidor:
Servlets, JSP, webServices, EJB, ...
8/7/2019 Aula 01 - as Da Linguagem JAVA
64/116
Ambiente de Desenvolvimento
Modelo de Processo de Desenvolvimento:geis (XP, Scrum),RUP etc....
8/7/2019 Aula 01 - as Da Linguagem JAVA
65/116
Ferramentas de Desenvolvimento
Profissionais - Gratuitas
Aprendizado - Gratuitas
8/7/2019 Aula 01 - as Da Linguagem JAVA
66/116
Servidores
Apache Tomcat
GlassFish
8/7/2019 Aula 01 - as Da Linguagem JAVA
67/116
Banco de Dados
8/7/2019 Aula 01 - as Da Linguagem JAVA
68/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
69/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
70/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
71/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
72/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
73/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
74/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
75/116
Controle de Verso
8/7/2019 Aula 01 - as Da Linguagem JAVA
76/116
Controle de Modificao
8/7/2019 Aula 01 - as Da Linguagem JAVA
77/116
Repositrio de Cdigo
8/7/2019 Aula 01 - as Da Linguagem JAVA
78/116
Tecnologias Java
T l i J
8/7/2019 Aula 01 - as Da Linguagem JAVA
79/116
Tecnologias Java
JSE Aplicaes stand-alone(Desktop)
T l i J
8/7/2019 Aula 01 - as Da Linguagem JAVA
80/116
Tecnologias Java
AWT Pacote de componentes visuais do JDK
Look & feel varia de acordo com a plataforma
T l i J
8/7/2019 Aula 01 - as Da Linguagem JAVA
81/116
Tecnologias Java
Swing Swing uma toolkit GUI (Graphical User Interface) para Java. Ela
mantm componentes visuais para desenvolvimento de telas que
sejam independentes de sistema operacional. Swing a evoluo
natural da antiga AWT, rpido e feito totalmente em Java.
T l i J
8/7/2019 Aula 01 - as Da Linguagem JAVA
82/116
Tecnologias Java
Pl t f J
8/7/2019 Aula 01 - as Da Linguagem JAVA
83/116
Platafor aJava
T l i J
8/7/2019 Aula 01 - as Da Linguagem JAVA
84/116
Tecnologias Java
Java no gera Executvel, e sim um jar
T l i J
8/7/2019 Aula 01 - as Da Linguagem JAVA
85/116
Tecnologias Java
JDBC Trabalha no mesmo nvel do banco de dados. O acesso as informaes
contidas no banco so realizadas atravs de comandos SQL.
Tecnologias Ja a
8/7/2019 Aula 01 - as Da Linguagem JAVA
86/116
Tecnologias Java
Java DataBase Conectivity (JDBC)
Fornece acesso direto a bancos de dados Relacionais atravs deaplicaes Java
um conjunto de APIs (bibliotecas de classes)
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
87/116
Tecnologias Java
JDBC Classe e interfaces JDBC permitem a uma aplicao enviar comandos
SQL para um SGBD e recuperar os resultados, funcionando da mesmaforma que o ODBC. Uma das melhores caractersticas de JDBC ainteroperabilidade, ou seja, um desenvolvedor pode criar uma aplicaosem se preocupar com qual sistema de banco de dados ser utilizado,podendo especificar diferentes drivers para cada conexo a diferentesSGBD que desejar
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
88/116
Tecnologias Java
JDBC Classe e interfaces JDBC permitem a uma aplicao enviar comandos
SQL para um SGBD e recuperar os resultados, funcionando da mesma
forma que o ODBC. Uma das melhores caractersticas de JDBC a
interoperabilidade, ou seja, um desenvolvedor pode criar uma aplicaosem se preocupar com qual sistema de banco de dados ser utilizado,
podendo especificar diferentes drivers para cada conexo a diferentes
SGBD que desejar
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
89/116
Tecnologias Java
Bancos de Dados RelacionaisXBancos de Dados Orientados a Objetos
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
90/116
Tecnologias Java
Bancos de Dados Orientados a Objetos
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
91/116
Tecnologias Java
Bancos de Dados Relacionais
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
92/116
Tecnologias Java
Persistncia: A idia da persistncia O/R reunir as vantagens de se utilizar um
modelo orientado a objetos para a construo de uma aplicao, com aperformace e a confiabilidade dos bancos de dados relacionais.
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
93/116
Tecnologias Java
Persistncia:
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
94/116
Tecnologias Java
Framework Hibernate: Programao OO (herana, polimorfismo etc); Sem aumento de tempo na construo da Aplicao Gratuito e aberto
Portvel para todos os bancos compatveis com o padroSQL
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
95/116
Tecnologias Java
JPA - Java Persistence API A Java Persistence API (JPA) prov um modelo de
persistncia de POJO (Plain Old Java Object - o bom evelho objeto Java comum) por mapeamento objeto-
relacional. A nova API de Persistncia Java foi introduzidacom a plataforma Java EE 5, visando simplificar, melhorare padronizar aplicaes Java EE e Java SE usandopersistncia de dados. Esta API se baseia nas melhoresidias de tecnologias de persistncia como Hibernate,TopLink, e JDO, mas prov comunidade java uma nica
API padro de persistncia, com a liberdade de escolhado provedor (implementao). Desenvolvida como parteda JSR-220 Tecnologia EJB 3.0 , JPA se integrahomognea e consistentemente com o resto dassimplificaes nas APIs EJB 3.0.
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
96/116
Tecnologias Java
JPA - Java Persistence API
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
97/116
Tecnologias Java
WebService Servios Web so aplicaes de negcio modulares. Neles so expostas as lgicas de negcio em forma de
servios sobre a Internet atravs de interfacesprogramveis.
Utilizam de protocolos de Internet com o propsito defornecer meios para buscar, assinar e acessar essesservios.
XML
WSDL
UDDI
SOAP
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
98/116
Tecnologias Java
WebService
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
99/116
Tecnologias Java
WebService na Prtica
DescobertaDescoberta
Vamos falar (SOAP)Vamos falar (SOAP)
http://yourservice.comhttp://yourservice.com
HTML ou XML com link para WSDLHTML ou XML com link para WSDL
Como falamos ? (WSDL)Como falamos ? (WSDL)
http://yourservice.com/?WSDLhttp://yourservice.com/?WSDLXML com descrio dos serviosXML com descrio dos servios
http://yourservice.com/svc1http://yourservice.com/svc1
Pesquisar ServioPesquisar Serviohttp://www.uddi.orghttp://www.uddi.org
Link para documento WSDLLink para documento WSDL
ClienteClienteXMLXMLWebWeb
ServiceService
UDDIUDDI
WebWeb
ServiceService
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
100/116
Tecnologias Java
WebService
XML(extensive Markup Language)
SOAP(Simple Object Access Control)
WSDL(Web Service Definition Language)
UDDI(Universal Discovery Description Integration)
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
101/116
SOAP independente de
linguagem. SOAP baseado em XML.
SOAP extensvel.
SOAP permite passar porfirewalls.
SOAP ser desenvolvido como umpadro W3C.
TecnologiasJava
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
102/116
Estrutura de uma Mensagem SOAP
Envelope
Body
(Corpo, requerido)
Fault
(Falha, opcional)
Header
(Cabealho, opcional)
TecnologiasJava
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
103/116
O Cliente: a solicitao SOAP
xmlns:ns1=urn = correios-cep
SOAP-ENV:encodingStyle=
http://schemas.xmlsoap.org/soap/encoding >Rodovia SC-401
TecnologiasJava
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
104/116
O Servidor: a Resposta SOAP
88055
TecnologiasJava
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
105/116
Exemplo
TecnologiasJava
http://consultacotacao.riscozeroprojetos.com.br/sConsultaCotacao.asmx?WSDL
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
106/116
Tecnologias Java
JEE Aplicaes Web em geral
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
107/116
Tecnologias Java
Applet
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
108/116
Tecnologias Java
Servlet Arquivo Java com cdigo html
Dentre as diversas tecnologias J2EE utilizadas nodesenvolvimento de pginas para a Internet, a tecnologia
Servlet foi o ponto de partida para a o estabelecimento detoda uma especificao na qual deu origem s tecnologiasmais recentes como a JSP, JSLT, Struts e JSF.
Sua estrutura foi criada para permitir que informaessolicitadas via HTTP, normalmente realizadas por um clienteutilizando um navegador de Internet, fossem processadas dolado dos servidores.
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
109/116
Tecnologias Java
Servlet
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
110/116
Tecnologias Java
Servlet
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
111/116
Tecnologias Java
Servlet
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
112/116
Tecnologias Java
Jsp Arquivo html(jsp) com cdigo Java
uma soluo similar ao ASP e PHP.
8/7/2019 Aula 01 - as Da Linguagem JAVA
113/116
TecnologiasJava
8/7/2019 Aula 01 - as Da Linguagem JAVA
114/116
Exemplo
g
http://i t r i . -ip.i f : / tr l/
Tecnologias Java
8/7/2019 Aula 01 - as Da Linguagem JAVA
115/116
ec o og as Ja a
JME Aplicaes mobile
D k
8/7/2019 Aula 01 - as Da Linguagem JAVA
116/116
Duck