3.87k likes | 4.13k Views
Apresentação da Linguagem JAVA. Sumário. Funcionamento Máquina Virtual Java e Garbage Collector Classes, Interfaces, Objetos, Package Os qualificadores static e final Construtores O conceito de tipo e Interface Arrays, Strings Tratamento de Exceções A classe Object e a classe Class
E N D
Sumário • Funcionamento • Máquina Virtual Java e Garbage Collector • Classes, Interfaces, Objetos, Package • Os qualificadores static e final • Construtores • O conceito de tipo e Interface • Arrays, Strings • Tratamento de Exceções • A classe Object e a classe Class • Algumas classes úteis
O que é Java ? • Java é uma linguagem de programação • desenvolvida pela Sun Microsystem • lançada em versão beta em 1995 • seu desenvolvimento foi iniciado em 1991 pela equipe liderada por James Gosling • visava o mercado de bens eletrônicos de consumo • independente de hardware • linguagem segura • evitar falhas comuns que os programadores costumam cometer • evitar ataques externos
Por que Java ? • Outro ambiente que também necessitava de uma linguagem com este perfil INTERNET • também é constituído por equipamentos de diferentes arquiteturas • construção de aplicativos seguros • além disso • é sintaticamente semelhante a C/C++ • existem diferenças fundamentais na filosofia de implementação • facilitou a migração de programadores
Por que Java ? • Desenvolvedores estão ansiosos por se libertarem de sistemas proprietários • as idéias não são novas • mas estão todas embutidas em Java • acrescida da facilidade de migrar programadores • contribuem para o rápido sucesso da lingagem
Principais características • Orientação a Objetos • não é uma linguagem totalmente OO como Smalltalk • foram mantidos alguns tipos primitivos e suas operações (eficiência) • mais OO que C++ • harmônica e fácil de assimilar
Principais características • Bytecodes • seu código é compilado para uma máquina virtual • independente de hardware e sistema operacional • é necessário a existência de um interpretador • Máquina Virtual Java • nada impede que o código fonte seja traduzido para executável na máquina destino • alternativamente, é possível projetar hardware que processe bytecode
Principais características • Ausência de manipulação explícita de ponteiros • a manipulação de ponteiros exige grande dose de atenção • mesmo programadores experientes cometem erros • fonte de insegurança - possibilidade de desenvolvimento de programas hostis • todo objeto é criado dinamicamente e alocado no heap • o usuário não pode manipular a referência explicitamente.
Principais Características • Coleta de Lixo • nas linguagens onde existe alocação dinâmica, o programador é responsável pela liberação de memória previamente obtida - malloc / free • A Máquina Virtual Java coleta lixo automaticamente • os objetos que não estão mais sendo usados são identificados • a memória a eles associada é liberada para ser utilizada na criação de novos objetos
Principais Características • Segurança • O que é ser uma linguagem de programação segura ? • versão 1.0: impedir que programas hostis possam causar danos ao ambiente computacional ou que busquem informações sigilosas em computadores remotos • versão 1.1: capacidade de permitir a verificação da identidade de programas (autenticação) • versão1.2: os dados que os programas enviam ou recebem podem ser criptografados
Principais Características • Suporte à Concorrência • construção de servidores • o atendimento da solicitação não deve incapacitar o sistema de responder a outras solicitações concorrentemente • Java permite a criação de threads
Principais Características • Programação em Rede • possui em seu núcleo básico classes para comunicações em rede • protocolos que pertencem à pilha de protocolos TCP/IP • incorpora também um amplo conjunto de soluções para aplicações distribuída • CORBA - Commom Oject Request Broker Architecture • RMI - Remote Method Invocation • Servlets - aplicações Java executadas por servidores WEB
Como o Java é usado ? • O fonte Java é compilado para código independente. (“bytecode”) • O bytecode pode ser rodado por um interpretador. • O bytecode pode ser convertido para linguagem de máquina e executado (compilação “Just in Time (JIT)”).
Código Fonte Java Compilador “Bytecode”Java Mac Unix PC Compilador JIT Interpretador Bytecode Código de Máquina
Portabilidade do JAVA • Projetado para suportar aplicações que serão desenvolvidas para ambientes de rede heterogêneos. • O compilador Java gera um formato intermediário para transportar eficientemente o código para várias plataformas de hardware e software. • A Máquina Virtual Java (JVM) é específica para cada plataforma de hardware e software, isolando plataformas específicas.
Aplicação C++ Compilador Motorola C++ Compilador Intel C++ Compilador PowerPC C++ Compilador Sun Sparc C++ Instruções Motorola Instruções Intel Instruções PowerPC Instruções Sun Sparc Motorola Intel Sun Sparc PowerPC Desenvolvimento C++ • O compilador gera instruções de máquina específicas para cada processador
Aplicação Java Interpretador Java JVM Interpretador Java JVM Interpretador Java JVM Interpretador Java JVM Instruções Motorola Instruções Intel Instruções PowerPC Instruções Sun Sparc Motorola Intel PowerPC Sun Sparc Java Virtual Machine • Compilador Java gera um bytecode que roda em todo sistema que suporta Java sem recompilação
Gerência de Memória • O Java gerencia a memória para o programador (garbage collection) Alocação de memória em C++ - new - malloc/calloc Liberação de memória em C++ delete Alocação de Objeto em Java - new
Suporte Multitarefa • Multitarefa atingida via • Threads • Melhoria no tempo de resposta da aplicação • Thread priority
Segurança • Verificação exaustiva na compilação • Forte verificação de tipos • Verificação de sintaxe • Alocação de memória é postergada • Memória alocada em tempo de execução • Permite melhor adaptação a plataformas de hardware e software
Segurança (cont.) • Remoção de ponteiros • Ponteiros são responsáveis por sabotagem e erros de memória • Vírus não podem assumir lugar de objetos • Vírus não podem vagar pela memória mudando ou apagando valores
Segurança (cont.) • Verificação em tempo de execução • Certifica-se que ponteiros não existem • Não viola restrições de acesso • Objetos trabalham apenas com suas classes
Como funciona? • Um browser da Web... • (1) Referências ao software Java estão embutidos na página da Web • (2) quando o browser percebe essas referências, carrega o software Java (chamado de applet) de forma transparente e segura • (3) O applet é então processado pelo JVM, que foi construído dentro do browser
Como funciona? • Um browser da Web... • (4) O JVM realiza verificações de segurança e roda o applet, que aparece e opera dentro do browser • (5) O sistema operacional da máquina provê suporte específico de máquina para muitas das operações e interações
Como funciona? • Um browser da Web... • Resultado: • o usuário recebe um applet Java interativo que roda no seu browser • o JVM serve como uma plataforma consistente para diferentes computadores e sistemas operacionais, de forma que o mesmo applet pode executar em browsers de máquinas diferentes
Como funciona? • Uma aplicação standalone... • (1) Referências a software Java aparecem por exemplo no start-up menu: este software pode estar tanto num disco da rede quando num disco local à máquina • (2) JVM realiza verificações de segurança • (3) Sistema operacional da máquina provê suporte de máquina específico para realização de diversas operações e interações
Como funciona? • Uma aplicação standalone... • Resultado: • uma aplicação interativa Java • JVM serve como uma plataforma consistente para diferentes computadores e sistemas operacionais, de forma que a mesma aplicação roda em máquinas diferentes
Como funciona? • Um servidor de aplicação • (1) software Java armazenado num disco local ou de uma rede • (2) a JVM no servidor primeiro realiza verificações de segurança e então executa o software • (3) o sistema operacional do servidor provê o suporte específico de máquina para diversas operações e interações
Como funciona? • Um servidor de aplicação • Resultado: • um servlet ou outro programa Java rodando sobre um servidor e interagindo com outros sistemas da rede • JVM serve como uma plataforma consistente para diferentes computadores e sistemas operacionais, de forma que o mesmo software de servidor Java roda em máquinas diversas
Java = JavaScript ? • Não, JavaScript é uma linguagem de programação da Netscape, que vem embutida em seus browsers • Não é JAVA
Como começar ? • Baixe o freeware: Java 2 Platform, Standard Edition (J2SE) (java.sun.com) • Netbeans • Um IDE free para o desenvolvimento de aplicações JAVA
Nome: Noname.java Comandos Import class <SomeName> { comentários atributos métodos } Programa JAVA
Para importar definições de outras classes. Sintaxe: import package.className import package.* Exemplos: import java.applet.* import java.lang.* Comandos Import class <SomeName> { comentários atributos métodos } Importação de Classes
Para definir uma classe. Sintaxe: class classname bloco Exemplos: class Person bloco class Mydialog bloco class <SomeName> bloco Comandos Import class <SomeName> { comentários atributos métodos } Declaração de Classes
Permite a documentação do programa. Comentários são removidos durante a compilação e não causam overhead. Podem aparecer em qualquer lugar no programa. Sintaxe: // texto /* texto */ Comandos Import Class <SomeName> { comentários atributos métodos } Comentários
Para definir atributos da classe. Pode fazer referências a outros objetos. Sintaxe: datatype variável; datatype var1, var2, var3; classname objectref; Exemplos: char resCode; boolean authorizedFlag; Definição da Classe Comandos Import Class <SomeName> { comentários atributos métodos }
Para definir operações da classe Sintaxe: return-code metodo() bloco Exemplos: void Sing() bloco boolean isValid() bloco Definição dos Métodos Comandos Import Class <SomeName> { comentários atributos métodos }
Um programa • Composto de várias classes • Uma classe C possui um método “main” • java C • Cada classe A deve ser colocada em um arquivo A.java • O diretório deve ter o nome do pacote ao qual pertence a classe
Convenções • Nomes de Classe começam com maiúsculas • Nomes de atributos e métodos com minúsculas • Nomes compostos • carroPasseio
dando início... • Os programas em Java são escritos a partir de classes • a partir da definição de classe, podemos definir qualquer número de objetos que são conhecidos como instâncias desta classe. • Uma classe contém membros, onde as espécies primárias são os atributos e os métodos
dando início... • Atributos são propriedades que pertencem à classe ou objetos da classe • o conjunto de valores de atributos de um objeto define o estado do objeto • Métodos determinam o comportamento da classe • operam sobre os atributos para manipular o estado
dando início... • Exemplo: class HelloWorld { public static void main(String[] args) { System.out.println(“Hello, world”); } } • edição pode ser feita em qualquer editor de programa
dando início... • No JDK da Sun você deve guardar o programa num arquivo chamado • HelloWorld.java • para compilar use: • javac HelloWorld.java • para rodar use: • java HelloWorld
dando início... • O programa declara uma classe chamada HelloWorld com um único método chamado main • membros da classe encontram-se em { } em seguida ao nome da classe • a classe HelloWorld tem apenas um método e nenhum campo
dando início... • O método main tem apenas um parâmetro: um array de objetos String, que são os argumentos do programa • arrays, strings e args serão vistos mais tarde • o método main é declarado como void, Por que não retorna parâmetro
dando início... • Ainda sobre o método main... • é um dos poucos métodos com nomes especiais em Java: o método main de uma classe é sempre executado quando se roda a classe como aplicação • neste exemplo main contém apenas um comando que invoca um método sobre o objeto out da classe System
dando início... • Métodos são invocados fornecendo-se a referência a um objeto e ao nome do método, separando-os por um ponto (.) • Helloworld usa o método println do objeto out para imprimir uma nova linha com um string no “output stream” padrão
Variáveis • O próximo exemplo imprime a sequência de Fibonacci: • é um sequência infinita cujos primeiros termos são: 1 1 2 3 5 8 13 21 34 • depois de 1 e 1, cada termo sucessivo é a soma dos dois termos anteriores • a seguir temos o programa de Fibonacci