O que é Java? Prof. M.Sc. Ronnison Reges Vidal. Roteiro Introdução Java Máquina Virtual ...

39
O que é Java? Prof. M.Sc. Ronnison Reges Vidal

Transcript of O que é Java? Prof. M.Sc. Ronnison Reges Vidal. Roteiro Introdução Java Máquina Virtual ...

O que Java?

O que Java?Prof. M.Sc. Ronnison Reges VidalRoteiroIntroduoJavaMquina VirtualVersesJVM, JRE, JDKOnde usar e ObjetivosCompilandoExecutandoExercciosIntroduoObjetivosO que Java?Vantagens e desvantagensEntender o conceito de Mquina VirtualCompilar e ExecutarIntroduoJAvaQuais eram os seus maiores problemas quando programava na dcada de 1990?Ponteiros?Gerenciamento de memria?Organizao?Falta de bibliotecas?Ter de reescrever parte do cdigo ao mudar de sistema operacional?Custo financeiro de usar a tecnologia?JavaJava resolve bem esses problemasAparecimento com frequncia em outras linguagensMotivao da criao da plataforma JavaUtilizada em pequenos dispositivos, como tvs, video-cassetes, aspiradores, liquidificadores e outrosFoco inicialClientes Web (Browser) - AppletsJavaDesenvolvido e Mantido pela Sun (http://www.sun.com)Site principal: http://java.sun.com

JavaHistricoA Sun criou um time (conhecido como Green Team) para desenvolver inovaes tecnolgicas em 1992Esse time foi liderado por James Gosling, considerado o pai do JavaIdeia de criar um interpretador (mquina virtual)Para pequenos dispositivosFacilidade na reescrita de software para aparelhos eletrnicos, como vdeo-cassete, televiso e aparelhos de TV a cabo.JavaHistricoA ideia no deu certoNo houve xito devido ao conflito de interesses e custosHoje Java domina o mercado de aplicaes para celulares com mais de 2.5 bilhes de dispositivos compatveis, porm em 1994 ainda era muito cedo para issoJavaHistricoCom o advento da webSun percebeu que poderia utilizar a ideia criada em 1992 para rodar pequenas aplicaes dentro do browserSeria de grande vantagem programa na web numa nica linguagem independente de plataformaGrande quantidade de linguagens de programao e sistemas operacionaisJavaHistricoJava 1.0Foco: Transformar o browser em um cliente fino (thin client)Realizando operaes no somente renderizando htmlJava curioso notar que a tecnologia Java nasceu com um objetivo em mente, foi lanado com outro, mas, no final, decolou mesmo no desenvolvimento de aplicaes do lado do servidor. Sorte?Java no BrasilDiversos grupos de usurios se formaram para tentar disseminar o conhecimento da linguagemGUJ (http://www.guj.com.br)Uma comunidade virtual com artigos, tutoriais e frum para tirar dvidas, o maior em lngua portuguesa com mais de cem mil usurios e 1 milho de mensagensJava

JavaMquina VirtualLinguagens de programao convencionalC e Pascal

O cdigo fonte compilado para cdigo de mquina especfico de uma plataforma e sistema operacional.Muitas vezes o prprio cdigo fonte desenvolvido visando uma nica plataforma!Mquina VirtualCdigo fonte em CCdigo Binrio para um determinado SOCompiladorO cdigo executvel (binrio) resultante ser executado pelo sistema operacionalEste deve saber conversar com o sistema operacional em questoMquina Virtual

Na maioria das vezes, uma aplicao se utiliza das bibliotecas do sistema operacionalA de interface grfica para desenhar as telasA biblioteca de interface grfica do Windows bem diferente das do LinuxMquina VirtualComo criar ento uma aplicao que rode de forma parecida nos dois sistemas operacionais?Mquina VirtualCamada, entre o sistema operacional e a aplicao, responsvel por traduzirO que sua aplicao deseja fazer para as respectivas chamadas do sistema operacional onde ela est rodando no momentoMquina Virtual

Independncia do sistema operacionalIndependncia de plataformaSistema operacional sua aplicao est rodando, nem em que tipo de mquina, configuraes, etcIsolamentoTal caracterstica interessanteTudo passa pela JVM, ela pode tirar mtricas, decidir onde melhor alocar a memria, entre outros

MquinaJVM (Java Virtual Machine)Entende um cdigo de mquina especficoGerado por um compilador Java JAVACBytecodeMquina VirtualWrite Once, Run AnywhereEsse um slogan que a Sun usa para o Java, j que voc no precisa reescrever partes da sua aplicao toda vez que quiser mudar de sistema operacionalVersesA confuso do Java2Java 1.0 e 1.1 so as verses muito antigas do Java, mas j traziam bibliotecas importantes como o JDBC e o java.ioCom o Java 1.2 houve um aumento grande no tamanho da API, e foi nesse momento em que trocaram a nomenclatura de Java para Java2, com o objetivo de diminuir a confuso que havia entre Java e JavascriptVersesA confuso do Java2

Depois vieram o Java2 1.3 e 1.4, e o Java 1.5 passou a se chamar Java 5, tanto por uma questo de marketing e porque mudanas significativas na linguagem foram includasAt a verso 1.4, existia um terceiro nmero (1.3.1, 1.4.1, 1.4.2, etc), indicando bug fixes e melhoriasVersesMas lembre-se, no h verso Java 2.0, o 2 foi incorporado ao nome, tornando-se Java2 1.2A confuso do Java2Hoje a ltima verso disponvel do Java a 6.0, lanada em 2006. Da verso 1.4 para a 5.0, a linguagem sofreu muitas modificaes, o que de certa forma fomentou a mudana no versionamento do JavaJ o Java 6.0 no trouxe nenhuma mudana na linguagem, mas trouxe mais recursos na API e muitas melhorias de performance na VMVersesExiste compatibilidade para trs em todas as verses do JavaVersesJVM, JRE, JDKO que gostaramos de baixar no site da Oracle/Sun?JVM = apenas a virtual machine, esse download no existe, ela sempre vem acompanhadaJRE = Java Runtime Environment, ambiente de execuo Java, formado pela JVM e bibliotecas, tudo que voc precisa para executar uma aplicao JavaJDK = Java Development Kit: Desenvolvedores devem fazer o download do JDK do Java SE (Standard Edition). Ele formado pela JRE somado a ferramentas, como o compiladorJVM, JRE, JDKTanto o JRE e o JDK podem ser baixados do site http://java.sun.com, hoje gerenciado pela OracleJVM, JRE, JDKOnde usar e objetivosO foco da plataforma outro: aplicaes de mdio a grande porte, onde o time de desenvolvedores tem vrias pessoas e sempre pode vir a mudar e crescerNo tenha dvidas que criar a primeira verso de uma aplicao usando Java, mesmo utilizando IDEs e ferramentas poderosas, ser mais trabalhoso que muitas linguagens script ou de alta produtividadePorm, com uma linguagem orientada a objetos e madura como o Java, ser extremamente mais fcil e rpido fazer alteraes no sistema, desde que voc siga as boas prticas e recomendaes sobre design orientado a objetosOnde usar e ObjetivosCriar uma aplicao sofisticada, usando diversos recursos, sem precisar comprar componentes especficosRelatrios, grficos, sistemas de busca, gerao de cdigo de barra, manipulao de XML, tocadores de vdeo, manipuladores de texto, persistncia transparente, impresso, etcOnde usar e ObjetivosO uso do Java interessante em aplicaes que viro a crescerQuando a legibilidade do cdigo importante, onde temos muita conectividade e se h muitas plataformas (ambientes e sistemas operacionais) heterogneas (Linux, Unix, OSX e Windows misturados)Onde usar e ObjetivosCompilaoHelloWorld

Burocracia JavaCompilaoSystem.out.println(Hello World Java!");1 class MeuPrograma {2 public static void main(String[] args) {3 System.out.println(" Hello World Java!");4 }5 }Salvar com:MeuPrograma.javaChamar o compilador JAVAC e gerar o bytecodeCompilao

ExecuoAps compilado, invoque a mquina virtualExecuo

1) Altere seu programa para imprimir uma mensagem diferente2) Altere seu programa para imprimir duas linhas de texto usando duas linhas de cdigo System.out3) Sabendo que os caracteres \n representam uma quebra de linhas, imprima duas linhas de texto usando uma nica linha de cdigo System.outExerccios