Download - Aula 01 - as Da Linguagem JAVA

Transcript
  • 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

    [email protected]

    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