a Baseado no Capítulo 5 de Inside the Virtual Machine, por Bill Vernners.

Tamanho: px
Começar a partir da página:

Download "a Baseado no Capítulo 5 de Inside the Virtual Machine, por Bill Vernners."

Transcrição

1 Arquitetura da Máquina Virtual Java a 1. Principais subsistemas máquina virtual Java (JVM): Carregador de classes ( class loader ): carrega classes e interfaces a partir de nomes completamente qualificados. Máquina de execução ( execution engine ): executa instruções das classes carregadas. Áreas de dados de execução ( runtime data areas ): organizada em área de métodos ( method area ), área de memória dinâmica ( heap ), pilhas ( stacks ), contadores de programa ( program counters ou pc) e pilhas dos métodos nativos ( native methods stacks ). A especificação destas áreas varia de implementação para implementação para permitir que características específicas de uma dada arquitetura possam ser exploradas. Cada instância da máquina virtual tem uma área de métodos e uma heap que são a Baseado no Capítulo 5 de Inside the Virtual Machine, por Bill Vernners. 1

2 compartilhadas por todas as threads sendo executadas na máquina virtual. Cada thread possui um contador e uma pilha. Cada invocação de um método numa thread cria um registro de ativação ( frame ) na pilha da thread contendo o estado do método, o que inclui parâmetros, variáveis locais, valor de retorno e cálculos intermediários. Interface de métodos nativos ( native method interface ). 2. A JVM é uma máquina de pilha. As instruções da JVM utilizam a pilha para armazenar resultados intermediários, ao invés de utilizar registradores como é feito em arquiteturas concretas. Isto permite a definição de um conjunto simples de instruções que é facilmente implementado em diferentes arquiteturas. 3. Na JVM existem tipos primitivos, como byte, short, int, long, float e double e referências a objetos. O tamanho de uma palavra ( word ) na JVM varia de implementação para 2

3 implementação da JVM e deve ser grande o suficiente para armazenar um byte, short, int, float, uma referência a um objeto ou um return address, este último utilizado para implementar cláusulas finally em Java. Duas palavras devem ser capazes de armazenar os tipos long e double. 3

4 Class Loader 1. Responsável por carregar, ligar ( link ) e inicializar variáveis. Devem verificar a integridade de um class file antes de carregá-lo, podendo inclusive reconhecer outros tipos de arquivo além do class file. Ao carregar uma classe, uma instância da classe java.lang.class é criada passando a habitar a heap. Habitam a heap também, assim como todos os objetos, instâncias de User-defined class loaders e instâncias de java.lang.class. Dados para tipos carregados ficam na área de métodos. 2. Pode ser de dois tipos: Bootstrap Class Loader, parte da JVM responsável por carregar classes da API de Java, e User-defined class loaders, implementados por uma aplicação. 3. Um User-defined class loaders pode basicamente invocar o Bootstrap Class Loader, através do método findsystemclass, carregar uma classe a partir de seu class file (defineclass) e 4

5 ligá-la (resolveclass). Um User-defined class loader pode ser utilizado por exemplo para construir um interpretador que primeiro gera o bytecode de um programa, isto a representação class file de um programa e depois cria uma classe associada a representação class file, podendo também escrevê-la para disco tornando-a persistente. 4. Cada class loader define um espaço de nomes ( namespace ). Com isto um determinado tipo pode ser carregado duas vezes ou mais vezes numa mesma instância da máquina virtual estando obviamente em namespaces diferentes. 5

6 Method Area 1. A method area é onde o código associado a um tipo fica armazenado após ser carregado pela máquina virtual. 2. A method area é compartilhada por todas as threads sendo executadas pela máquina virtual, portanto o carregamento de um tipo pelo class loader dever thread safe, isto é, se duas threads desejam acessar uma determinada classe, uma delas deve ficar responsável pelo carregamento enquanto a outra aguarda. 3. As os atributos e métodos estáticos (declarados com o modificador static) também ficam na method area. 4. O tamanho da method area não é fixado pela especificação da JVM, podendo inclusive utilizar a própria heap da JVM. A method area pode também ser considerada pelo coletor de lixo ( garbage collector ). Como classes podem ser carregadas dinamicamente eventualmente uma classe pode deixar de ser referenciada podendo 6

7 então ser liberada pelo garbage collector. 5. As seguintes informações são armazenadas para cada tipo carregado pela JVM: O nome completo ( fully qualified name ) do tipo. (Um nome completo inclui os nomes dos pacotes onde o tipo está declarado, separados por pontos, como por exemplo java.lang.object. No class file este formato é um pouco diferente: os pontos são substituidos por barras. O exemplo fica então java/lang/object.) O nome completo da superclasse do tipo. A informação de que o tipo é uma classe ou interface. Os modificadores do tipo. Uma combinação de public, abstract ou final. Os nomes completos das superinterfaces que o tipo implementa. O conjunto de constantes ( constant pool ). Este ítem tem um 7

8 papel central na ligação dinâmica de tipos. O constant pool é um conjunto ordenado de constantes literais declaradas pelo tipo, como strings e inteiros, referências simbólicas para tipos, campos e métodos. Informações sobre os campos ( fields ). Informações sobre os métodos. As variáveis estáticas. Uma referência para a classe ClassLoader. Uma referência para a classe Class. Tabela de métodos. Implementações da JVM ficam livres para adicionar outras estruturas que acelerem o processo a method area. 6. A classe Class permite acesso por uma aplicação Java a method area através de seus métodos. Dada uma instância da classe Class (que representa um tipo, os seguintes métodos, dentre outros, podem 8

9 ser invocados: (i) getname que retorna o nome completo do tipo de uma classe; (ii) getsuperclass, que retorna uma referência para a instância de Class que representa a superclasse do tipo, (iii) isinterface que indica se o tipo é uma interface ou não, (iv) getinterfaces que retorna as interfaces, instâncias da classe Class, implementadas pelo tipo e (v) getclassloader que retorna uma referência para o class loader que carregou o tipo. Uma referência a um instância da classe Class pode ser obtida através dos métodos forname, que recebe o nome completo de um tipo ou getclass, que retorna a instância da classe Class do objeto que executou getclass. 9

10 7. Exemplo de uso da method area: Considere o seguinte trecho de código java. class Lava { } private int speed = 5 ; void flow() {} class Volcano { public static void main(string args[]) { Lava lava = new Lava() ; lava.flow() ; } } 10

11 A execução deste código pode ser a seguinte: (a) O nome Volcano é dado a uma instância da JVM, por exemplo chamando java Volcano com Volcano.java tendo sido compilado produzindo Volcano.class. Outras formas dependente de plataforma podem ser utilizadas. Lembre-se que Java foi idealizado para rodar em qualquer lugar. (b) A instância da JVM identifica e carrega Volcano.class extraindo a definição da classe Volcano do class file e armazenando-a na method area. O método main é invocado interpretando seus bytecodes armazenados na method area, mantendo uma referência a constant pool da classe Volcano, que é a classe corrente. (c) A primeira instrução da função main manda que a JVM aloque espaço para a classe listada no primeiro índice da constant pool. Através da referência simbólica existente no pool a JVM verifica se a classe está presente na method area e em caso negativo faz uso do seu nome completo "Lava" presente na constant pool e carrega o class 11

12 file Lava.class colocando as informações do class file na method area. (d) A string "Lava" na constant pool de Volcano é substituída por uma referência para a área de dados de Lava. (Note a necessidade de alta-performance para o processo de carregamento de um tipo.) (e) Utilizando esta referência a JVM pode então alocar espaço para uma instância de Lava. Seus atributos, assim como aqueles herdados, são então inicializados para seus valores default. (f) Uma referência ao objeto Lava é então empilhado e a variável speed inicializada para. Finalmente o método flow é invocado. 12

13 Heap 1. Objetos e vetores são alocados dinamicamente na heap, quando da execução de uma aplicação Java. A heap é compartilhada numa JVM, ou seja, diferentes threads numa mesma aplicação devem então gerenciar a sincronização no acesso a objetos por estes serem alocados na heap. 2. A heap é gerenciada por um garbage colector sendo então desnecessária a desalocação explícita de objetos da heap. O garbage colector gerencia também a fragmentação da heap. É interessante notar que a especificação da JVM não impõe o uso de uma política de coleção de lixo particular nem mesmo a implementação de um coletor de lixo: só fica especificado que não existe uma desalocação explícita de memória e que a JVM deve então resolver isso de alguma maneira, podendo simplesmente dizer que a memória acabou. 3. A representação dos objetos na heap também não fica definida pela 13

14 JVM: devem no entanto conter as variáveis de instância e uma referência a method area para acesso as informações estáticas do tipo que ficam armazenadas naquela área assim como permitir a consulta ao tipo para uma coerção de tipos ( typecasting ), execução do comando instance of e para resolução do binding dinâmico: a escolha do método a ser executado depende não da instância mas do seu tipo. 4. Esquemas de memória para a heap devem levar em consideração: Como é o acesso as informações do tipo a partir de uma instância. Uso ou não de tabela de métodos para agilizar a chamada de métodos. (Similar as tabelas virtuais em C++). Agilizam o acesso aos métodos porém implicam no uso de mais memória. Lock do objeto para no acesso multi-threaded. Wait set do objeto, representando um conjunto de threads que esperam por acesso a um objeto. 14

15 Informações necessárias ao garbage collector. 5. O tamanho de um vetor ( array ) não influencia no seu tipo, isto é, um vetor de inteiros de tamanho tem o mesmo tipo de um vetor de tamanho. A informação sobre o tamanho do vetor fica armazenada internamente na instância, devendo fazer parte então da estrutura de representação do objeto. É importante enfatizar a convenção de nomes nestes casos: um vetor de inteiros tem nome [I enquanto que uma matriz bi-dimensional de booleanos tem nome [[B. 15

16 Java Stack e Stack Frame 1. Uma pilha de frames é criada para cada thread de uma aplicação Java. Cada vez que um método é invocado um novo frame é empilhado, contendo as variáveis locais ao método, a pilha de operandos e os dados do frame. Por isso não é necessário se preocupar com acessos multi-threaded sobre dados na pilha, por serem privados a thread proprietária daquela pilha. 2. Quando uma aplicação Java invoca um método, a JVM verifica através do tipo quantas palavras serão necessárias apara alocar as variáveis locais e a pilha de instruções do método, criando então um frame do tamanho apropriado empilhando-o na pilha da thread que criou invocou o método. 3. A área de variáveis locais de um frame é um vetor cujo primeiro índice é eguarda os parâmetros atuais da chamada do método assim como as variáveis locais ao método. Valores dos tipos int, float, 16

17 reference e returnaddress ocupam uma entrada enquanto long e double ocupam duas. Os tipos byte, short, boolean e char são convertidos para int antes de serem armazenados. 4. A área de variáveis locais num frame de um método de instância tem na sua posição uma referência para o objeto, na heap, que invocou aquele método. Objetos em Java são sempre passados por referência. 5. Tamanhos das áreas no frame e ordens de alocação de variáveis na pilha, como possíveis otimizações no uso das variáveis são deixadas em aberto pela especificação da JVM. 6. A JVM é uma máquina de pilha, e não uma máquina de registradores como na maioria das arquiteturas de hardware, a menos do program counter, pois os operandos das suas instruções são retirados da pilha de operandos contida em um frame. O exemplo a seguir soma os valores em duas variáveis locais e coloca o numa terceira variável: 17

18 iload_0 iload_1 iadd istore_2 // Empilha o inteiro localizado na // variável local indexada por 0. // Empilha o inteiro localizado na // variável local indexada por 1. // Desempilha os dois inteiros e empilha // a soma. // Armazena o resultado na // variável local indexada por A área de dados do frame existe inclui informação para: (i) a resolução de nomes da constant pool, (ii) retorno normal de um método, (iii) término anormal de um método por sinalização de exceções. 8. Algumas instruções da máquina virtual utilizam a constant pool para buscar seus operandos. O acesso é feito então a partir da referência a constant pool existente na área de dados do frame. 9. Quando um método termina normalmente, a JVM precisa restaurar o 18

19 frame do método chamador como frame corrente, remover o frame do método que terminou, empilhar o retorno do método que concluiu na pilha de operandos do frame do método chamador e acertar o registrador program counter. 10. Quando um método termina anormalmente, a JVM precisa consultar uma tabela de exceções que contém as seguintes informações: (i) área protegida por um catch, um índice no constant pool que identifica a classe da exceção sendo tratada e (iii) o início do código do tratador. Se um catch apropriado não é encontrado, o método termina abruptamente. 19

20 Class File: Sintaxe para Descritores a 1. Um class file é a entradada para uma máquina virtual Java. É uma descrição binária para a estrutura da method area. 2. Neste curso iremos utilizar a linguagem assembly Jasmin (http://jasmin.sourceforge.net/) como saída para o nosso compilador. Poderíamos no entanto implementar nosso compilador para que ele gerasse class files diretamente. 3. Apesar de gerarmos assembly, recomenda-se a leitura do Capítulo 4 da especificação da máquina virtual que fala sobre o formato do class file. 4. Antes de falarmos sobre Jasmin, precisamos entender como descritores para campos e métodos são representados na JVM. a Baseado no Capítulo 4 de Java Virtual Machine Specification 20

21 Descritores de Campos 1. Podem representar o tipo de uma classe, intância ou variável local. Tem a seguinte gramática: FieldDescriptor: FieldType ComponentType: FieldType FieldType: BaseType ObjectType ArrayType BaseType: B C D F I J S Z ObjectType: L <classname> ; ArrayType: [ ComponentType 2. Os caracteres de BaseType, o L e ; de ObjectType, e [ de 21

22 ArrayType são todos caracteres ASCII. A string <classname> representa um nome completo de uma classe ou interface. 3. A interpretação dos tipos de campos são mostrados na tabela a seguir: 22

23 Caracter BaseType Tipo Interpretação B byte byte com sinal C char Caracter Unicode D double valor float-point de dupla precisão F float valor float-point de precisão simples I int inteiro J long inteiro longo L<classname>; reference instância da classe <classname> S short short com sinal Z boolean true ou false [ reference uma dimensão de um array 4. Exemplos: Variável de instância do tipo int: I. 23

24 Variável de instância do tipo Object: Ljava/lang/Object;. Note que é utilizada a forma interna para nome completo para a classe Object. Variável de instância que é um vetor multidimensional do tipo double, declarada em Java como double d[][][]; é: [[[D. 24

25 Descritores de método 1. Um descritor de método representa os parâmetros que os método recebe e o valor que ele retorna: MethodDescriptor: ( ParameterDescriptor* ) ReturnDescriptor 2. Um descritor de parâmetro representa um parâmetro passado ao método: ParameterDescriptor: FieldType 3. O descritor do valor de retorno representa o tipo do valor retornado por um método, com a seguinte gramática: ReturnDescriptor: FieldType V O caracter V indica que o método não retorna valor, ou seja o tipo de retorno é void. 4. O em comprimento da lista de parâmetros é calculado pela soma do 25

26 comprimento dos tipos dos seus parâmtros da seguinte maneira: tipos long ou double medem duas unidades de comprimento e qualquer outro tipo mede uma unidade. Um descritor de método é válido se o comprimento da sua lista de parâmetros é. 5. O descritor do método Object mymethod(int i, double d, Thread t) é: (IDLjava/lang/Thread;)Ljava/lang/Object; Note que são utilizados os nomes completos para as classes Thread e Object. 6. Um descritor de método para mymethod é o mesmo tanto quando for um método de classe quanto quando for um método de instância. O fato de que uma referência para this ser passada para um método de instância, (e não ser passada no caso de um método de classe) não fica refletido no descritor do método. A referência para this é 26

27 passada implicitamente pela instrução da JVM que invoca métodos de instância. 27

JAVA VIRTUAL MACHINE (JVM)

JAVA VIRTUAL MACHINE (JVM) JAVA VIRTUAL MACHINE (JVM) Por Leandro Baptista, Marlon Palangani e Tiago Deoldoto, 11 de Abril de 2009 A linguagem de programação Java proporciona o desenvolvimento aplicações que podem ser executadas

Leia mais

Como construir um compilador utilizando ferramentas Java

Como construir um compilador utilizando ferramentas Java Como construir um compilador utilizando ferramentas Java p. 1/2 Como construir um compilador utilizando ferramentas Java Aula extra A Máquina Virtual Java Prof. Márcio Delamaro delamaro@icmc.usp.br Como

Leia mais

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

FBV - Linguagem de Programação II. Um pouco sobre Java FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Curso Adonai QUESTÕES Disciplina Linguagem JAVA 1) Qual será o valor da string c, caso o programa rode com a seguinte linha de comando? > java Teste um dois tres public class Teste { public static void main(string[] args) { String a = args[0]; String

Leia mais

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br

Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 2: Classes e objectos LEEC@IST Java 1/24 Classes (1) Sintaxe Qualif* class Ident [ extends IdentC] [ implements IdentI [,IdentI]* ] { [ Atributos Métodos ]* Qualif:

Leia mais

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

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

AULA 02. 1. Uma linguagem de programação orientada a objetos

AULA 02. 1. Uma linguagem de programação orientada a objetos AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações

Leia mais

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

Programação de Computadores - I. Profª Beatriz Profº Israel Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem

Leia mais

Arquitectura de Computadores II. Máquinas Virtuais

Arquitectura de Computadores II. Máquinas Virtuais Arquitectura de Computadores II 3º Ano Máquinas Virtuais João Luís Ferreira Sobral Departamento do Informática Universidade do Minho Março 2003 Máquinas Virtuais Questões que levaram à introdução de máquinas

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

Módulo 06 Desenho de Classes

Módulo 06 Desenho de Classes Módulo 06 Desenho de Classes Última Atualização: 13/06/2010 1 Objetivos Definir os conceitos de herança, polimorfismo, sobrecarga (overloading), sobreescrita(overriding) e invocação virtual de métodos.

Leia mais

Sobre o Professor Dr. Sylvio Barbon Junior

Sobre o Professor Dr. Sylvio Barbon Junior 5COP088 Laboratório de Programação Aula 1 Java Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sobre o Professor Dr. Sylvio Barbon Junior Formação: Ciência e Engenharia da Computação (2005

Leia mais

2 Orientação a objetos na prática

2 Orientação a objetos na prática 2 Orientação a objetos na prática Aula 04 Sumário Capítulo 1 Introdução e conceitos básicos 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2 Objetos 1.4.3 Métodos e atributos 1.4.4 Encapsulamento 1.4.5 Métodos

Leia mais

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA P. Fazendeiro & P. Prata POO FP1/1 ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA 0 Inicie o ambiente de desenvolvimento integrado

Leia mais

file.j. a Baseado no Jasmin User Guide. (http://jasmin.sourceforge.net/)

file.j. a Baseado no Jasmin User Guide. (http://jasmin.sourceforge.net/) Jasmin a 1. Jasmin é um assembler para Java que recebe um descrição textual (ASCII) de classes Java e as converte para arquivos (binários) no formato class file. 2. Foi desenhado para ser um assembler

Leia mais

PADI 2015/16. Aula 1 Introdução à Plataforma.NET

PADI 2015/16. Aula 1 Introdução à Plataforma.NET PADI 2015/16 Aula 1 Introdução à Plataforma.NET 1 Sumário 1. Framework.NET Arquitectura 2. Linguagem C# 2.0 Sintaxe C# vs. Java vs. C++ 3. IDE: MS Visual Studio 2005 ou superior Ferramentas Console/Win

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

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

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a

Leia mais

Programação Orientada a Objetos em java. Polimorfismo

Programação Orientada a Objetos em java. Polimorfismo Programação Orientada a Objetos em java Polimorfismo Polimorfismo Uma característica muito importante em sistemas orientados a objetos Termo proveniente do grego, e significa muitas formas Em POO, significa

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos

Leia mais

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Orientação a Objetos em Java. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Orientação a Objetos em Java Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução; Orientação a Objetos; Orientação a Objetos em Java; Leonardo Murta Orientação a Objetos em Java 2 Agosto/2007

Leia mais

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com

BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com HelloWorld.java: public class HelloWorld { public static void main (String[] args) { System.out.println( Hello, World ); } } Identificadores são usados

Leia mais

Programação Orientada a Objetos! Java - Fundamentos. Prof. Sérgio Almagro! e-mail: sergio.ricardo.almagro@gmail.com

Programação Orientada a Objetos! Java - Fundamentos. Prof. Sérgio Almagro! e-mail: sergio.ricardo.almagro@gmail.com Programação Orientada a Objetos! Java - Fundamentos Prof. Sérgio Almagro! e-mail: sergio.ricardo.almagro@gmail.com Estrutura de Programação Bibliografia HORSTMANN, Cay S., CORNELL, Gray. Core Java 2 Volume

Leia mais

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal.

2. O gerador de código estende DepthFirstAdapter implementando a interpretação que gerará código Jasmin a partir de Smallpascal. Geração de Código para Smallpascal a 1. Já estudamos como SableCC faz uso do design pattern visitor para construir compiladores modulares. Vimos também os principais componentes da máquina virtual Java

Leia mais

A Linguagem Java. Alberto Costa Neto DComp - UFS

A Linguagem Java. Alberto Costa Neto DComp - UFS A Linguagem Java Alberto Costa Neto DComp - UFS 1 Roteiro Comentários Variáveis Tipos Primitivos de Dados Casting Comandos de Entrada e Saída Operadores Constantes 2 Comentários /** Classe para impressão

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de processos Controle e descrição de processos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Representação e controle de processos pelo SO Estrutura

Leia mais

Análises Geração RI (representação intermediária) Código Intermediário

Análises Geração RI (representação intermediária) Código Intermediário Front-end Análises Geração RI (representação intermediária) Código Intermediário Back-End Geração de código de máquina Sistema Operacional? Conjunto de Instruções do processador? Ambiente de Execução O

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita

Leia mais

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br Java - Introdução Professor: Vilson Heck Junior vilson.junior@ifsc.edu.br Agenda O que é Java? Sun / Oracle. IDE - NetBeans. Linguagem Java; Maquina Virtual; Atividade Prática. Identificando Elementos

Leia mais

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

Leia mais

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java

Keeper of Knowledge. Capítulo 1 Conceitos Básicos do Java Capítulo 1 Conceitos Básicos do Java INTRODUÇÃO O objectivo deste tutorial é ensinar as regras básicas de programação em Java e facilitar a aprendizagem dos capítulos que se seguem. Qualquer dúvida sobre

Leia mais

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40 JAVA Marcio de Carvalho Victorino 1/40 Introdução 2/40 Page 1 Programação OO Elementos do modelo OO: Abstração: é o processo de abstrair as características essenciais de um objeto real. O conjunto de características

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java Histórico: Início da década de 90. Pequeno grupo de projetos da Sun Microsystems, denominado Green. Criar uma nova geração de computadores portáveis, capazes de se comunicar

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais são as palavras que podem

Leia mais

Unidade IV: Ponteiros, Referências e Arrays

Unidade IV: Ponteiros, Referências e Arrays Programação com OO Acesso em Java a BD Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática

Leia mais

Noções sobre Objetos e Classes

Noções sobre Objetos e Classes Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão

Leia mais

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ...

Programação Na Web. Linguagem Java Parte II. break com o nome do bloco. Sintaxe. Nome do bloco. Termina o bloco. António Gonçalves ... Programação Na Web Linguagem Java Parte II Sintaxe António Gonçalves break com o nome do bloco Nome do bloco Termina o bloco class class Matrix Matrix { private private int[][] int[][] mat; mat; public

Leia mais

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Criar a classe Aula.java com o seguinte código: Compilar e Executar Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void

Leia mais

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.

Leia mais

LINGUAGEM DE PROGRAMAÇÃO JAVA

LINGUAGEM DE PROGRAMAÇÃO JAVA LINGUAGEM DE PROGRAMAÇÃO JAVA Curso de Especialização em Tecnologia Java UTFPR Capítulo 1 Parte 1 Introdução à tecnologia Java Ambiente de desenvolvimento Java Introdução à Tecnologia Java O que é Java?

Leia mais

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo

Seminário - C# DSO II. Desenvolvimento de Sistemas Orientados a Objetos 2. Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Seminário - C# DSO II Desenvolvimento de Sistemas Orientados a Objetos 2 Equipe: Diorges, Leonardo, Luís Fernando, Ronaldo Roteiro Breve Histórico Plataforma.NET Características da Linguagem Sintaxe Versões

Leia mais

4 Avaliação do Código Gerado

4 Avaliação do Código Gerado Referencial Teórico 4 Avaliação do Código Gerado Nós fizemos alguns exemplos para avaliar a eficiência da especificação proposta, tanto em termos de velocidade de execução quanto de diminuição do tamanho

Leia mais

Conversão de Tipos e Arrays

Conversão de Tipos e Arrays Conversão de Tipos e Arrays Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Conversão de Tipos Permite converter

Leia mais

Lição 9 Trabalhando com bibliotecas de classes

Lição 9 Trabalhando com bibliotecas de classes Lição 9 Trabalhando com bibliotecas de classes Introdução à Programação I 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Explicar o que é programação orientada a objetos e alguns de seus

Leia mais

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this. Aula 2 Objetivos Encapsulamento na linguagem Java; Utilizando a referência this. Encapsulamento, data hiding é um conceito bastante importante em orientação a objetos. É utilizado para restringir o acesso

Leia mais

7/7/2010. Confiabilidade Independência de Plataforma Segurança Oak se transforma em Java

7/7/2010. Confiabilidade Independência de Plataforma Segurança Oak se transforma em Java Cay Horstmann, Gary Cornell. Core Java, Volume 1 - Fundamentos. Editora: Prentice Hall. Ano: 2007. Edição: 8 The Java Tutorials http://java.sun.com/docs/books/tutorial/ Standard Edition Revisão Geral Fernando

Leia mais

Programando em C# Orientado a Objetos. By: Maromo

Programando em C# Orientado a Objetos. By: Maromo Programando em C# Orientado a Objetos By: Maromo Agenda Módulo 1 Plataforma.Net. Linguagem de Programação C#. Tipos primitivos, comandos de controle. Exercícios de Fixação. Introdução O modelo de programação

Leia mais

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Aula 09 Introdução à Java Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Java: Sintaxe; Tipos de Dados; Variáveis; Impressão de Dados.

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti

ESTRUTURAS DE DADOS I. Notas de Aula. Prof. Dr. Gilberto Nakamiti ESTRUTURAS DE DADOS I Notas de Aula 1 SUMÁRIO 1. INTRODUÇÃO... 2 1.1 Array (vetores)... 2 2. BUSCA DE ELEMENTOS... 3 2.1 Busca Seqüencial... 3 2.2 Busca Binária... 3 2.3 Busca Indexada... 3 2.4 Busca Hash...

Leia mais

(Aula 17) Threads em Java

(Aula 17) Threads em Java (Aula 17) Threads em Java Difícil As Threads thread threads de emjava classificar sãogerenciadaspelajvm. podemser com user criadasdas thread ou kernel Profa. Patrícia A seguintesmaneiras: Fazendo extend

Leia mais

Tipos de Dados Simples

Tipos de Dados Simples Programação 11543: Engenharia Informática 6638: Tecnologias e Sistemas de Informação Cap. 3 Tipos de Dados Simples Tipos de Dados Simples Objectivos: Hierarquia de tipos de dados Tipos de dados simples

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br

JAVA. Fabrício de Sousa fabbricio7@yahoo.com.br JAVA Fabrício de Sousa fabbricio7@yahoo.com.br Agenda 2 Características Ambientes de Desenvolvimento Sintaxe Comentários Tipos de dados primitivos Caracteres especiais Variáveis Operadores Aritméticos

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

Introdução à Linguagem Java

Introdução à Linguagem Java Introdução à Linguagem Java A linguagem Java surgiu em 1991 quando cientistas da Sun, liderados por Patrick Naughton e James Gosling, projetaram uma linguagem pequena para ser utilizada em eletrodomésticos

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

GRUPO: Igor de Oliveira Nunes Mateus Tassinari Ferreira Renan Sarcinelli

GRUPO: Igor de Oliveira Nunes Mateus Tassinari Ferreira Renan Sarcinelli GRUPO: Igor de Oliveira Nunes Mateus Tassinari Ferreira Renan Sarcinelli Surgimento do C# No final de 1990 a Microsoft tinha diversas tecnologias e linguagens de programação. Toda vez que um programador

Leia mais

O que significa programar e a razão da sua importância. os sistemas informáticos dependem da interacção de inúmeros programas

O que significa programar e a razão da sua importância. os sistemas informáticos dependem da interacção de inúmeros programas Capítulo 1 Introdução Enquadramento da disciplina O que significa programar e a razão da sua importância basilar em qualquer curso de computação os sistemas informáticos dependem da interacção de inúmeros

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA: PROGRAMAÇÃO ORIENTADA A OBJETOS PROFESSOR: REINALDO GOMES ASSUNTO: REVISÃO DA INTRODUÇÃO A ORIENTAÇÃO

Leia mais

André Santos / Pablo Sampaio

André Santos / Pablo Sampaio JVM- Máquina Virtual Java André Santos / Pablo Sampaio Estrutura da Apresentação Máquinas Virtuais Introdução à JVM Arquivo class Tipos de Dados Descritores de Tipos Frames Instruções Compilando para a

Leia mais

insfcanceof new public switch transient while byte continue extends for int null

insfcanceof new public switch transient while byte continue extends for int null Palavras -chave de JAV A abstract catch do final implements long private static throw void boolean char double finally import native protected super throws volatile break class float insfcanceof new public

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

Marco Aurélio malbarbo@din.uem.br. Uma Visão Geral Sobre Plataforma Java

Marco Aurélio malbarbo@din.uem.br. Uma Visão Geral Sobre Plataforma Java RedFoot J Dukes Uma Visão Geral Sobre Plataforma Java Marco Aurélio malbarbo@din.uem.br 1 Roteiro Objetivos Plataforma Java Linguagem de Programação Maquina Virtual Tecnologias Conclusão 2 Objetivos Geral

Leia mais

Capítulo 3. Programação por objectos em Java

Capítulo 3. Programação por objectos em Java Capítulo 3. Programação por objectos em Java 1/46 Índice Indice 3.1 - Qualificadores de visualização 3.2 - Classe 3.3 - Objecto 3.4 - Métodos 3.5 - Herança 3.6 - Reescrita de métodos 3.7 - Classes abstractas

Leia mais

Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação

Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação Java Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação 1 Tabelas para quê? As tabelas são utilizadas quando se pretende armazenar e manipular um grande número de

Leia mais

Universidade Federal de Uberlândia

Universidade Federal de Uberlândia Universidade Federal de Uberlândia Programação Orientada a Objetos I Introdução a Java Sintaxe básica OO Prof. Fabiano Azevedo Dorça Em Java, cada classe dá origem a um arquivo.java contendo o código fonte.

Leia mais

Introdução à linguagem

Introdução à linguagem A Tecnologia Java 1 Introdução à linguagem Origens do JAVA Projecto Green, programação para a electrónica de Consumo (Dezembro 1990): Pouca memória disponível Processadores fracos Arquitecturas muito diferentes

Leia mais

P n o t n ifíci c a a Un U i n ve v r e si s da d d a e d e C a C t a ól ó ica c a d o d o R i R o o d e d e J a J n a e n i e ro o PU P C U -Ri R o

P n o t n ifíci c a a Un U i n ve v r e si s da d d a e d e C a C t a ól ó ica c a d o d o R i R o o d e d e J a J n a e n i e ro o PU P C U -Ri R o Curso: Técnico em Informática Campus: Ipanguaçu José Maria Monteiro Pontifícia Universidade Católica do Rio de Janeiro PUC-Rio Departamento Clayton Maciel de Informática Costa clayton.maciel@ifrn.edu.br

Leia mais

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel

Acesso a Banco. Conexão em Java. Conexão em Java. Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel Acesso a Banco Programação Orientada a Objetos Profa. Cristiane e Prof. Daniel As conexões em Java são feitas através de uma ponte que implementa todas as funcionalidades que um banco de dados padrão deve

Leia mais

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education

Slide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

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

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática Programação Orientada a Objectos - 28/29; P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que um programa em JAVA deve poder ser executado em qualquer tipo de computador

Leia mais

Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes E-mail: rxbrito@gmail.

Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes E-mail: rxbrito@gmail. Um pouco da história Faculdade Instituto Educare - FIED Curso: Sistemas de Informação Disciplina: Linguagem de Programação I Prof.: Rhyan Ximenes E-mail: rxbrito@gmail.com Introdução a Linguagem Java Java

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 1: Introdução MEEC@IST Java 1/27 História versões (1) [1995] Versão 1.0, denominada Java Development Kit (JDK) 212 classes em 8 pacotes Lento, muitos bugs, mas com Applets

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Geração de Código (Registros de Ativação)

Geração de Código (Registros de Ativação) Gerenciamento de Memória Geração de Código (Registros de Ativação) Compiladores II A memória é afetada pelo compilador e/ou código fonte: Código objeto gerado Espaço para variáveis globais Ativação de

Leia mais

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

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

A Linguagem de Programação Java

A Linguagem de Programação Java A Linguagem de Programação Java Índice 1.Introdução 2 2.Histórico 2 3.As palavras que definem Java 3 4.Tipos primitivos 6 5.Tipos Compostos 6 6.Expressões 7 7.Variáveis 8 8.Comandos 9 9.Java e a Orientação

Leia mais

Capítulo 4. Packages e interfaces

Capítulo 4. Packages e interfaces Capítulo 4. Packages e interfaces 1/17 Índice Indice 4.1 - Package 4.2 - Interface 2/17 Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17 4.1 Package Package ou pacote está para o Java como as directorias

Leia mais

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

Linguagem de Programação Introdução a Linguagem Java Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,

Leia mais

Memory Leak em Java?

Memory Leak em Java? 1 Memory Leak em Java? Saiba como memory leaks se manifestam em Java e como evitá-los Sobre o Autor Carlos Eduardo G. Tosin (carlos@tosin.com.br) é formado em Ciência da Computação pela PUC-PR, pós-graduado

Leia mais

CURSO DE PROGRAMAÇÃO EM JAVA

CURSO DE PROGRAMAÇÃO EM JAVA CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro

Leia mais

Capítulo 8. Software de Sistema

Capítulo 8. Software de Sistema Capítulo 8 Software de Sistema Adaptado dos transparentes das autoras do livro The Essentials of Computer Organization and Architecture Objectivos Conhecer o ciclo de desenvolvimento da linguagem Java

Leia mais

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2

BCC221 Programação Orientada a Objetos. Prof. Marco Antonio M. Carvalho 2014/2 BCC221 Programação Orientada a Objetos Prof. Marco Antonio M. Carvalho 2014/2 Site da disciplina: http://www.decom.ufop.br/marco/ Moodle: www.decom.ufop.br/moodle Lista de e- mails: bcc221- decom@googlegroups.com

Leia mais

MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios

MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios MC404: Organização de Computadores e Linguagem de Montagem Lista de Exercícios 2 o semestre de 2014 - Turmas E/F Prof. Edson Borin Questão 1. Qual a diferença entre as formas de armazenamento de dados

Leia mais

Java Como Programar, 8/E

Java Como Programar, 8/E Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

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

Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Conceitos básicos e serviços do Sistema Operacional Prof. Marcos Ribeiro Quinet de Andrade Universidade Federal Fluminense - UFF Pólo Universitário de Rio das Ostras - PURO Tipos de serviço do S.O. O S.O.

Leia mais

Lab de Programação de sistemas I

Lab de Programação de sistemas I Lab de Programação de sistemas I Apresentação Prof Daves Martins Msc Computação de Alto Desempenho Email: daves.martins@ifsudestemg.edu.br Agenda Orientação a Objetos Conceitos e Práticas Programação OO

Leia mais

Sintaxe Básica de Java Parte 1

Sintaxe Básica de Java Parte 1 Sintaxe Básica de Java Parte 1 Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marcioubeno.com Fonte: Material da Profª Karina Oliveira Estrutura de Programa Um programa

Leia mais

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM

CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM CAPÍTULO 7 NÍVEL DE LINGUAGEM DE MONTAGEM 71 Introdução Difere dos níveis inferiores por ser implementado por tradução A tradução é usada quando um processador está disponível para uma mensagem fonte mas

Leia mais