A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

06/09/2007 Tutorial Java Básico por Roberto Vezzoni

Apresentações semelhantes


Apresentação em tema: "06/09/2007 Tutorial Java Básico por Roberto Vezzoni"— Transcrição da apresentação:

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


Carregar ppt "06/09/2007 Tutorial Java Básico por Roberto Vezzoni"

Apresentações semelhantes


Anúncios Google