Introdução aos computadores, à Internet e à World Wide Web Prof. Marcelo Roberto Zorzan História do Java Origem Linguagem desenvolvida pela Sun Microsystems Sintaxe similar ao C++ Inicialmente chamada Oak Principais características Orientada a objetos Gerência automática de memória (garbage collection) Portabilidade - independente de arquitetura Livre/Open Source Robusta sem ponteiros e alocação direta de memória tratamento de exceções História do Java Java Originalmente desenvolvido para dispositivos eletrônicos inteligentes de consumo popular. Depois utilizado para criar páginas da Web com conteúdo dinâmico. Agora também utilizado para: Desenvolver aplicativos corporativos de larga escala. Aprimorar funcionalidades de servidores Web. Fornecer aplicativos para dispositivos de consumo popular (telefones celulares etc.) Bibliotecas de classe do Java Programas Java Consistem em partes chamadas classes, as quais incluem métodos que realizam tarefas e retornam informações ao concluir. Programadores podem criar classes e métodos para construir programas Java. O Java oferece bibliotecas de classe Conhecidas como Java APIs Java APIs Java APIs: Interfaces de programação de aplicativos Java (Java Application Program Interfaces) Definição: conjunto de classes e métodos relacionados que funcionam juntos para fornecer um recurso específico. A API do Java 1.8 pode ser consultada em: https://docs.oracle.com/javase/8/docs/api/ Java APIs Plataformas Java Plataforma Ambiente de hardware e/ou software no qual um programa é executado A plataforma Java é somente de software Esta plataforma de execução funciona sobre outras plataformas de hardware e software. Plataformas Java Java é uma multiplataforma. linguagem de programação Devido a essa característica, Java conta com três conhecidos ambientes de desenvolvimento: JSE, JEE, JME. Cada um destes ambientes possui suas bibliotecas (APIs) específicas Plataformas Java JME JSE JEE Plataformas Java Java SE (Java Standard Edition) kit básico com utilitários e APIs essenciais(String, I/O, Coleções, etc) É o mais utilizado e mais abrangente Indicado para quem quer aprender a linguagem Voltado para desenvolvimento em PCs e servidores Plataformas Java Java EE (Java Enterprise Edition) É a tecnologia Java para aplicações corporativas que podem estar na internet ou não. Possui um grande número de APIs onde a segurança é a principal preocupação. É ideal para a construção de servidores de aplicação, integração de sistemas ou distribuição de serviços para terceiros. Plataformas Java Java ME (Java Micro Edition) Ambiente de desenvolvimento para dispositivos móveis ou portáteis Possui APIs bem simples e leves para economizar espaço, memória e processamento. Desenvolvido para aplicações de dispositivos pequenos (como telefone celular, pager, palm) e outras aplicações com restrição de memória. Ambiente de execução do Java Como java funciona ? Java segue convenções de nomes de arquivos: arquivos com código fonte têm sufixo “.java” arquivos executáveis têm sufixo “.class”. Como Java funciona? Java é uma linguagem compilada e interpretada. O código fonte java é transformado em instruções binárias simples. O código de bytes (byte-code) é executado por um interpretador Java em tempo de execução (runtime) Uma mesma aplicação Java pode ser executada em qualquer plataforma que ofereça um ambiente de execução do Java. O interpretador Java é chamado de “Máquina Virtual Java” (JVM). JVM, JRE, JDK Qual a Diferença? JVM (Java Virtual Machine): é uma máquina virtual que interpreta e executa o código Java compilado (bytecode). JDK (kit de desenvolvimento java): é necessário para desenvolver softwares Java. Inclui a JRE e ferramentas de programação, como: javac - compilador jar - empacotador javadoc - ferramenta para geração de documentação JRE (ambiente de execução java): é uma versão mais leve da JDK pois é preparada para o ambiente de execução. Consiste na JVM e na Java API, que são as bibliotecas de classes presentes em todos os ambientes de produção Java Ambiente de Desenvolvimento Programas Java normalmente passam por cinco fases: Edição: o programador escreve programa (e armazena o programa em disco). Compilação: o compilador cria bytecodes a partir do programa. Carga: o carregador de classe armazena bytecodes na memória. Verificação: o verificador de bytecodes confirma que os bytecodes não violam restrições de segurança. Execução: a JVM traduz bytecodes em linguagem de máquina. Desenvolvimento x Execução IDE IDE – Integrated Development Environment Ambiente Integrado de Desenvolvimento Existem vários ambientes integrados de desenvolvimento para Java NetBeans Eclipse BlueJ SunOne JBuilder JEdit Certificação Java Certificação Java Certificação SCJP 1.6 Nome: Sun Certified Programmer for the Java Platform, Standard Edition 6 Número de questões: 72 Pontuação mínima: 65% (47 questões) Duração: 210 min (3h 30min) Pré-requisitos: Nenhum Prova baseada em testes de múltipla escolha Idioma: Inglês Introdução à UML Unified Modeling Language™ (UML™): Linguagem gráfica que utiliza notação-padrão. Permite a desenvolvedores representar projetos orientados a objetos. Flexível e extensível. Facilita a documentação, pois possui suporte para a criação e documentação de vários dos artefatos que são gerados durante o desenvolvimento de um sistema Introdução a UML Exemplo de diagrama de classe Referência DEITEL, H. M. & DEITEL, P. J., LISBOA, C. A . L. Java, como programar. 6ª Ed. São Paulo: Pearson, 2005. (Capítulo 1) DEITEL, H. M. & DEITEL, P. J., LISBOA, C. A . L. Java, como programar. 8ª Ed. São Paulo: Pearson, 2010. (Capítulo 1) Exercícios Preencha as lacunas abaixo sobre o ambiente Java: a) O comando _____ do J2SE executa um aplicativo Java. b) O comando ______ do J2SE compila um programa Java. c) Um arquivo de programa Java deve terminar com extensão de arquivo ______. Exercícios d) Quando um programa Java é compilado, o arquivo produzido pelo compilador termina com a extensão de arquivo _____. e) O arquivo produzido pelo compilador Java contém ______ que são executados pela Java Virtual Machine. Próxima Aula... • Introdução aos aplicativos Java