02/04/2015 Material elaborado pelo prof. Leandro A. F. Fernandes com contribuições dos profs. Anselmo A. Montenegro e Marcos Lage Programação de Computadores II TCC-00.309 | Turma A-1 Conteúdo Introdução ao Ambiente de Desenvolvimento Professor Leandro Augusto Frata Fernandes [email protected] Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2015.1/tcc-00.309 Histórico 1991 Início em 1991 com um pequeno grupo de projeto da Sun Microsystems, denominado Green Team O projeto visava o desenvolvimento de software para uma ampla variedade de dispositivos de rede e sistemas embutidos James Gosling decide pela criação de uma nova linguagem de programação que fosse simples, portátil e fácil de ser programada Surge a linguagem interpretada Oak (carvalho em inglês), mais tarde rebatizada como Java devido a problemas de direitos autorais Duke é o mascote do Java TCC-00.309 Programação de Computadores II 2 1 02/04/2015 Histórico 1991 1994 Mudança de foco para aplicação na Internet (visão: um meio popular de transmissão de texto, som, vídeo) Projetada para transferência de conteúdo de mídia em redes com dispositivos heterogêneos Também possui capacidade de transferir “comportamentos”, junto com o conteúdo (HTML por si só não faz isso) Em 1994, Jonathan Payne e Patrick Naughton desenvolveram o programa navegador WebRunner TCC-00.309 Programação de Computadores II 3 Histórico 1991 1994 1995 No SunWorld’95 a Sun apresenta formalmente o navegador HotJava e a linguagem Java Poucos meses depois a Netscape Corporation lança o seu navegador capaz de fazer download e executar pequenos códigos Java chamados de Applets Imediatamente a Sun decide disponibilizar o Java gratuitamente para a comunidade de desenvolvimento de softwares e assim surge o Java Developer’s Kit 1.0 (JDK 1.0) Inicialmente disponível para Sun Solaris e Microsoft Windows 95/NT Progressivamente surgiram kits para plataformas como Linux e Apple Macintosh TCC-00.309 Programação de Computadores II 4 2 02/04/2015 Histórico 1991 1994 1995 2010 Oracle adquire a Sun Microsystems e passa a ser a “dona” do Java Java Platform (JDK), Standard Edition está disponível para download em http://www.oracle.com/technetwork/java/javase/downloads A Integrated Development Environment (IDE) mantida pela Oracle é o NetBeans, também disponível em http://www.oracle.com/technetwork/java/javase/downloads Eclipse é uma das IDEs mais utilizadas http://www.eclipse.org/downloads/moreinfo/java.php Outra opção é o BlueJ, disponível em http://www.bluej.org/ TCC-00.309 Programação de Computadores II 5 Características da Linguagem Java • • • • • • • Simples • Coletor de lixo (garbage collector) para desalocar recursos Orientada a objetos Interpretada, neutra e portável Alta performance Robusta Segura Facilidades para criação de programas distribuídos e multitarefas TCC-00.309 Programação de Computadores II 6 3 02/04/2015 Características da Linguagem Java Simples e Orientada a Objetos • • É de fácil aprendizado Puramente orientado a objetos Permite o desenvolvimento de sistemas de uma forma mais natural TCC-00.309 Programação de Computadores II 7 Características da Linguagem Java Interpretada, Neutra e Portável • Permitindo que o código em Java possa ser escrito independente da plataforma • Bytecodes executam em qualquer máquina que possua uma Java Virtual Machine (JVM) • Neutra em relação à arquitetura Característica que permite uma grande portabilidade TCC-00.309 Programação de Computadores II 8 4 02/04/2015 Características da Linguagem Java Interpretada, Neutra e Portável • Em java: 1. Todo o código é inicialmente escrito em arquivos de texto .java 2. Esses arquivos fonte são compilados para arquivos .class pelo compilador javac 3. A ferramenta “lançadora” java roda a aplicação em uma instancia da Java Virtual Machine • Um arquivo .class contém bytecodes TCC-00.309 Programação de Computadores II 9 Características da Linguagem Java Interpretada, Neutra e Portável MyProgram.java Java API Java Virtual Machine Hardware-Based Plataform ** Java API: Java Application Programming Interface TCC-00.309 Programação de Computadores II 10 5 02/04/2015 Características da Linguagem Java Interpretada, Neutra e Portável TCC-00.309 Programação de Computadores II 11 Características da Linguagem Java Interpretada, Neutra e Portável Bytecodes J V M J C Win95/98 J V M J C WinNT J V M J C Linux TCC-00.309 Programação de Computadores II J V M J C Solaris 12 6 02/04/2015 Características da Linguagem Java Interpretada, Neutra e Portável Editor .java .class Carregador Bytecodes verificados Compilador Bytecodes não verificados Verificador Interpretador TCC-00.309 Programação de Computadores II 13 Características da Linguagem Java Alta Performance • É uma linguagem interpretada Existe uma grande discussão quanto a sua performance. • Fato: As melhorias na tecnologia de compilação, tem aproximado o desempenho ao de linguagens como C e C++ • Ex.: Benchmarks mostram melhor desempenho em alguns casos e pior em outros, caracterizando “empate técnico” http://blog.cfelde.com/2010/06/c-vs-javaperformance/ TCC-00.309 Programação de Computadores II 14 7 02/04/2015 Características da Linguagem Java Robusta e Segura • As seguintes características contribuem para tornar a linguagem mais robusta e segura: É fortemente tipada Não possui aritmética de ponteiros Possui mecanismo de coleta de lixo Possui verificação rigorosa em tempo de compilação Possui mecanismos para verificação em tempo de execução Possui gerenciador de segurança Possui mecanismos de segurança que evitam operações no sistema de arquivos da máquina alvo TCC-00.309 Programação de Computadores II 15 Características da Linguagem Java Distribuída • • Projetada para trabalhar em ambiente de redes Não é uma linguagem para programação distribuída Oferece bibliotecas para facilitar o processo de comunicação TCC-00.309 Programação de Computadores II 16 8 02/04/2015 Características da Linguagem Java Dinâmica e Multithread • • Resolução de referências em tempo de execução Suporte para múltiplas threads de execução Threads podem tratar diferentes tarefas concorrentemente TCC-00.309 Programação de Computadores II 17 O Ambiente de Desenvolvimento Java SDK • Ambiente de desenvolvimento de software Java Antigamente denominado JDK (Software Development Kit) • • Contém um amplo conjunto de APIs Java SDK não é um ambiente integrado de desenvolvimento Não oferecendo editores ou ambiente de programação TCC-00.309 Programação de Computadores II 18 9 02/04/2015 Algumas Ferramentas do Java SDK • • • • • javac: compilador Java • • jdb: depurador de programas Java java: interpretador de aplicações Java appletsviewer: interpretador de applets Java javadoc: gerador de documentação para código Java jar: manipulador de arquivos comprimidos no formato Java Archive etc. TCC-00.309 Programação de Computadores II 19 Exercício • Baixe e instale o Java SDK e o NetBeans em sua máquina • Crie um projeto no NetBeans, adicione o código abaixo, compile e execute a seguinte classe: public class HelloWorld { public static void main(String[] args) { System.out.println(“Olá mundo!”); } } TCC-00.309 Programação de Computadores II 20 10