Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Conhecendo Java

5,170 views

Published on

Slides da Palestra Conhecendo Java, ministrada por André Luiz Costa, Instrutor do Instituto Infnet.
O passado, o presente, e as tendências futuras da plataforma de desenvolvimento
livre mais utilizada no mundo. Descubra suas principais aplicações, características e as certificações disponíveis.

  • DOWNLOAD THAT BOOKS INTO AVAILABLE FORMAT (2019 Update) ......................................................................................................................... ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download doc Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... ......................................................................................................................... ................................................................................................................................... eBook is an electronic version of a traditional print book that can be read by using a personal computer or by using an eBook reader. (An eBook reader can be a software application for use on a computer such as Microsoft's free Reader application, or a book-sized computer that is used solely as a reading device such as Nuvomedia's Rocket eBook.) Users can purchase an eBook on diskette or CD, but the most popular method of getting an eBook is to purchase a downloadable file of the eBook (or other reading material) from a Web site (such as Barnes and Noble) to be read from the user's computer or reading device. Generally, an eBook can be downloaded in five minutes or less ......................................................................................................................... .............. Browse by Genre Available eBooks .............................................................................................................................. Art, Biography, Business, Chick Lit, Children's, Christian, Classics, Comics, Contemporary, Cookbooks, Manga, Memoir, Music, Mystery, Non Fiction, Paranormal, Philosophy, Poetry, Psychology, Religion, Romance, Science, Science Fiction, Self Help, Suspense, Spirituality, Sports, Thriller, Travel, Young Adult, Crime, Ebooks, Fantasy, Fiction, Graphic Novels, Historical Fiction, History, Horror, Humor And Comedy, ......................................................................................................................... ......................................................................................................................... .....BEST SELLER FOR EBOOK RECOMMEND............................................................. ......................................................................................................................... Blowout: Corrupted Democracy, Rogue State Russia, and the Richest, Most Destructive Industry on Earth,-- The Ride of a Lifetime: Lessons Learned from 15 Years as CEO of the Walt Disney Company,-- Call Sign Chaos: Learning to Lead,-- StrengthsFinder 2.0,-- Stillness Is the Key,-- She Said: Breaking the Sexual Harassment Story That Helped Ignite a Movement,-- Atomic Habits: An Easy & Proven Way to Build Good Habits & Break Bad Ones,-- Everything Is Figureoutable,-- What It Takes: Lessons in the Pursuit of Excellence,-- Rich Dad Poor Dad: What the Rich Teach Their Kids About Money That the Poor and Middle Class Do Not!,-- The Total Money Makeover: Classic Edition: A Proven Plan for Financial Fitness,-- Shut Up and Listen!: Hard Business Truths that Will Help You Succeed, ......................................................................................................................... .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • If you want to download or read this book, copy link or url below in the New tab ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } .........................................................................................................................
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Conhecendo Java

  1. 1. Conhecendo Java O passado, o presente, e as tendências futuras da plataforma de desenvolvimento livre mais Andre Luiz Monteiro da Costa utilizada no mundo. andre.monteiro@prof.infnet.edu.br
  2. 2. Palestrante • Desenvolvedor JAVA com experiência na utilização de ferramentas e frameworks OpenSource. • Ex-docente do Senac - curso de desenvolvedor JAVA. • Ex-docente das Faculdades São José e Moacyr Bastos. • Ex-Analista de Sistemas da IplanRio. • Docente da Academia do Concurso Público – área de TI. • Docente da SOFEP. • Atualmente trabalha como arquiteto de software na FAPES.
  3. 3. Palestrante Professor do Infnet: - Projeto de Sistemas e Orientação a Objetos com UML - Java Programming - Java Web Applications
  4. 4. A Infância de Uma Linguagem O Java é uma linguagem baseada no C++, seu desenvolvimento teve inicio em 1991 com a Sun Microsystems em um projeto de codinome Green.
  5. 5. A Infância de Uma Linguagem Java foi criado em 1991 por James Gosling, sob o nome Oak, em homenagem a uma árvore de carvalho que ele via da janela de seu escritório. Mais tarde descobriu-se que já existia uma linguagem com esse nome. O nome java foi sugerido por acaso quando a equipe visitava a cafeteria (java era o nome de uma cidade de origem de um café importado).
  6. 6. O Objetivo por trás de tudo O objetivo do projeto não era a criação de uma nova linguagem de programação, mas antecipar e planejar a “próxima onda” do mundo digital. Eles acreditavam que, em algum tempo, haveria uma convergência dos computadores com os equipamentos e eletrodomésticos comumente usados pelas pessoas no seu dia-a-dia.
  7. 7. Característica Principal • Capaz de rodar em diferentes dispositivos de hardware, sem alteração ou recompilação. • Era parte do projeto Star Seven (*7), em automação de equipamentos e casas inteligentes. DUKE mascote da SUN Fonte: Sun Microsystems http://java.sun.com/features/1998/05/birthday.html
  8. 8. A Infância e o Crescimento • Infelizmente, esta era uma idéia muito a frente do seu tempo, e o projeto *7 nunca foi comercializado. • Em 1994, com o boom da internet, surgiu uma nova área de aplicação para a linguagem: navegação com conteúdo dinâmico (APPLET JAVA). • Após seu lançamento oficial em 1995, Java e a tecnologia de Applets cresceram rapidamente, através de colaboração com a Netscape.
  9. 9. Finalidade da Tecnologia Criar páginas Web com conteúdo interativo e dinâmico Desenvolver aplicativos corporativos de grande porte Aprimorar a funcionalidade de servidores da WWW Fornecer aplicativos para dispositivos destinados ao consumidor final (telefones celulares, pagers, assistentes pessoais digitais)‫‏‬
  10. 10. Fase Adulta • Com a adoção de novos padrões para páginas dinâmicas, como Flash, a tecnologia de applets perdeu importância. • Lançada em 1999, a especificação J2EE 1.2 (Java Enterprise Edition) já continha as sementes da plataforma livre dominante no mercado de aplicações web.
  11. 11. Funcionamento • Programas tradicionais devem ser compilados para cada plataforma. WINDOWS LINUX
  12. 12. Funcionamento • Programas Java podem ser compilados uma única vez, e executam em qualquer lugar. “write once, use anywhere!”
  13. 13. Características Simplicidade A linguagem é derivada da linguagem C e C++, amplamente utilizadas à época. Além disso, o ambiente retira do programador a responsabilidade de gerenciar a memória e os ponteiros. Garbage Collector
  14. 14. Características Simplicidade Orientada a Objetos permite a herança e a reutilização de códigos de forma dinâmica e estática.
  15. 15. Características Simplicidade Orientada a Objetos Independente de Plataforma permite a herança e a reutilização de códigos de forma dinâmica e estática.
  16. 16. Características Simplicidade Orientada a Objetos Independente de Plataforma Distribuída Aplicações Java podem abrir e acessar objetos através da rede via URL's (http/ftp) e com a mesma facilidade que os programadores usam quando acessam um sistema de arquivo local.
  17. 17. Características Simplicidade Orientada a Objetos Independente de Plataforma Distribuída Robusta Java trabalha com uma rígida prevenção de comportamento malicioso dos programas, tais como: estouro de pilha, corrupção de memória de outros processos, etc. (fortemente tipada)
  18. 18. Características Simplicidade Orientada a Objetos Independente de Plataforma Distribuída A linguagem Java suporta vários recursos de alto desempenho, Robusta como multithreading, compilação just-in-time e utilização de código Alto Desempenho nativo.
  19. 19. Versões Code Developer Codename Release Version Version J2SE 1.4.2 Java 2 Mantis 2003 JSE 5.0 Java 5 Tiger 2005 JSE 6.0 Java 6 Mustang 2006 JSE 7.0 Java 7 Dolphin 2007
  20. 20. A Plataforma Java :: Java é mais que uma linguagem, é uma plataforma: • Java Standard Edition (JSE)‫‏‬ Edição básica para desenvolvimento desktop. • Java Enterprise Edition (JEE)‫‏‬ Tecnologias para desenvolvimento em servidores. • Java Micro Edition (JME) Edição para desenvolvimento para dispositivos móveis.
  21. 21. A Plataforma Java - Standard Edition
  22. 22. A Plataforma Java - Standard Edition
  23. 23. A Plataforma Java - Enterprise Edition • JEE é uma gama de tecnologias desenvolvidas sobre a distribuição básica. • Fornecem bases de implementação para software de estrutura cliente-servidor, como as aplicações web. • O desenvolvedor encontra na plataforma suporte a implementação de interfaces, controle da lógica interna de negócio, acesso a banco de dados, transações, etc.
  24. 24. A Plataforma Java – Enterprise Edition “Java EE é desenhado para suportar aplicações que implementem serviços empresariais para clientes, empregados, fornecedores e quaisquer outros que gerem demandas ou contribuições para a empresa” (Tutorial JEE - Sun)‫‏‬
  25. 25. A Plataforma Java – Mobile Edition “There are two configurations. The first configuration, the Connected Device Configuration (CDC), uses the classic Java virtual machine. This virtual machine is a full-featured virtual machine with the same functionality you would find in the virtual machine residing on your desktop system. The second configuration, the Connected Limited Device Configuration (CLDC), uses the K Virtual Machine, a small footprint virtual machine for severely memory constrained environments. The CLDC is targeted for Java environments of 128-512KB, and the CDC is targeted for Java environments of greater than 512KB. ” (java.sun.com/products/personaljava/faq.html)‫‏‬
  26. 26. A Plataforma Java – Enterprise Edition Entre as especificações JEE se encontram: • Servlets (aplicações web)‫‏‬ • JDBC (bancos de dados relacionais)‫‏‬ • JCA (conexão com mainframes e aplicações legadas)‫‏‬ • JTA (acesso a transações distribuídas)‫‏‬ • JavaMail (e-mail internet em Java)‫‏‬ • JMF (acesso a informações multimídia)‫‏‬ • EJB (componentes distribuídos e persistentes)‫‏‬ • JAXP (processamento de XML e web services)‫‏‬ • JMX (gerenciamento de servidores, redes e aplicações)‫‏‬
  27. 27. A Plataforma Java
  28. 28. Java na atualidade Presente Java e os Dias de Hoje
  29. 29. Java na atualidade • Hoje Java pode ser encontrado em celulares, DVD´s, chips, servidores, browsers, desktops, robôs e até espaçonaves. • Conta com mais de 5 milhões de desenvolvedores ao redor do mundo, organizados em comunidades que atuam em fóruns, projetos e especificações oficiais. • Desde 2006, em uma iniciativa surpreendente da Sun, Java é uma plataforma Open-Source.
  30. 30. Java na atualidade http://meapplicationdevelopers.dev.java.net/fragmentation.html
  31. 31. Java na atualidade
  32. 32. Java na atualidade http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
  33. 33. Java na atualidade
  34. 34. Ambientes de Desenvolvimento Java • Netbeans. • Eclipse. • Borland JBuilder. • Oracle JDeveloper.
  35. 35. IDEs Java
  36. 36. Inserir IDE NEtbeans
  37. 37. Os Desafios Futuros • Ao mesmo tempo em que parece estar em seu ápice, a linguagem Java nunca enfrentou tantas controvérsias. • Diversas iniciativas, em linguagens dinâmicas como Ruby/Rails, desafiam abertamente premissas fundamentais do estilo de programação experimentado em Java.
  38. 38. Os Desafios Futuros • O mercado está cada vez mais optando por ambientes híbridos, com o Java e .NET convivendo.
  39. 39. Os Desafios Futuros • Dados de mercado – por tamanho: › Pequenas e médias empresas são dominadas pela Microsoft: • .NET › Grandes empresas e multi-nacionais guiadas por infra- estruturas heterogêneas: • JAVA EE
  40. 40. Os Desafios Futuros • Produtividade do desenvolvedor: › .NET é geralmente aceita por ter maior produtividade. › JAVA EE pode requerer desenvolvedores mais sofisticados.
  41. 41. Os Desafios Futuros • Estratégia de decisão – 5 fatores a considerar: › Examinar possibilidades de investimentos; › Pesar a portabilidade das aplicações; • JAVA EE é portável › Verificar complexidade das aplicações; • UI complexas = .NET • Arquitetura complexa = JAVA EE › Investigar suporte do fabricante; › Computar custos com cuidado;
  42. 42. Os Desafios Futuros • Comparativo: CARACTERÍSTICA JAVA EE .NET Tecnologia Padrão Depende do Produto Linguagem JAVA C# Fabricantes Mais de 30 Microsoft Interpretador JRE CLR Páginas Web dinâmicas JSP ASP.NET Aplicativos RAD Swing, JSF e AJAX Win Forms e Web Forms Componentes de negócio EJB .NET Acesso a base de dados JDBC ADO.NET Suporta webservices Sim Sim Balanceamento de carga Sim Sim
  43. 43. Tipagem ? • Ruby é uma linguagem de tipagem-dinâmica, como Python, Groovy, Scala, e outras. • Rails é um framework desenvolvido para Ruby, a fim de agilizar o desenvolvimento de sistemas de internet. • A solução RubyOnRails compete com as tecnologias Java destinadas a construção de Aplicações Web. • A popularidade do Ruby, vem de uma linguagem mais simples, e de um framework que requer pouco código para fazer muitas coisas. “Uma página em Python ou Ruby pode levar metade do tempo que se tomaria para escrevê-la em Java” pá escrevê- Java”
  44. 44. Tipagem ? • A comunidade Java não vê linguagens dinamicamente-tipadas como inimigas. • A especificação Java JSR-223 (Scripting for the Java Platform) prevê a abertura da plataforma para execução de linguagens de script. • A possibilidade de utilizar linguagens diferentes para seus fins mais apropriados, em uma plataforma madura é um ponto positivo para a maior parte da comunidade Java. • Assim, as aplicações não precisam abrir mão dos tantos recursos e frameworks disponíveis para plataforma Java.
  45. 45. Tipagem ?
  46. 46. Futuro ? Java é mais que uma Linguagem
  47. 47. Futuro ? • O futuro do Java não reside na linguagem, mas na plataforma e no ecossistema que se desenvolveu em torno dela. • Um exemplo é a IDE Eclipse, que apesar de feita em Java, é utilizada para desenvolvimento em inúmeras linguagens, ambientes, e para fins diversos. • Outros exemplos são os super-servidores de aplicações, como WebSphere, BEA Logic ou JBOSS, que vão muito além da própria linguagem, oferecendo melhoria contínua de aplicações e processos, através da concorrência aberta.
  48. 48. Futuro ? • Por ser portável e robusta, além de possuir um rico conjunto de classes, a linguagem Java tem ganhado espaço em projetos de robótica e pesquisa aeroespacial. Fonte: Sun Microsystems java.sun.com/developer/technicalArticles/ Programming/robotics/ Fonte: blogs.sun.com/simonri Fonte: blogs.sun.com/simonri
  49. 49. Uma Aposta para o Futuro • Mercado de jogos – rodam em qualquer celular com JVM Java. • TV Digital – conversores possuem Java em seu middleware. • GSM – 90% dos chips GSM adotaram Java como padrão. • G24-Java – módulo wireless da Motorola desenvolvido para operar em java, ampliando o potencial para personalização de aplicativos e configurações, além de permitir que as atualizações sejam realizadas remotamente (11/09/2008).
  50. 50. Uma Aposta para o Futuro Televisão Digital no Brasil: os conhecimentos e tecnologias associadas a ela ganham destaque e o mercado deve crescer muito nos próximos anos. Nicho: desenvolvimento de sistemas que ofereçam suporte á produção de conteúdo. . A tecnologia da plataforma JAVA é o suporte a várias tecnologias que permitem a criação de sistemas deste tipo que, unindo-se a pacotes e Frameworks específicos, oferecem as ferramentas necessárias. (JavaTV ).
  51. 51. Mercado Java - Salários Desenvolvedor Junior = R$ 2.259,00 (CLT)‫‏‬ Desenvolvedor Pleno = R$ 3.560,00 (CLT)‫‏‬ Desenvolvedor Sênior = R$ 5.015,00 (CLT)‫‏‬ Gerente de Projetos de Sistemas = R$ 3.832,00 – R$ 8.803,00 Gerente de TI = R$ 5.563,00 – R$ 13.243,00 *Valores Médios de Mercado Mé Fonte: dicasinfo-Exame dicasinfo-
  52. 52. O Pioneirismo do Infnet • O Infnet foi o pioneiro do ensino de Java no Rio de Janeiro, ministrando curso desta tecnologia antes mesmo da Sun. Formação Desenvolvedor Java Código Nome do curso Horas Projeto de Sistemas e Orientação a Objetos com UML I550 40 h Ensinar conceitos de orientação a objetos e sua utilização no processo de desenvolvimento de software usando UML. Java Programming I552 48 h Ensinar a programar em Java para alunos que já sabem programar em qualquer outra linguagem. Java Web Applications I554 48 h Ensinar questões avançadas do desenvolvimento de aplicações Web com a linguagem de programação Java e os frameworks mais usados no mercado.
  53. 53. A Formação Completa do Infnet Formação Desenvolvedor Java: Sistemas Distribuídos Código Nome do curso Horas Projeto de Sistemas e Orientação a Objetos com UML I550 Ensinar conceitos de orientação a objetos e sua utilização no processo 40 h de desenvolvimento de software usando UML. Java Programming I552 Ensinar a programar em Java para alunos que já sabem programar em 48 h qualquer outra linguagem. Java Web Applications Ensinar questões avançadas do desenvolvimento de aplicações Web I554 48 h com a linguagem de programação Java e os frameworks mais usados no mercado. Java Enterprise Applications I556 Ensinar conceitos avançados de programação em Java para sistemas 48 h com alta demanda de acesso e segurança. Java Security I558 Ensinar conceitos avançados de segurança em Java para sistemas 24 h desktop e J2EE. Java Mobile I560 Ensinar programação Java para dispositivos móveis, como celulares e 32 h hand helds. Java Workshop I562 Colocar em prática o conhecimento avançado de desenvolvimento de 32 h aplicações Java.
  54. 54. Agradecimentos - Tomás de Aquino - Rafel Castaneda OBRIGADO!
  55. 55. www.infnet.edu.br cursos@infnet.edu.br 2122-8800 Esta palestra está disponível em: http://www.infnet.edu.br/Home/Eventos/CiclodePalestraseMiniCursos//tabid/253/Default.aspx Ministrada por André Luiz Monteiro da Costa E-mail: andre.monteiro@prof.infnet.edu.br

×