JAVA Evolução de JAVA POO usando JAVA Prof. Rafael Monteiro Java é o nome da linguagem de programação usada para desenvolver programas. Java é multiplataforma. Isto quer dizer que não é necessário usar um tipo especifico de computador, não importa se você usa Windows, Mac, ou Unix. Na internet encontramos pequenas aplicações em Java(Applets), que são carregadas e executadas no browser do usuário. Esta característica causa muita espectativa em relação ao Java, pois espera-se que no futuro não precisaremos mais instalar aplicativos no computador. Basta estar conectado à Internet e acessar o programa desejado. POO usando JAVA Prof. Rafael Monteiro 2 A linguagem JAVA foi projetada e implementada por um pequeno grupo de pessoas(Green), coordenado por James Gosling, na Sun Microsystems em Mountain View, Califórnia, em 1991. http://www.javasoft.com/people/jag/index.html POO usando JAVA Prof. Rafael Monteiro 3 Equipe trabalhava no projeto de software para produtos eletrônicos de consumo (software para eletrodomésticos) Nova geração de microcomputadores portáteis, TVs interativas, lâmpadas interativas, etc. Todos interconectados e com mesma interface. PROJETO GREEN POO usando JAVA Prof. Rafael Monteiro 4 1a TENTATIVA Idéia de um protótipo de dispositivo para comunicação, tipo controle remoto, para o controle de aparelhos eletrodomésticos. Sugestão inicial: C++ Orientada a objetos. Extremamente popular. Tentativa de desenvolver o sistema operacional Star7 em C++. POO usando JAVA Prof. Rafael Monteiro 5 Problema com LP´s existentes C++ (e outras linguagens) não estava desempenhando a tarefa satisfatoriamente. POO usando JAVA Prof. Rafael Monteiro 6 2a TENTATIVA James Gosling (Sun) e equipe projetou uma nova linguagem para manipular o Star7. Linguagem denominada de OAK (precursora de Java) OAK significa CARVALHO em inglês POO usando JAVA Prof. Rafael Monteiro 7 2a TENTATIVA PROJETO GREEN Propósito de testar um novo tipo de interface do usuário para controlar um ambiente doméstico (casa inteligente). Videocassete,TV, luzes,telefone,etc. *7 (Star Seven) Computador experimental portátil, tipo controle remoto, com interface gráfica e interativa. Nova linguagem de programação: OAK POO usando JAVA Prof. Rafael Monteiro 8 2a TENTATIVA PROJETO GREEN *7 (Star Seven) DUKE – figura *7 utilizava uma interface gráfica bastante atraente para controlar os eletrodomésticos. POO usando JAVA animada do protótipo *7 Prof. Rafael Monteiro 9 Protótipo do Gream Team Dispositivo portátil, sem teclado, botões e com uma pequena tela. Controle se dava por toques na tela. Interface gráfica - uma casa animada com um guia de turismo, o mascote DUKE. POO usando JAVA Prof. Rafael Monteiro 10 A Sun descobriu que o nome Oak já estava sendo usado. Decidem chamar esta nova linguagem de Java http://www.javasoft.com/hooked/languageref.html POO usando JAVA Prof. Rafael Monteiro 11 JAVA ( Just Another Vague Acronym) ?! NÃO. Inspiração na hora do cafezinho: Café da Ilha de Java POO usando JAVA Prof. Rafael Monteiro 12 Java é o nome de uma ilha do Pacífico, onde se produz uma certa variedade de café homônimo. A inspiração bateu à equipe de desenvolvimento ao saborear esse café em uma lanchonete local. Era extremamente apreciado por profissionais da área de software (ainda o é). POO usando JAVA Prof. Rafael Monteiro 13 1994: Criação do HotJava Feito totalmente em Java. Navegador da Web que podia efetuar Downloads e executar applets Java. Java mostrou-se ideal para ser usada na Internet. POO usando JAVA Prof. Rafael Monteiro 14 1995: Netscape Navigator 2.0 suporta Java, que incorpora as capacidades de efetuar o download e realizar a execução de pequenas aplicações Java, então chamadas de applets. A Sun amplia esforços para o desenvolvimento de Java. Criação da JavaSoft. 1996: Lançamento oficial de Java 1.02 Download gratuito pela Internet (http://www.javasoft.com) Sun decide disponibilizar um conjunto de ferramentas de desenvolvimento Java (JDK) “gratuitamente” para a comunidade de software. 1997: Java toma conta da Internet Netscape, Internet Explorer, HotJava, ... POO usando JAVA Prof. Rafael Monteiro 15 Em 2002, desenvolvedores do mundo todo preferirão a linguagem Java à C/C++ e Visual Basic. Quem confirma esse dado é a Evans Data Corporation, instituto norte-americano de pesquisas de mercado. Janel Garvin, vice-presidente da empresa, afirma que mais da metade da população dos Estados Unidos usa Java e calcula-se que esse número cresça mais 10% até o próximo ano. A pesquisa do Evans Data Corporation também mostra que o uso da tecnologia tem se fortalecido fora da América do Norte, onde aproximadamente 60% dos desenvolvedores a utilizam para suas programações. Dados da Sun Microsystems do Brasil apontam que a procura por cursos de Java cresceu 674%, de 2000 para 2001, com um aumento de 30% para os cursos voltados a pessoas com pouca ou nenhuma experiência em programação e 50% para os cursos básicos de Java. POO usando JAVA Prof. Rafael Monteiro 16 Utilizada em empresas como: IBM, Kaiser NASA, ESPN, Museu de Arte Moderna de NY, diversos bancos, etc. Mais de 2000 livros escritos. Contagem recente da Java World Magazine. POO usando JAVA Prof. Rafael Monteiro 17 Grande disseminação na Europa e EUA. No Brasil, grandes empresas já adotam JAVA, principalmente em aplicações de Comércio Eletrônico. POO usando JAVA Prof. Rafael Monteiro 18 Serviços financeiros Home Banking, comércio seguro Marketing e propaganda Loja interativa, animações, multimídia Diversão e entretenimento Jogos multi-usuário, chat Educação Ensino à distância, simulações interativas Outros Astronomia (telescópios orbitais). Telefonia. Aparelhos eletroeletrônicos. POO usando JAVA Prof. Rafael Monteiro 19 British Telecom (empresa de telefonia inglesa) -ServiceView; MountSinai (hospital de Nova York) emite certificados de óbitos usando JAVA; VISA Internacional irá substituir as tarjas magnéticas de seus cartões por chips com tecnologia JAVA; American Express (serviços financeiros); CSX (maior companhia ferroviária dos EUA) montou rede JAVA; POO usando JAVA Prof. Rafael Monteiro 20 J.P. Morgan (banco de investimentos); Hong Kong Telecom (operações de rede de TV interativa); Fannie Mac (maior empresa americana de hipotecas); Banco Itaú usando JAVA em sua Intranet; Banco do Brasil anunciou migração para JAVA; UNIVERSIDADES (no Brasil: UNB, UNICAMP, UFPE, entre outras). POO usando JAVA Prof. Rafael Monteiro 21 Prós Escreva uma vez, execute em qquer lugar Escrever somente para a plataforma JAVA Suporte nos browsers da Web, TVs, PDAs e celulares. Segurança Permite que usuários descarreguem código não confiável em uma rede e o executem em um ambiente seguro: Não pode infectar o sistema host com vírus Não consegue ler ou gravar arquivos a partir do disco rígido, etc. a inexistência de ponteiros evita o acesso direto a memória Programação centrada em rede Slogan corporativo da Sun: “ A rede é o computador” Suporte a arquitetura cliente/servidor e multicamadas. POO usando JAVA Prof. Rafael Monteiro 22 Prós Programas dinâmicos e extensíveis Código Java organizado em unidades modulares orientadas por objeto chamadas classes. Cada classe é armazenada em um arquivo separado e somente descarregadas para o interpretador Java qdo necessárias. O código torna-se uma coleção interativa de componentes independentes de software. Internacionalização Única linguagem de programação que suporta Unicode. Eficiência do programador e tempo de comercialização Conjunto de APIs (Application Programming Interface) poderoso e bem projetado. POO usando JAVA Prof. Rafael Monteiro 23 Torna as páginas da Web mais interessantes Som, vídeo, animações, relógios, contadores Nova plataforma Pode-se criar uma grande variedade de aplicações. planilhas eletrônicas, processadores de texto, jogos, salas de bate-papo, programas financeiros, gerência de recursos humanos, etc. POO usando JAVA Prof. Rafael Monteiro 24 Características Importantes Portabilidade (Independente de plataforma – Os programas Java são compilados para uma forma intermediaria de código denominada Bytecodes) Familiaridade (Similar ao C, C++) Sem Ponteiros (O Java não permite a manipulação direta de endereços na memória nem exige que os objetos criados sejam destruídos livrando o programador de uma tarefa complexa) POO usando JAVA Prof. Rafael Monteiro 26 Características Importantes Distribuição (No caso dos applets, os bytecodes da Java são tranferidos em tempo de execução, então o usuário sempre estará utilizando o código mais recente. Isto resolve todo tipo de pesadelo de distribuição que tradicionalmente as empresas tem de enfrentar) Segurança (a Java foi planejada para verificar e executar programas binários em um ambiente controlado. Isto protege o usuário final de vírus e violações de segurança. Toda vez que um applet Java é transferido para o browser do usuário recebe um verificação de seu byte-code. Isto significa que se o tamanho do pacote de código for alterado pelo caminho, o programa será abortado. Esta checagem protege contra Cavalos de Tróia e outras viroses que forem adicionadas aos Java bytecodes.) Orientada a objetos (baseada no modelo de Smalltalk e Simula67) POO usando JAVA Prof. Rafael Monteiro 27 Carga Dinâmica de Código Programas não monolíticos: cada classe é armazenada independentemente e pode ser carregada somente quando for utilizada. Concorrência Permite múltiplas linhas de execução (threads) num mesmo programa e oferece primitivas para sincronizá-las. Pilha de Execução Idêntica a outras OOPLs (cada thread numa pilha própria) Coleta Automática de Lixo Desalocação de memória (objetos) automática. POO usando JAVA Prof. Rafael Monteiro 28 Tratamento de Exceções Java institui um método de detecção de erros conhecido com “tratamento de exceções”. objetivo tratar erros de software ou hardware como separando o código de tratamento de erros do código normal da aplicação Modelo de Objetos Incorpora todos os principais conceitos Recursos de Rede Extensa biblioteca de rotinas que facilitam a cooperação com protocolos TCP/IP, como HTTP e FTP. Maior facilidade de criação de conexões de rede do que C ou C++. Aplicações Java podem abrir e acessar objetos na rede através das URLs. POO usando JAVA Prof. Rafael Monteiro 29 A concepção da Máquina Virtual Java é fortemente orientada a pilhas. As principais funções da pilha Java são: Armazenar parâmetros para os bytecodes e guardar os resultados decorrentes da execução dos mesmos; Passar parâmetros para os métodos e armazenar os valores retornados pelos mesmos; Manter o estado dos métodos que foram invocados. POO usando JAVA Prof. Rafael Monteiro 30 Ambiente JAVA ... POO usando JAVA Prof. Rafael Monteiro 31