Java Linguagem de programação



Documentos relacionados
Introdução à Linguagem Java

Java. Guia do Programador. Peter Jandl Junior. Novatec

Desenvolvimento Web TCC Turma A-1

Programação de Computadores II TCC Turma A-1

2a Edição Peter Jandl Junior

3a Edição Peter Jandl Junior

Capítulo 1. Introdução ao Java. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Linguagens de. Aula 02. Profa Cristiane Koehler

PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*

A Linguagem Algorítmica Estrutura de Repetição. Ex. 2

Programação de Computadores - I. Profª Beatriz Profº Israel

Linguagem de Programação Introdução a Linguagem Java

Fundamentos de Java. Prof. Marcelo Cohen. 1. Histórico

Introdução. à Linguagem JAVA. Prof. Dr. Jesus, Edison O. Instituto de Matemática e Computação. Laboratório de Visão Computacional

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Introdução à Linguagem Java. Departamento de Informática Prof. Anselmo C. de Paiva

Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas

Sistemas Operacionais

PROGRAMAÇÃO JAVA. Parte 1

Hardware (Nível 0) Organização. Interface de Máquina (IM) Interface Interna de Microprogramação (IIMP)

Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com

ESTUDO DE CASO WINDOWS VISTA

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Programação de Computadores II: Java. / NT Editora. -- Brasília: p. : il. ; 21,0 X 29,7 cm.

Java Básico. Aula 1 por Thalles Cezar

Programação Orientada a Objetos

AULA Uma linguagem de programação orientada a objetos

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 2. Cursos de Computação

Sistemas Operacionais

SISTEMAS OPERACIONAIS

Dispositivos móveis e o mercado Android Open Handset Alliance Informações sobre Android Arquitetura

Java. Marcio de Carvalho Victorino

FBV - Linguagem de Programação II. Um pouco sobre Java

Lógica de Programação

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO

Sistemas Operacionais

1. Apresentação Objetivos

3. O NIVEL DA LINGUAGEM DE MONTAGEM

4 Estrutura do Sistema Operacional Kernel

Sistemas de Informação. Sistemas Operacionais 4º Período

Orientação a Objetos com Java

Introdução. Hardware X Software. Corpo Humano Parte Física. Capacidade de utilizar o corpo em atividades especificas explorando seus componentes

BRAlarmExpert. Software para Gerenciamento de Alarmes. BENEFÍCIOS obtidos com a utilização do BRAlarmExpert:

CURSO DE PROGRAMAÇÃO EM JAVA

SISTEMAS OPERACIONAIS. Maquinas Virtuais e Emuladores

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Introdução linguagem Java principais pacotes. Bruno Calegaro

ESTUDO SOBRE AS LINGUAGENS DE PROGRAMAÇÃO HOSPEDEIRAS SUPORTADAS PELA FERRAMENTA HTML. Aluno: Rodrigo Ristow Orientador: Wilson Pedro Carli

11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO

FundamentosemInformática

Capítulo 8. Software de Sistema

OOP - Java. Artur Duque Rossi Mestrado em Modelagem Computacional Universidade Federal de Juiz de Fora

SISTEMAS OPERACIONAIS 2007

Desenvolvendo Websites com PHP

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

A Linguagem Java. Apresentação. Java. A Linguagem da Internet

Sistemas Operacionais

Roteiro para a escrita do documento de Especificação de Requisitos de Software (ERS)

Banco de Dados de Músicas. Andre Lima Rocha Campos Osório Pereira Carvalho

Figura 01 Kernel de um Sistema Operacional

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Adriano Reine Bueno Rafael Barros Silva

UM FRAMEWORK PARA DESENVOLVIMENTO DE

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

Introdução a Linguagem

Java Linguagem de programação

Sistemas Distribuídos

Sistemas Operacionais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Sistemas Operacionais 1/66

Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 05 Estrutura e arquitetura do SO Parte 1. Cursos de Computação

Capítulo 2 Introdução à ferramenta Flash

Programação Orientada a Objetos (DPADF 0063)

Comparando Java e C#

Planejando o aplicativo

Definições. Parte 02. Java Conceitos e. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

Histórico da Revisão. Versão Descrição Autor. 1.0 Versão Inicial

Sistemas Operacionais. Roteiro. Sistemas de Computadores. Os sistemas de computadores são projetados com basicamente 3 componentes: Marcos Laureano

Configuração do Ambiente de Trabalho

Introdução à Computação

Linguagem Java. Arquitetura e Ambiente de Desenvolvimento. Arquitetura e Ambiente de Desenvolvimento Prof. Anderson Augustinho Uniandrade

Análise dos Navegadores de Internet

6 - Gerência de Dispositivos

Orientação a Objetos

Introdução aos Computadores

QUESTINAMENTOS AO EDITAL DE CONCORRÊNCIA 01/2013

SISTEMAS OPERACIONAIS

MANUAL DE IMPLANTAÇÃO SISTEMA DE INVENTÁRIO CACIC GOVERNO FEDERAL SOFTWARE PÚBLICO

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Desenvolvendo uma Arquitetura de Componentes Orientada a Serviço SCA

Transcrição:

1 Linguagem Java O que é o Java? Java é uma linguagem de programação, apresentada ao mercado em 1995, pela Sun Microsystems, que provocou e ainda provoca excitação e entusiasmo em programadores, analistas e projetistas de software. Mas por que o Java provoca essa reação? Simplesmente porque é o resultado de um trabalho de pesquisa e desenvolvimento de mais do que uma simples linguagem de programação, ou seja, de todo um ambiente de desenvolvimento e execução de programas que reúne um conjunto ímpar de facilidades: é completamente orientada a objetos, muito robusta, possui extrema portabilidade, permite a operação em rede e distribuição, incorpora diversas características voltadas à segurança e, finalmente, permite sua distribuição em diversos ambientes, destacando-se a Internet. Segundo sua especificação, o Java poderia ser assim caracterizado: "O Java é uma linguagem de programação de propósito geral, concorrente, com base em classes e orientada a objetos. Foi projetada para ser simples o bastante para que a maioria dos programadores se torne fluente com ela. A linguagem Java tem relação com C e C++, mas é organizada de maneira diferente, com vários aspectos de C e C++ omitidos e algumas idéias de outras linguagens incluídas" Resumindo: o Java é uma linguagem não apenas adequada às necessidades de seu próprio tempo, mas voltada para o futuro. Histórico Conhecer como surgiu o Java e quais foram os primeiros acontecimentos relacionados ajudam a entender seu 'espírito'. Segundo James Gosling (1999), um dos pais da linguagem, a história do Java é a seguinte. Tudo começou em 1991, com um pequeno grupo de projetos da Sun Microsystems, denominado Green, que pretendia criar uma nova geração de computadores portáteis inteligentes, capazes de se comunicar de várias maneiras, ampliando suas potencialidades de uso. Para tanto, decidiu-se criar também uma nova plataforma para o desenvolvimento desses equipamentos, de forma que seu software pudesse ser portado para os mais diferentes tipos de equipamentos. A primeira escolha de uma linguagem de programação para tal desenvolvimento foi C++, aproveitando suas características e a experiência dos integrantes do grupo no desenvolvimento de produtos. Mas mesmo o C++ não permitia realizar com facilidade tudo aquilo que o grupo imaginava. Gosling decidiu, então, pela criação de uma nova linguagem de programação, a qual pudesse conter tudo aquilo que era considerado importante e que, ainda assim, fosse simples, portátil e fácil de programar. Surgiu assim a linguagem interpretada Oak (carvalho, em inglês), batizada dessa forma dada a existência de uma dessas árvores em frente ao escritório de Gosling. Para dar suporte à linguagem, também surgiu o Green OS e uma interface gráfica padronizada.

2 Após dois anos de trabalho, o grupo finaliza o Star7 (ou *7) um avançado PDA {Personal Digital Assistant) e, em 1993, surge a primeira grande oportunidade de aplicação dessa solução da Sun em uma concorrência pública da Time-Warner para o desenvolvimento de uma tecnologia para TV a cabo interativa, injustamente vencida pela SGI (Silicon Graphics Inc.). Devido a problemas de copyright, o Oak recebe o novo nome Java, mas continua sem uso definido até 1994, quando, estimulados pelo grande crescimento da Internet, Patrick Naughton e Jonathan Payne desenvolveram o programa navegador WebRunner, capaz de efetuar o download e a execução de código Java via Internet. Esse navegador, sob o nome HotJava, e a linguagem Java foram então apresentados formalmente pela Sun, em maio de 1995, no SunWorld 95, quando o interesse pela solução mostrou-se explosivo. No início de 1996, a Netscape Corp. lança a versão 2.0 de seu navegador Navigator, que incorpora as capacidades de efetuar o download e realizar a execução de pequenas aplicações Java, então chamadas appiets. Numa iniciativa inédita, a Sun decide disponibilizar um conjunto de ferramentas de desenvolvimento Java gratuitamente para a comunidade de software, embora detenha todos os direitos relativos à linguagem e às ferramentas de sua autoria. Surge assim, em meados de 1996, o Java Developer's Kit 1.02 (JDK 1.02). As plataformas inicialmente atendidas foram: Sun Solaris e Microsoft Windows 95/NT. Dado que a especificação da linguagem e do ambiente de execução também foram colocadas publicamente disponíveis, progressivamente, foram aparecendo kits para outras plataformas, tais como IBM OS/2, Linux e Appiet Macintosh. Um ano após seu anúncio, ocorre o primeiro grande evento da linguagem Java, a 'JavaOne Conference', que vem sendo realizada regularmente para apresentação de novas características, casos de sucesso, produtos e tecnologias associadas. E assim tem início a história de sucesso do Java. Em 1997, torna-se disponível o JDK 1.1, que inclui grandes melhorias para o desenvolvimento de aplicações gráficas e distribuídas. No final de 1998, uma outra grande série de adições, melhorias e correções são incorporadas ao kit, iniciando o que a Sun denomina oficialmente família Java 2. Neste ponto, o JDK passa a ser denominado Java 2 SDK (Software Developer's Kit} e é disponibilizado nas formas Standard Edition e Enterprise Edition. Atualmente, a Sun vem liberando novas versões ou correções quase que semestralmente, bem como novas APIs (Appiícatíon Programmíng Interfaces) para o desenvolvimento de aplicações específicas. A última versão disponível é o Java 2 SDK 1.3. Características importantes A linguagem Java exibe importantes características que, em conjunto, a diferenciam de outras linguagens de programação. Dentre as características citadas de forma quase unânime por vários autores (Gosling & McGilton, 1996 ; Crawford, 1998A; Deitei & Deitei, 1998; Horstmann & Cornell, 2000), destacamos alguns pontos-chave: é orientada a objetos, independente de plataforma, sem ponteiros, sem performance, dotada de mecanismos de segurança e permite multíthreading.

3 Orientado a objetos Java é uma linguagem puramente orientada a objetos, pois, com exceção de seus tipos primitivos dados, tudo em Java são classes ou instâncias de uma classe. Atende a todos os requisitos necessários para uma linguagem ser considerada orientada a objetos, que, resumidamente, são: oferecer mecanismos de abstração, encapsulamento e hereditariedade. Independente de plataforma Java é uma linguagem independente de plataforma, ou seja, os programas Java não são compilados para uma plataforma de hardware específica, mas, sim, para uma forma intermediária de código destinada à máquina virtual Java, denominada JVM (Java Virtual Machine). O formato intermediário é chamado de bytecodes, uma espécie de linguagem de máquina da JVM que utiliza instruções e tipos primitivos de tamanho fixo, ordenação bigendian e uma biblioteca de classes padronizada. A máquina virtual Java é, na verdade, um interpretador de bytecodes para a plataforma na qual eles são executados. Por ser possível implementar uma JVM para qualquer plataforma, um mesmo programa Java pode ser executado em qualquer arquitetura que disponha de uma JVM, obtendo-se assim a independência de plataforma. Sem ponteiros Java não possui ponteiros, isto é, Java não permite a manipulação direta de endereços de memória nem exige que os objetos criados sejam explicitamente destruídos, livrando os programadores de uma tarefa complexa. Toda a manipulação de variáveis e objetos se dá por intermédio de referências. Além disso, a JVM possui um mecanismo automático de gerenciamento de memória, conhecido como automatic garbage collector, que recupera a memória alocada para objetos não mais referenciados pelo programa. Performance A linguagem Java foi projetada para ser compacta, independente de plataforma e para a utilização em rede, o que levou à decisão de ser interpretada por intermédio dos esquemas de bytecodes. Sendo uma linguagem interpretada, sua performance é razoável, não podendo ser comparada à velocidade de execução de código nativo. Para superar essa limitação, várias JVM existentes dispõem de compiladores just in time (JIT), capazes de compilar os bytecodes em código nativo durante a carga do programa, possibilitando uma melhora significativa na performance dos programas Java, equiparando-os ao desempenho obtido com programas nativos. Segurança Considerando a possibilidade de que as aplicações possam ser obtidas através de uma rede, a linguagem Java possui mecanismos de segurança que podem, no caso de appiets, evitar, por exemplo, qualquer operação no sistema de arquivos da máquina-alvo, minimizando problemas de segurança. Tal mecanismo é flexível o suficiente para determinar se uma appiet è considerada segura, especificando nesta situação diferentes níveis de acesso ao sistemaalvo.

4 Permite multíthreading Java oferece recursos para o desenvolvimento de aplicações capazes de executar múltiplas rotinas concorrentemente, possibilitando sua sincronização. Cada uma dessas rotinas é como um fluxo de execução independente, usualmente denominado thread. As threads sã um importante recurso de rogramação para a construção de aplicações mais sofisticadas. Além das características comentadas, Java é também uma linguagem bastante robusta, que icentiva o controle detalhado de erros. Oferece ainda tipos inteiros, ponto flutuante e aritmética ompatíveis com as especificações do IEEE, e ompatibilidade com caracteres UNICODE; inclui ecanismos de reflexão (determinação em tempo de execução dos tipos dos objetos em uso, além de outras informações), sendo extensível dinamicamente, além de ser naturalmente voltada para o esenvolvimento de aplicações em rede ou aplicações distribuídas. Mesmo com tudo isso, o Java ainda é uma linguagem sintática e estruturalmente simples, o que a torna uma linguagem de programação única. Recursos necessários Para trabalharmos com o ambiente Java, é necessário, no mínimo, o uso de um Java Software Developer's Kit (daqui para a frente, referenciado apenas como JDK) e um editor de textos ASCII simples, tal como o Bloco de Notas de qualquer versão do Microsoft Windows. Além do JDK, é fundamental termos em mãos a documentação de suas bibliotecas, a qual é fornecida separadamente. Recomendamos o uso de um JDK fornecido pela Sun, preferencialmente em uma versão superior à 1.2.2. Adicionalmente, também é desejável o uso de um navegador compatível com o Java, tal como o Sun HotJava, Netscape Communicator 4.5 ou o Microsoft Internet Explorar 4 ou versões superiores destes softwares. Editores de texto voltados para a programação, capazes de exibir a sintaxe Java em destaque e ar a construção e a utilização de macros, também podem ser de grande valia, embora não sejam essenciais. Outras informações sobre a plataforma Java, tal como novas versões, APIs adicionais, artigos,estudos de casos, dicas e exemplos, podem ser obtidas na Internet, O Sun Java Software Developer's Kit O Sun Java Software Developer's Kit, ou simplesmente JDK, é composto de quatro partes básicas,que são: -Um conjunto de ferramentas para desenvolvimento de aplicações Java. -Uma extensa biblioteca de classes padronizadas Java, denominada Java Standard API. -Um ambiente de execução Java. -Exemplos, código-fonte das porções públicas e a documentação das APIs. As principais ferramentas incluídas no kit são: -Um compilador para linguagem Java.

5 -Uma máquina virtual Java. -Um visualizador de appiets. -Um programa para geração de documentação. -Um utilitário para criar e manter arquivos compactados Java Archive. Com essas ferramentas, é possível a criação desde pequenas aplicações até sistemas distribuídos que operam em rede. A biblioteca padrão incluída contém centenas de classes distribuídas em vários pacotes chamados de packages. Nesses packages, residem as classes básicas da linguagem; os recursos para o desenvolvimento de aplicações gráficas, miniaplicativos (appiets), manipulação de imagens e gráficos 2D; transferência de dados via 'arrastar e soltar 1 ; comunicação em rede; distribuição de aplicações; acesso a bancos de dados; internacionalização; construção de componentes Java (chamados JavaBeans) etc. O ambiente de execução permite tanto a execução de aplicações tradicionais, gráficas ou não, construídas por meio do Java, como de miniaplicativos Java que podem posteriormente ser incorporados em páginas HTML. O ambiente de execução Java e sua constituição serão detalhados na próxima seção ("O ambiente Java"). Além das ferramentas comentadas, o JDK inclui outras que possibilitam a depuração e a otimização de programas, o desenvolvimento de aplicações distribuídas, o teste isolado de componentes construídos, a construção de aplicações adaptáveis a diferentes idiomas e países, a criação e o uso de certificados de segurança, além de utilitários que permitem a integração do Java com outras linguagens de programação. Os exemplos e o código-fonte das partes públicas são fornecidos para auxiliar o estudo e o aprimoramento no Java. A documentação, fornecida separadamente, é essencial tanto para o estudo como para o trabalho de desenvolvimento, pois a biblioteca Java é extensa e contém recursos que só se tornam evidentes através da documentação. Embora o JDK não constitua um ambiente visual de desenvolvimento, isto é, um IDE (Integrated Development Environment) semelhante ao Microsoft VisualBasic ou Borland Delphi, destaca-se o fato de que, apenas com seu uso, ainda é possível o desenvolvimento de aplicações gráficas relativamente complexas. Isso ressalta que o JDK é, de fato, o padrão em termos de ferramenta para desenvolvimento Java. A Sun oferece gratuitamente o Forte, um ambiente visual de desenvolvimento Java que pode ser integrado ao JDK. Outros fabricantes de software, tais como Microsoft, Borland, Symantec e IBM, oferecem comercialmente outros ambientes visuais de desenvolvimento Java, cada um com suas peculiaridades. Tais ferramentas são, respectivamente, Visual J++, JBuilder, VisualCafe e VisuolAge forjava, e como o Forte se destinam ao aumento de produtividade de programadores Java. Nasa Informática