Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouLeandro Lencastre Prada Alterado mais de 8 anos atrás
1
06/09/2007 Tutorial Java Básico por Roberto Vezzoni roberto.vezzoni@gmail.com
2
06/09/2007 Agenda A História O que é Java? JCP Prog. Orientada a Objetos Arquitetura Java em todo lugar Como começar Exemplos Produtividade Java e o Mercado Comunidades Futuro e Tendências E agora? 2
3
06/09/2007 Roberto Vezzoni Java desde 2004. Certificado em 2008. Analista de sistemas e assessor de TI; Realiza treinamentos Java para empresas privadas desde 2007. 3
4
06/09/2007 A História
5
06/09/2007 Como Java nasceu… Patrick Naughton, engenheiro da Sun, estava cansado e iria sair; Scott McNealy, CEO da Sun, pediu para que ele escrevesse o que estava errado; Naughton não poupou palavras, mas achou que não ia dar em nada; McNealy enviou a mensagem para outros e Naughton recebeu uma enxurrada de mensagens de apoio, inclusive de Bill Joy (fundador da Sun) e James Gosling (seu mentor), que colocaram lenha na fogueira; 5
6
06/09/2007 Como Java nasceu… A Sun, então, faz sua contra-proposta: cria o projeto Green para desenvolver algo inovador; Reclusos e sem contato com a Sun, os melhores desenvolvedores analisavam e debatiam sobre tecnologias existentes; A sacada: como aparelhos eletrônicos (jogos, TVs, VCRs, etc.) poderiam comunicar-se uns com os outros? Logo notaram que estes aparelhos todos possuem hardware diferente e limitado; 6
7
06/09/2007 Como Java nasceu… Começaram a desenvolver uma nova linguagem, batizada de Oak; Criada por James Gosling; Orientada a Objetos; Parecida com C++; Projetada para rodar em diferentes hardwares. Desenvolveram, então, um controle remoto interativo para receptores de TV a cabo, chamado “*7”. 7
8
06/09/2007 Como Java nasceu… Depois de 18 meses, a Sun transforma o projeto Green em uma empresa, chamada “First Person”e tira o time da reclusão; A empresa tinha uma boa idéia, mas não tinha mercado; Em 1993 foi lançado o Mosaic, primeiro navegador para a World Wide Web; O projeto muda de rumo e aposta no sucesso da Internet, que se encaixava perfeitamente com as idéias do grupo; A nova idéia era criar um sistema para permitir o uso de multimídia na Web; 8
9
06/09/2007 Enfim, Java A linguagem Oak se tornaria o produto. Naughton sugere que seja distribuída gratuitamente na web; O time desenvolve o navegador WebRunner, mais tarde HotJava Browser. Nascem as Applets; Sun concorda em disponibilizar Oak, mas antes troca seu nome para Java (outros mais cotados: Neon, Lyric, Pepper e Silk); A Netscape anuncia seu novo navegador com suporte a Java e a tecnologia dispara; 9
10
06/09/2007 Java hoje Evolução: Java 1.0a; Java Development Kit 1.1; Java 2 Platform 1.2; Java 2 Platform 1.3; Java 2 Platform 1.4; Java 2 Platform 5.0 (Tiger); Java 6 (Mustang) Próxima: Java 7 (Dolphin). 10
11
06/09/2007 O que é Java?
12
06/09/2007 O que é Java? Java é... Um software? Uma tecnologia? Uma linguagem de programação? Uma plataforma de desenvolvimento? Uma ilha da Indonésia? 12
13
Jawa 06/09/200713
14
06/09/2007 Java é tudo isso Simples, orientada a objetos; Independente de plataforma (WORA); Portável, baseada no poder das redes; Versátil, dinâmica, robusta e segura; Gratuita; Fácil de usar e desenvolver; Popular e rodeada por uma comunidade vibrante! 14
15
06/09/2007 Java é… Orientada a objetos; Híbrida (compilada e interpretada); Semelhante a C/C++, mas: É mais simples e tão poderosa quanto*: não tem ponteiro, #define,.h, etc. É independente de plataforma; É mais robusta e segura: coletor de lixo, exceções, verificação de tipos, checagem de integridade, suporte nativo a threads. * Exceto por herança múltipla, que Java não tem (mas épossível simular). 15
16
06/09/2007 Java Community Process
17
06/09/2007 Java é software? 17
18
06/09/2007 Java é uma Especificação The Java Language Specification Especifica a linguagem de programação Java, sintática e semanticamente, descrevendo todos os seus aspectos. Pode ser comprada como livro ou baixada gratuitamente: http://java.sun.com/docs/books/jls/. The Java Virtual Machine Specification Especifica como uma máquina virtual Java funciona. Pode ser comprada como livro ou baixada gratuitamente: http://java.sun.com/docs/books/vmspec/. 18
19
06/09/2007 Porque uma especificação? Organizações podem criar suas próprias versões de Java; Todas elas serão compatíveis, pois devem passar por um teste; Você não fica preso a um fornecedor de software. 19
20
06/09/2007 Quem faz a especificação? No início, quem criou Java foi a Sun; A partir de 1998, foi criado o Java Community Process (www.jcp.org): O JCP é um processo aberto e participativo de desenvolvimento e revisão das especificações Java; A Sun possui grande influência (Executive Comitee), mas não domina o JCP. 20
21
06/09/2007 Quem participa do JCP Mais de 900 pessoas, empresas e organizações sem fins lucrativos; Empresas desenvolvedoras: Apple, BEA, IBM, JBoss, Oracle, etc. Empresas usuárias: Boeing, Computer Associates, Google, LG, MySQL, Motorola, PalmSoftware, PeopleSoft, Sony, Sybase, etc. Pessoas: Bruno Souza, Michael Nascimento, Osvaldo Doederlein, etc. Organizações: Apache Software Foundation, SouJava, etc. 21
22
06/09/2007 Como participar Assinando a JSPA (Java Specification Participation Agreement) e pagando a anuidade; É possível colaborar sem ser membro, revisando e comentando especificações. Anuidade JCPAnuidade W3C EmpresasUS$ 5.000,00 Até US$63.500,00 OrganizaçõesUS$ 2.000,00US$ 6.350,00 PessoasUS$ 0,00--- 22
23
06/09/2007 E quem implementa o Java? Muita gente: A Sun Microsystems (a mais usada); Não-livres: IBM, BEA, Apple, Microsoft, JET, Blackdown, etc.; Livres: GNU GCJ/Classpath, Kaffe, etc.; Para fins de pesquisa: JNode, Jikes RVM, Sun MVM, IBM CJVM, etc. Todas são compatíveis com a especificação, você escolhe. 23
24
06/09/2007 OpenSource ou Proprietária? Java ERA uma especificação aberta, agora, Java é Open Source, sob a licença GPL v2; A implementação da Sun do Java ME e Java SE já são Open Source, sob a licença GPL v2. Também se tornaram Open Source o NetBeans, Solaris, OpenSPARC e StarOffice. http://www.sun.com/software/opensource/java https://mobileandembedded.dev.java.net 24
25
06/09/2007 Mitos Java é lenta! As primeiras versões eram lentas, mas as novas são até mais rápidas que C++. Não possui um ambiente RAD (like Visual Studio) ! Há muitas ferramentas de alta produtividade disponíveis, inclusive gratuitas. JavaScript é uma derivação de Java! Não. Em comum elas só tem o nome e a sintaxe. São duas linguagens diferentes. 25
26
06/09/2007 Mitos Java só serve para fazer Applets! Ledo engano. Java serve para fazer de clientes desktop à aplicações enterprise, passando por dispositivos móveis. Java é a melhor forma de fazer tudo! Bem que eu queria, mas não é. Java é bastante versátil, mas não faz tudo. 26
27
06/09/2007 Por que usar Java? Precisa de mais motivos? Projetada para redes desde o começo –“The network is the computer”; Alta aceitação e suporte da indústria; Muitas ferramentas disponíveis, várias delas gratuitas e livres; Vasta documentação, fácil de aprender; Alta produtividade; Open Source; Etc, etc, etc. 27
28
06/09/2007 Programação Orientada a Objetos
29
06/09/2007 Engenharia de Software Desenvolver software não é uma arte; A Engenharia de Software busca formalizar metodologias; Paradigmas regem as tarefas de análise, projeto e codificação; Os mais conhecidos: Paradigma Estruturado (ou Procedural); Paradigma Orientado a Objetos. 29
30
06/09/2007 Java é Orientada a Objetos Para desenvolver bem em Java é preciso saber os conceitos de OO; Se não... Dificilmente conseguirá evoluir além de programas bem simples; Será difícil entender outros programas e outras pessoas entenderem o seu; Você estará perdendo tempo. Use C, Pascal, etc. que são procedurais. 30
31
06/09/2007 Orientação a Objetos Análise, projeto e programação; Mapear o mundo real no mundo computacional utilizando objetos; Abstração mais próxima do mundo real do que o paradigma estruturado. 31
32
06/09/2007 Conceitos Abstração; Encapsulamento; Modularidade; Objetos; Classes; Ligações e associações; Composição e agregação; Herança; Mensagens e métodos; Persistência; Classes e operações abstratas; Sobrecarga e sobrescrita; Polimorfismo. 32
33
06/09/2007 Abstração Ignorar aspectos irrelevantes e concentrar nos principais; Tipos: Abstração de dados; Abstração de procedimentos. 33
34
06/09/2007 Encapsulamento Separar os aspectos externos (o que faz) dos aspectos internos (como faz): Aspectos externos = interface, contrato; Aspectos internos = implementação. 34
35
06/09/2007 Modularidade Decomposição do sistema em módulos: Coesos (baixo acoplamento); Autônomos; De interface simples e coerente. Fundamental para o reuso. 35
36
06/09/2007 Objetos Conceito central deste paradigma; Entidades que incorporam abstrações relevantes do problema; Um objeto tem três características principais: Estado (estrutura); Comportamento; Identidade; 36
37
06/09/2007 Classes Objetos que possuem mesma estrutura e comportamento são de uma mesma classe; Definimos classes, não objetos. 37
38
06/09/2007 Ligações e Associações Objetos relacionam-se entre si: Ligação: conexão entre objetos; Associação: conexão entre classes que representa existência de ligações. Associações podem ter cardinalidades. 38
39
06/09/2007 Composição e Agregação Associações todo-parte; Objetos complexos são compostos de objetos mais simples; Composição: as partes estão sempre relacionadas ao todo; Agregação: as partes podem ser decompostas. 39
40
Herança Quando classes têm semelhanças podemos generalizá- las; Hierarquias: Relações de superclasse x subclasse; “Filhos” herdam estrutura e comportamento dos “pais”. 06/09/200740
41
06/09/2007 Mensagens e Métodos Objetos trocam mensagens para se comunicar (deve ser a única forma); Métodos: operações que um objeto pode realizar. 41
42
06/09/2007 Persistência Capacidade do objeto de transcender o tempo e o espaço; Armazenamento em banco de dados; Transmissão pela rede. 42
43
06/09/2007 Classes e operações abstratas Classes abstratas não podem ser instanciadas; Operações abstratas não possuem implementação; Classe composta somente por operações abstratas = interface. 43
44
06/09/2007 Sobrecarga e sobrescrita Sobrecarga: operações distintas com o mesmo nome; Sobrescrita: subclasse define nova implementação para operação definida na superclasse. 44
45
06/09/2007 Polimorfismo Habilidade de tomar várias formas. 45
46
06/09/2007 Arquitetura
47
06/09/2007 Java é muita coisa A Linguagem de programação Java; O ambiente de execução Java; O kit de desenvolvimento Java; Uma biblioteca de classes (API) Java. 47
48
06/09/2007 Plataforma Java 2 Desde a versão 1.2, passou a ser chamada de “Java 2”e foi dividida em: Java 2 Platform Standard Edition (JavaSE); Java 2 Platform Enterprise Edition (JavaEE); Java 2 Platform Mobile Edition (JavaME). Cada uma tem sua API; A JavaSE é base para as outras. 48
49
06/09/2007 Novos ares A partir da versão 6, tira-se o “2”: Java Platform, Standard Edition 6 ou Java SE 6; Java Platform, Enterprise Edition 6 ou Java EE 6; Java Platform, Mobile Edition 6 ou Java ME 6. O “Java2” permanece na versão 1.5 e anteriores. 49
50
06/09/2007 Java Platform, Standard Edition Ferramentas de desenvolvimento + API núcleo da plataforma Java; Permite o desenvolvimento de aplicações desktop, inclusive com interface gráfica, acesso à banco de dados, I/O, rede, etc. Dividida em: JDK = Java Development Kit; JRE = Java Runtime Environment. 50
51
06/09/2007 Java Development Kit Somente para os programadores; Contém: Ferramentas de desenvolvimento; Ambiente de execução (JRE); API Java SE (compilada e código-fonte); Programas de demonstração; Bibliotecas adicionais; Documentação (obtida separadamente). 51
52
06/09/2007 Java Runtime Environment Necessária para rodar programas Java, pois além de compilada, Java também é interpretada; É a única parte da plataforma Java que os clientes necessitam instalar; Em alguns sistemas operacionais (ex. MacOS X) já vem instalada. Implementação da Sun: ~ 15 MB. 52
53
06/09/2007 Ferramentas Disponíveis Compilador (javac); Interpretador (java); Gerador de documentação (javadoc); Depurador (jdb); Gerador de pacotes (jar); Outros: Visualisador de applets (appletviewer); Criptografia (keytool, jarsigner, etc.); Etc. 53
54
06/09/2007 Plataforma suportadas A Sun dá suporte às seguintes plataformas: Windows i586 / AMD64; Linux i586 / AMD64; Solaris SPARC / x86 / x64. A Apple desenvolveu versão para MacOS. Outras: HP UX, FreeBSD, OS/2, AIX, AS/400, OS/390, IRIX, Alpha, SCO, NetWare, etc.; Nem todas são atuais ou completas. 54
55
06/09/2007 Write Once, Run Anywhere Java é compilada e interpretada: 1.Códigos das classes são compilados para uma linguagem intermediária chamada Bytecode; 2.O Bytecode é interpretado por uma “máquina virtual”: a JVM; 3.A JVM envia comandos específicos da plataforma para o sistema operacional. 55
56
06/09/2007 Write Once, Run Anywhere 56
57
06/09/2007 Principais APIs 57
58
06/09/2007 Principais APIs AWT/Swing: interfaces gráficas; Java2D: desenho; JDBC: acesso a bancos de dados; JNDI: acesso a servidores de nomes; RMI: invocação remota de métodos; Beans: padrão JavaBeans; i18n: suporte a internacionalização; I/O: entrada e saída (arquivos); JNI: integração com linguagens nativas; Math: cálculos matemáticos; 58
59
06/09/2007 Principais APIs Networking: transmissão pela rede; Security: segurança; Serialization: persistência por serialização; XML: processamento de XML e afins; Lang & Util: núcleo da linguagem, utilitários (coleções, datas, compactação, etc.); Concurrency: programação concorrente (threads); Logging: funções de relatório (log); Reflection: reflexão e instrospecção. 59
60
06/09/2007 Java Platform, Enterprise Edition Permite o desenvolvimento de aplicações corporativas: Multi-camada, distribuídas, centradas em servidores, altamente robustas, estáveis e escaláveis; Inclui as especificações para desenvolvimento Web: Servlets, JSP, Web Services. 60
61
06/09/2007 Servlets, JSP e EJBs Servlets e JSPs: Componentes que respondem à requisições web, usados para construir páginas dinâmicas e Web Services. EJBs: Componentes gerenciados integrados a outras tecnologias Java EE para prover acesso remoto, persistência e transações transparentes, processamento assíncrono, etc. 61
62
06/09/2007 Outras tecnologias Java EE não é só Servlets e EJB: RMI/IIOP e Java IDL: conectividade; JNDI: serviço de nomes; JAC e JNI: acesso a sistemas legados; JAAS: segurança; JTA: transações em bancos de dados; JMS e JavaMail: envio de mensagens; E tudo mais que já temos no J2SE... 62
63
06/09/2007 Servidores Java EE Servidores web: Apache Tomcat, Caucho Resin, Jetty, etc. Servidores de aplicação: BEA WebLogic, Borland Enterprise Server, JBoss Application Server, Oracle Application Server, IBM WebSphere, GlassFish, Geronimo, etc.; 63
64
06/09/2007 Java Platform, Mobile Edition Permite o desenvolvimento de aplicações para dispositivos móveis: Telefones celulares; PDAs (Palm, iPaq, etc.); Dispositivos embarcados (embedded); Etc. Java Card: aplicações para Smart Cards e outros dispositivos muito limitados. 64
65
06/09/2007 Configurações Java ME Atualmente são duas: CLDC: Connected Limited Device Configuration; CDC: Connected Device Configuration. Cada uma possui uma API diferente, dependendo da capacidade do dispositivo (limitada ou não). 65
66
06/09/2007 Java em todo lugar
67
06/09/2007 Java está em todo lugar 67
68
06/09/2007 Applets 68
69
06/09/2007 Enterprise 69
70
06/09/2007 Móveis 70
71
06/09/2007 Desktop 71
72
06/09/2007 De ponta a ponta 72
73
06/09/2007 Como começar
74
06/09/2007 Preparando o Ambiente Fazer download do JDK E também da documentação http://java.sun.com Escolha a versão do seu sistema operacional. 74
75
06/09/2007 Instalando Windows Instalador padrão Microsoft, simplificado. Documentação compactada (zip). Linux Algumas distros possuem pacote de instalação e/ou repositórios. Documentação compactada. 75
76
06/09/2007 Escrevendo Programas Use uma IDE: Eclipse; NetBeans; JetBrains IntelliJ IDEA; Borland JBuilder; Etc. Editores mais simples: JEdit; JCreator, etc. 76
77
06/09/2007 Exemplos e Produtividade
78
06/09/2007 Java e o Mercado
79
06/09/2007 Empresas 79
80
06/09/2007 Empregos Oportunidade: Muitas vagas surgindo; Poucos capacitados, poucos certificados; Bons salários. No ES: Mercado em ótima fase de crescimento e oportunidades; 80
81
06/09/2007 Certificações A Sun cria provas para certificar profissionais na plataforma Java; O instituto Thomson Prometric aplica a prova em vários lugares do Brasil; No Espírito Santo: ISH: http://www.ish.com.br MindWorks: http://www.mindworks.com.br Profissional certificado possui reconhecimento no mercado; Infelizmente não tem tanto efeito no salário; 81
82
06/09/2007 As Certificações 82
83
06/09/2007 Comunidades
84
06/09/2007 Java e OpenSource Centenas de projetos no SourceForge: perde apenas para C/C++; Primeiro lugar no FreshMeat; Java.net: 150.000 membros e mais de 1.500 projetos; Java-Source.net: projetos divididos em mais de 50 categorias; Mais de 550 grupos de usuários no mundo. 84
85
06/09/2007 Comunidades Virtuais PortalJava (http://www.portaljava.com); GUJ (http://www.guj.com.br); JavaFree (http://www.javafree.com.br); E muitos outros (google.com.br); 85
86
06/09/2007 Como participar O que podem fazer por você: Notícias; Artigos e tutoriais; Fóruns; Downloads e links; Eventos; Etc. O que você pode fazer? Cadastrar-se; Participar respondendo dúvidas; Escrever artigos; Enviar notícias; Etc. 86
87
06/09/2007 Grupos de Usuário 87
88
06/09/2007 ESJUG! 88
89
06/09/2007 Atividades Cursos; Grupos de estudo; Reuniões mensais; Palestras; Eventos; Etc. Participe! 89
90
06/09/2007 Revistas 90
91
06/09/2007 Futuro e Tendências
92
06/09/2007 Tendências JavaME – Aplicações para dispositivos móveis. Mercado em ampla expansão. Ajuda das empresas de celulares. 92
93
06/09/2007 Tendências Para Desenvolvedores e Arquitetos: Ligar-se em plugins e ferramentas: Para aumentar a produtividade; Aumentar integração da equipe; Novos paradigamas e tecnologias; Frameworks: Spring, Struts2, Vraptor, AspectJ, etc; Design Patterns Conhecer e saber aplicar: GoF e JavaEE Patterns. 93
94
06/09/2007 Tendências AOP – Programação Orientada a Aspectos Criada em 1997 pela Xerox; Tem sido a grande vedete em Java atualmente; Base de muitos frameworks importantes e conhecidos; SOA – Arquitetura Orientada a Serviços Montagem de aplicações com serviços compartilhados; Não é tecnologia, framework ou software; 94
95
06/09/2007 Tendências Web 2.0 e AJAX Conceito para desenvolvimento de páginas e sistemas web; Usuário em foco; Conteúdo criado por usuários para usuário; Necessidade de interfaces ricas e de alta usabilidade; 95
96
06/09/2007 Tendências Profissonal Cuidado com a “novidade do mês” Mais que saber a linguagem, é preciso saber a arquitetura e como elas se ligam. 96
97
06/09/2007 E agora?
98
06/09/2007 Gostei, quero me aprofundar Você está com sorte: Muitos livros (alguns até gratuitos); Muitos tutoriais (o da Sun é muito bom); Cursos; Portais; Grupos de usuários; Eventos; 98
99
06/09/2007 Gostei, quero me aprofundar Cuidado com o framework ou com a API da moda; Defina um foco; Procure participar de projetos liderados por outras pessoas. Ganhe experiência; Conheça novas técnicas; 99
100
06/09/2007 Referências Empresas que promovem cursos: http://www.caelum.com.br http://www.argonavis.com.br Comunidades virtuais: http://www.portaljava.com http://www.guj.com.br Grupos de usuários: http://www.soujava.org.br http://esjug.dev.java.net http://esjug.dev.java.net Materiais ( ESJUG ): Tutorial Java Básico (Vitor Souza e Paulo Jeveaux) 100
101
06/09/2007 That’s all folks Muito Obrigado a todos; Contatos: Roberto Vezzoni roberto.vezzoni@gmail.com 101
102
06/09/2007 Tutorial Java Básico por Roberto Vezzoni roberto.vezzoni@gmail.com
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.