Your SlideShare is downloading. ×
0
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Conhecendo Java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Conhecendo Java

6,367

Published on

Apresentação da palestra Conhecendo Java na Faculdade de Juazeiro do Norte, em 30/11/07.

Apresentação da palestra Conhecendo Java na Faculdade de Juazeiro do Norte, em 30/11/07.

Published in: Technology, Education
2 Comments
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
6,367
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
404
Comments
2
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×