Linguagens de Programação II Aula 1 - Fundamentos Java SE Instituto Metodista Izabela Hendrix Curso de Tecnologia em Análise e Desenvolvimento de Sistemas Prof. Gilmar Medeiros – Fevereiro/2010 Outline Histórico da Linguagem Apresentação das Tecnologias Java Java SE, EE, ME e FX Paradigmas mais comuns de programação Java Standard Edition: desenvolvimento desktop: Características: vantagens e desvantagens; Comparação com a linguagem C/C++ Notação básica e primeiros programas desenvolvidos em Java Java - Histórico 1991 - Inicialmente idealizada para uso em dispositivos inteligentes de pequeno porte: Geladeiras, controles remotos, dispositivos portáteis Primeiramente chamada Oak, rebatizada como Java – sintaxe baseada em C++; Alavancada em 1995, com a popularidade da Web, proporcionando suporte a conteúdo dinâmico; Hoje encontrada nas mais variadas edições, com suporte a diversos tipos de dispositivos Tecnologias ou Edições Java Java Standard Edition – Java SE Java Enterprise Edition – Java EE Java Micro Edition – Java ME Java FX – ver site http://java.sun.com/javafx/index.jsp Paradigmas Comuns de Programação Linguagens Concorrentes Linguagens Procedurais Linguagens Orientadas a Objetos Etc. Java SE: Apresentação Possibilita o desenvolvimento de aplicações desktop: Aplicações de linha de comando; Aplicações com interfaces gráficas Swing: pacote javax.swing (ver, em Java Tutorial: http://java.sun.com/docs/books/tutorial/ui/ind ex.html) IDEs: permitem o desenvolvimento rápido das aplicações. Ex: NetBeans e Eclipse Java SE: Características Portabilidade dos programas compilados, para diversos SOs, não necessitando recompilação – característica multiplataforma Sintaxe similar ao C – fácil aprendizado Baseada e orientada a objetos Possui uma extensa API, extremamente atualizada e de acordo com a realidade da maioria dos programadores Java SE: Comparação com C/C++ A linguagem Java é considerada uma “evolução” das linguagens C/C++, onde: Permite a criação de programas realmente portáveis, sem a necessidade de recompilação ou alteração de código; Possui o gerenciamento de memória embutido, através do garbage collector ou coletor de lixo Não faz uso explícito de ponteiros, o que representa uma facilidade de programação, sendo menos sujeita a erros de código; Usa conceitos modernos, como a orientação a objetos, suporte a multithreading, etc. Java: Ambiente de Desenvolvimento - I Fase 1: editor de textos comum, criação do arquivo .java; Fase 2: Compilação – geração do arquivo de bytecodes .class; Os bytecodes serão executados pela Java Virtual Machine (JVM) – camada que simula um computador, ocultando o SO e hardware; A JVM é responsável pelas características de portabilidade do código Java Fase 3: carregamento do programa .class em memória – “load class” Java: Ambiente de Desenvolvimento - II Fase 4: Verificação dos bytecodes Fase 5: Execução dos bytecodes, realizando as ações determinadas pelo programa: Compilação JIT (just-in-time) – misto de interpretação e compilação, traduzindo os bytecodes para linguagem de máquina Obs: diversas otimizações de compiladores são possíveis, sendo o compilador do Eclipse IDE considerado um dos mais otimizados Java: Ambiente de Desenvolvimento - III Java: Notação Básica Estruturas básicas similares ao C: Ex. 1: int a = 3; int b = 6; int c = 0; if (a >= b) { c = a + b; } else { c = a * b; } Ex. 2: for (int i=0;i<10;i++) { System.out.println(“Iteração[“ + i +”]”); } Java: Primeiros Passos Ex. programa FirstTest.java: public class FirstTest { public static void main (String args[]) { System.out.println(“Alo Mundo!”); } } Java: Compilação e Execução Compilação: javac - Ex: javac FirstTest.java Gera um arquivo <nome-arquivo>.class Execução: java – Ex: java FirstTest Obs: Se refere ao FirstTest.class, não ao FirstTest.java Obs. 2: Se não houver o arquivo .class, não haverá execução Outline do Restante do Curso Apresentação da notação básica Java; apresentação das APIs básicas de Java; introdução aos primeiros programas Java através de protótipos com o uso de classes como java.util.Scanner, dentre outras; Apresentação de conceitos e práticas de Programação Baseada e Orientada a Objetos; Conceitos e práticas de geração de interfaces gráficas desktop - “Swing” – com o uso de puro Java; Desenvolvimento de aplicativos Java com comunicação com bancos de dados, através do uso de JDBC (Java Database Connectivity) Bibliografia e Recursos - I * DEITEL & DEITEL: Java – Como Programar. Editora Prentice Hall, 6a Edição. ISBN: 8576050196 * BATES, BERT; SIERRA, KATHY: SCJP: Certificação Sun para Programador Java 6 - Guia de Estudo. Alta Books. WEST, DAVID; MCLAUGHLIN, BRETT: Use a cabeça: Analise & Projeto orientado ao objeto. Alta Books, 1a Edição, 2007. ISBN: 8576081458 BATES, BERT; SIERRA, KATHY: Use a cabeça! - Java. Alta Books, 1a Edição, 2005. ISBN: 8576080842 Bibliografia e Recursos - II www.java.sun.com Java Tutorial: http://java.sun.com/docs/books/tutorial/ Java SE 6 – APIs: http://java.sun.com/javase/6/docs/api/