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 ?