Monitoria IP ~if669
Garbage Collection e pacotes
Tópicos

Pacotes: Como e porque usá-los

Garbage Collection: Descrição do Mecanismo
Por que usar pacotes?

ORGANIZAÇÃO E
MODULARIZAÇÃO!

É o mesmo motivo porque existem diretórios e
pastas nos sistemas operacionais, tudo poderia
estar no C:/ , mas isso seria altamente
caótico(conflitos de nomes, etc. )
Como usar?

Simples! Tipos* que são do mesmo grupo,
pertencem ao mesmo pacote.

Ex. O pacote java.io tem tipos usados para entrada
e saída, enquanto o pacote java.lang possui tipos
que tem funções básicas.
 *classes e interfaces
Como usar? Exemplo prático

Imaginem que vocês desenvolveram uma série de
tipos que representam objetos gráficos, círculos,
retângulos, linhas, pontos etc.
Como usar? Exemplo prático

Todos esses tipos devem ser distribuídas dentro
do mesmo pacote:
– Vocês e outros programadores sabem que esses tipos
estão relacionados.
– Vocês e outros programadores sabem onde achar tipos
que fornecem funções gráficas.
– Os nomes de seus tipos não irão entrar em conflito com
classes de outros pacotes.
Como usar? Sintaxe

Deve ser declarado na primeira linha do código
fonte. Só escrever package seguido do nome.
package graphics;
public class Circulo{
. . .
}

Não é recomendável deixar o campo package em
branco.
Como usar? Sintaxe

Para acessar uma classe que está dentro de um
pacote, basta usar o import
package br.cin.ufpe.util;
import java.util.ArrayList;
public class Teste {
private ArrayList lista;
. . .
}
Como usar? Nomeando os pacotes

A convenção é usar o dominio invertido da
instituição:
– www.cin.ufpe.br -> br.ufpe.cin.nomedopacote
– www.empresa.org -> org.empresa.nomedopacote

Só são permitidos nomes minúsculos sem
caracteres especiais(com exceção do ‘_’)
Como usar? Nomeando os pacotes

Por que usar as convenções?
– Evita possíveis conflitos de nomes, já que pacotes não
podem possuir o mesmo nome.
– Alguns nomes são muito intuitivos e bastante usados,
como base, examples, graphics, io, util, etc. Usar esses
nomes sem o prefixo da instituição pode causar
problemas com a distribuição do programa
Garbage Collection


Em java não é possível destruir um objeto
diretamente
O garbage collector percebe quando um objeto
não será mais usado e o destrói automaticamente
– Podemos “ajudar” o cg do java, basta apontar um objeto
para null que ele provavelmente será tratado mais
rápido:
private ArrayList lista;
. . . //Usando lista
lista = null; //Lista não é mais necessária
Garbage Collection - Nem tudo são flores

É impossível fazer um Garbage Collector
funcionar perfeitamente, então um código que foi
bem escrito onde o programador desalocou os
objetos manualmente sempre séra mais eficiente.

É impossível ter certeza quando e onde o Garbage
Collector vai atuar.
Garbage Collection – Vantagens




Código mais enxuto
O programador não precisa se preocupar em
desalocar os objetos
Menos erros
Muitas aplicações não sentem o peso de
performance do CG
Dúvidas ?
Download

Como usar?