O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Java: Muito mais que uma linguagem!

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Aula 01   O que é java
Aula 01 O que é java
Carregando em…3
×

Confira estes a seguir

1 de 58 Anúncio
Anúncio

Mais Conteúdo rRelacionado

Diapositivos para si (19)

Semelhante a Java: Muito mais que uma linguagem! (20)

Anúncio

Java: Muito mais que uma linguagem!

  1. 1. Java: muito mais que uma linguagem! Aécio Costa Pós Graduação FCAP-UPE Engenheiro de Sistemas - CESAR
  2. 2. Agenda  Java: A linguagem  Plataforma Java  JVM – Java Virtual Machine  JRE, JDK  Tecnologias  Plataformas  Linguagens  Frameworks
  3. 3. SunOne 2003 – Java is everywhere! http://www.youtube.com/watch?v=guXCmQDy9Es&feature=relmfu
  4. 4. Java: A linguagem “Java é uma linguagem de programação de propósito geral, concorrente, baseada em classes e orientada a objetos. Projetada para ter o mínimo de dependências possível permitindo desenvolvedores escrever um programa uma vez e depois ser capaz de executá-lo em qualquer lugar na internet.” [ORACLE] James Gosling Pai do Java
  5. 5. Java: A linguagem  JCP – Java Community Process Mecanismo para o desenvolvimento de especificações técnicas padrão para a tecnologia Java.  JSR – Java Specification Requests Simples versão de uma especificação Java. ◦ Especificações  JDBC, JSP, Servlet API, JAX-WS, ... ◦ Membros
  6. 6. JCP e ALJUG  Promove educação, treinamentos, eventos (como este!) e etc.;  Lugar onde é possível encontrar profissionais com expertise em diversos assuntos Java;  Programas lançados pela JCP como “o seu JUG no JavaOne Latin America” ou “Adote uma JSR”; Desconto de 15% para os JUGs cadastrados no evento; JUG responsável por uma JSR;  Além de Network e Currículo.
  7. 7. Plataforma Java Java não é apenas uma linguagem... ...é uma Plataforma. Plataforma é uma infra-estrutura para programação baseada no poder das redes de computadores e na idéia de que uma mesma aplicação possa executar em diferentes máquinas, aparelhos e dispositivos eletrônicos. "Write once, run anywhere“ [Sun Microsystems]
  8. 8. Plataforma Java De laptops à datacenters, game consoles à super computadores, telefones à Internet, Java is everywhere!  1.1 bilhões de desktops rodam Java;  930 milhões de downloads da Java Runtime Environment a cada ano;  3 bilhões de mobile phones rodam Java;  100% de todos Blu-ray players rodam Java;  1.4 bilhões Java Cards são fabricados a cada ano;  Set-top boxes, impressoras, Web cams, games, car navigation systems, terminais de loteria, dispositivos médicos, estações de pagamento de estacionamento, e muito mais rodam Java.
  9. 9. JVM – Java Virtual Machine JVM é a base da plataforma Java. É o componente responsável pela independência. [ORACLE]
  10. 10. JVM – Java Virtual Machine Características  JVM não sabe nada sobre a Linguagem Java;  Entende um tipo de arquivo binário particular denominado arquivo de classe (.class);  O arquivo .class contém instruções também conhecidos como bytecodes;  A JVM impõe fortes restrições sintáticas e estruturais sobre o código (.class);  Qualquer linguagem que possa gerar arquivos de classe pode ser hospedada na máquina virtual Java.
  11. 11. JVM – Java Virtual Machine
  12. 12. JVM – Java Virtual Machine Implementações  HotSpot;  OpenJDK;  JRockit;  ...
  13. 13. JRE, JDK  JRE – Java Runtime Enviroment Conjunto de ferramentas que permitem a execução de aplicativos Java.  JDK – Java Development Kit Conjunto de ferramentas que permite desenvolver aplicações Java.
  14. 14. JRE, JDK Arquitetura
  15. 15. Tecnologias  Desktop (Swing)  Web (Applets, JSP, Servlets)  Mobile/Embedded (Midlets, Xlets)
  16. 16. Plataformas JSE – Java Standard Edition Permite desenvolver aplicações seguras, portáveis e de alto desempenho para a mais ampla variedade de plataformas.  JVM  BibliotecasPadrão (java.lang, java.io, ...)  Aplicações Desktop  UI: Swing
  17. 17. Plataformas JSE – Java Standard Edition  Arquitetura
  18. 18. Plataformas JEE – Java Enterprise Edition Padrão da indústria para aplicações Java para o ambiente Web e Server-Side.
  19. 19. Plataformas JEE – Java Enterprise Edition  Arquitetura
  20. 20. Plataformas JEE – Java Enterprise Edition Implementa especificações como:  Servlets  JSP – Java Server Pages  EJB – Entreprise Java Beans  JPA – Java Persistence API
  21. 21. Plataformas JEE – Java Enterprise Edition  Servlet Container Componente de um Web Server que interage com Servlets Java. javax.servlet.*  Application Server Servidor que implementa as especificações JavaEE. javax.ejb.*
  22. 22. Plataformas JEE – Java Enterprise Edition Servlet Container x Application Server
  23. 23. Plataformas JME – Java Micro Edition Plataforma usada para desenvolver aplicações para celulares.  Midlets  Especificamente Feature Phones  UI: Lwuit
  24. 24. (Plataformas) “A primeira plataforma verdadeiramente aberta e compreensiva para dispositivos móveis, tudo que um software mobile precisa, mas sem obstáculos que escondam a inovação.” Andy Rubin Director of Mobile Platforms http://googleblog.blogspot.com/2007/11/wheres-my-gphone.html
  25. 25. (Plataformas) Características  Linux  Linguagem Java  Máquina Virtual Dalvik  Framework para desenvolvimento de app  Biblioteca de Gráficos  SQLite  Suporte a multimídia  Tecnologia GSM  Bluetooth, EDGE, 3G e WiFi  Câmera e GPS  Web Services  Content Providers
  26. 26. Plataformas JavaCard Permite o desenvolvimento de aplicações para serem embarcadas em smart cards, sim cards, NFC e dispositivos similares que possuam pouca memória.
  27. 27. Plataformas JavaTV Permite o desenvolvimento de aplicações para uso em set-top boxes permitindo interatividade na TV.  100% dos Blu-ray Disc Players embarcam JavaTV  Middleware de diversos padrões em TV Digital (MHP, Ginga)
  28. 28. Plataformas JavaTV  JMF – Java Media Framework  JavaDTV  Ginga-J  HAVi  DAVIC javax.tv.service, javax.tv.graphics, …
  29. 29. Plataformas JavaFX Permite o desenvolvimento de aplicativos clientes Java com interfaces (UI) ricas.
  30. 30. Plataformas JavaFX  Permite aos usuários uma melhor experiência no uso;  Utilizado em navegadores ou desktop;  Mais de 50 gráficos personalizáveis​​, formulários e componentes layout que podem ser integrados em aplicações Swing existentes;  Alta performance com acelerador de hardware para gráficos permitindo visualização de interfaces ricas e complexas.
  31. 31. Linguagens Características  Linguagem Dinâmica;  Baseada em Java com características inspiradas em Python, Ruby e Smalltalk;  Curva mínima de aprendizagem;  Aumenta a produtividade reduzindo scaffolding code;  Integra sem problemas com classes e bibliotecas Java existentes;  Compila diretamente para Java bytecode.
  32. 32. Linguagens “Groovy é como uma super versão do Java. Ela aproveita as capacidades do Java e provê recursos de produtividade interessantes como closures, builders e tipagem dinâmica. Se você é um desenvolvedor, você vai amar Groovy.” [GROOVY]
  33. 33. Linguagens Exemplo Código
  34. 34. Linguagens Implementação da linguagem Python em Java que combina poder com sintaxe muito limpa e suporte a P.O.O. Jython é complementar a Java e muito usado para:  Embedded scripting  Interactive experimentation  Rapid application development
  35. 35. Linguagens  Embedded scripting Possibilidade de adicionar bibliotecas Jython aos seus softwares permitindo usuários finais escreverem scripts simples ou complexos que adicionem funcionalidades a aplicação.  Interactive experimentation Fornece um interpretador que pode ser usado para interagir com pacotes Java ou com aplicações Java rodando. Isso possibilita depuração de sistemas Java usando Jython.  Rapid application development Programas em Python são tipicamente menores do que programas em Java equivalentes. Jython provê maior produtividade além de poder misturar as duas linguagens.
  36. 36. Linguagens Características  Compilação dinâmica para Java bytecodes;  Possibilidade de extender classes Java em Jython (permite efeitos de classes abstratas e etc);  Permite criação de applets, servlets, beans,...;  Trabalha com bibliotecas já inscritas em Java;  Excelente Linguagem de scripts para ser embarcada.
  37. 37. Linguagens Exemplo Código
  38. 38. Linguagens Características  Implementação da linguagem Ruby 100% em Java para JVM;  Maioria das bibliotecas padrão Ruby;  Some are still missing, but we hope to implement as many as is feasible. [JRuby].  Alta performance.
  39. 39. Linguagens Plataformas e Ferramentas  Web Applications  JRuby on Rails  Porting de aplicações Rails para JRuby  Desktop Applications  Cheri::Swing  Limelight  Monkeybars  Rswing  ...  Tools  JRuby Rake
  40. 40. Linguagens Exemplo Código
  41. 41. Linguagens Linguagem de programação projetada para expressar padrões de programação comuns de uma forma concisa e elegante. Integra recursos de linguagens OO e funcional trazendo maior produtividade. [SCALA]
  42. 42. Linguagens Características  Linguagem Orientada à Objeto/Funcional;  Estaticamente Tipada;  Closures;  Interoperabilidade com Java e .NET.
  43. 43. Linguagens Porque migrar?  Impulsionar produtividade;  Escalar aplicações;  Confiabilidade total.
  44. 44. Linguagens Case
  45. 45. Linguagens Case
  46. 46. Linguagens Case back end  Mudança do Core do enfileiramento de mensagens;  Motivo: Atender rápidas taxas de crescimento do Twitter;  1500 Linhas de Código Scala;  Projeto Open-Source Twitter Kestrel.
  47. 47. Linguagens Características  Roda na JVM, CLR e em JavaScript engines;  Dialeto da linguagem LISP;  Linguagem Funcional;  Ênfase em recursão;  Linguagem Dinâmica;  Concorrência.
  48. 48. Linguagens Exemplo de Código 1
  49. 49. Linguagens Exemplo de Código 2
  50. 50. Frameworks  Apache Velocity  Struts  JSF – Java Server Faces  Google Web Toolkit  Spring  EclipseLink  Hibernate  JBoss Seam  ...
  51. 51. Frameworks Framework open source para criação de aplicações Java Web. Desenhado para permitir a separação arquitetural em MVC (Model,View, Controller). Versão Atual: Struts 2
  52. 52. Frameworks Especificação padrão baseada em componentes de UI para a plataforma Java EE. [JSF] Especificado na JSR – 314, JSF estabelece o padrão para construir UI do lado do servidor. [ORACLE]. Versão Atual: JSF 2.0
  53. 53. Frameworks Implementações
  54. 54. Frameworks Oferece uma programação abrangente e um modelo de configuração para aplicações baseadas em Java EE. [SPRING]  Spring Security  Spring Integration  Spring Batch  Spring Data  Spring Web Flow  Spring Web Services  Spring Mobile  Spring Social  Spring Android
  55. 55. Frameworks Framework para mapeamento objeto relacional (ORM) para a linguagem Java.  Mapeia classes Java para base de dados;  Persistência de objetos POJO’s;  Hibernate Query Language (HQL);  Possui outros componentes como:  Hibernate Validator  Hibernate OGM – Object/Grid Mapper  ...
  56. 56. Dúvidas?
  57. 57. Referências [ORACLE] http://docs.oracle.com/javase/specs/jls/se7/html/jls-1.html [SCALA] http://www.scala-lang.org/ [GROOVY] http://groovy.codehaus.org/ [JYTHON] http://www.jython.org/ [JRUBY] http://jruby.org/ [STRUTS] http://struts.apache.org/ [JSF] http://www.javaserverfaces.org/ [SPRING] http://www.springsource.org/spring-framework [HIBERNATE] http://www.hibernate.org [ANDROID] http://developer.android.com
  58. 58. Obrigado! www.aeciocosta.com.br www.cesar.org.br

×