Resumo JAVA 2013 (versão PDF)

Propaganda
RESUMO DOS
TÓPICOS +
IMPORTANTES
De instância (non-static) - estão no
contexto da classe sem o modificador
static
De Classe (static) - estão no contexto da
classe com o modificador static
Local – estão no contexto do corpo de
métodos
Parâmetro – estão no contexto da definição
do método
byte,
short,
int,
long,
float,
double,
boolean,
char
byte 0,
short 0,
int 0,
long 0L,
float 0.0f,
double 0.0d,
char '\u0000',
boolean false,
String (ou qualquer objeto) null
Um array é um objeto capaz de armazenar um
número fixo de valores de um tipo único.
int i[ ] = { 1, 2, 3};
int[ ] i = new int[3];
String[ ] str = {“um”, “dois”, “três”}
atribuição
aritméticos
unários
igualdade
relacionais
condicionais
orientados a bit e deslocamento (operações de
baixo nível)
tomada de decisão
(if, else, else if, switch (byte, short, char, int))
repetição
(for, while, do-while)
desvio
(break, continue, return)
Declarando Classes
class MinhaClasse {
//atributos, construtores, declaração de métodos
}
Herança
class Filha extends MinhaClasse {
//herdará todos os atributos, construtores e
métodos públicos ou protegidos de MinhaClasse
}
Sobrescrita ou sobreposição (override) dos
métodos herdados da super classe.
Regras:
Métodos final e private não podem ser sobrescritos.
Métodos protegidos podem sobrescrever métodos
sem modificador de acesso (package ou default).
Métodos sobrescritos não podem ter um modificador
de acesso mais restritivo que o método original.
Métodos incluindo o construtor podem ser sobrecarregados, ou
seja, isto significa que dois os mais métodos podem ter o mesmo
nome, mas assinaturas diferentes na mesma classe.
public void meuMetodo(int i) {...}
// ex: 1 - primeiro método com este nome na classe
protected void meuMetodo(int b) {...}
// ex: 2 - inválido - pois foi alterado o nome do parâmetro e
não o tipo
private void meuMetodo(int i, int j) {...}
// ex: 3 - válido - quantidade de parâmetros diferentes do ex.1
private void meuMetodo(int j, int i) {...}
// ex: 4 - inválido - invertida a ordem, mas a quantidade de
parâmetros e os tipos (int) são iguais ao ex.3
Possuem o mesmo nome da classe sem tipo de
retorno, podem ser sobrecarregados.
class MinhaClasse {
public MinhaClasse() { }
public MinhaClasse(int i) { }
}
Os parâmetros de métodos são recebidos apenas
por valor, ou seja, ocorre uma cópia do tipo de
dado recebido.
Para os tipos primitivos não existe o alteração na
variável fora do escopo do método.
Já com os tipos referência, haverá apenas a cópia
do endereço para o objeto. E como duas referências
podem apontar para o mesmo objeto, logo existirá
alteração no objeto referenciado.
this - utilizada pela própria classe quando faz
referência a sua instância corrente.
super - utilizada pela própria classe quando faz
referência a sua super classe.
Classe Internas (Inner Class)
Membros – estão no contexto da classe
Locais (podem ser anônimas ou não) – estão no
contexto de métodos (corpo ou parâmetro)
Enum
Tipo de classe que armazena uma seqüência de
constantes públicas.
São estereótipos de classes, ou seja, o mesmo que classes
totalmente abstratas.
São por default totalmente públicas.
Seus métodos não possuem implementação, apenas a definição.
Pode conter atributos como constantes estáticas.
Uma classe que utiliza uma interface deve implementar todos os
seus métodos, ou torná-los abstratos, sendo assim a classe também
deve ser abstrata.
Não podem ser instanciadas diretamente.
É geralmente uma representação genérica para
tipos específicos
Podem conter atributos, construtores e
métodos (abstratos ou concretos).
Não podem ser instanciadas diretamente.
String - São imutáveis
Métodos relevantes desta classe:
equals, substring, indexOf, lastIndexOf, replace,
toLowerCase, toUpperCase, split, getChars,
toCharArray, concat, intern, length
StringBuilder - Classe especializada na manipulação de strings
Mutável
Métodos relevantes desta classe:
append, delete, insert, reverse
Math
Métodos relevantes desta classe:
abs, ceil, floor, pow, sqrt
Um pacote é uma agrupamento de tipos
relacionados (classes, interfaces, enums) que
provê uma proteção de acesso e um
gerenciamento do espaço de nomes.
São constituídos de um ou mais diretórios
aninhados.
Ex: A pasta "br" contém a pasta "com" que
contém a pasta "eugenio"
Na sintaxe java:
// informa que esta classe faz parte deste pacote
package br.com.eugenio;
//Observação: uma classe não precisa importar o seu próprio pacote.
// informa ao compilador que todas as classes ou interfaces deste pacote podem
ser utilizadas.
import br.com.eugenio.*;
// Com utilização do import
MinhaClasse mc = new MinhaClasse();
// Sem utilização do import
br.com.eugenio.MinhaClasse mc = new br.com.eugenio.MinhaClasse();
private - restrito a própria classe
default, package-private ou sem modificador - o método ou
atributo que não possuir um dos três modificadores
anteriores (private, protected ou public), terá o seguinte
comportamento:
público - para todas classes ou interfaces do seu pacote; e
privado - para todas as classes que não fizerem parte do seu
pacote, por isso package-private (privativo do pacote).
protected - restrito a própria classe e suas derivadas ou
descendentes
public - irrestrito, ou seja, visivél por todos
Threads também conhecidos como Processos Leves ou
Linhas de execução.
Um processo pode conter uma ou mais threads.
Estratégias de implementação
extends Thread
implements Runnable
Nas duas estratégias o método run() deve ser
sobrescrito ou implementado, ele é o corpo da
thread.
O método start() de uma thread a coloca no
estado "novo" ou "pronta para executar".
Ciclo de Vida
novo - inicio do ciclo
executável - executando sua tarefa
Espera) - wait()- aguarda notificação de outra thread para continuar - notify()
Espera sincronizada - sleep(tempo)
Bloqueada (sincronização ou interrupção E/S)
terminado - fim do ciclo
Prioridades de threads
MAX_PRIORITY: 10
NORM_PRIORITY: 5
MIN_PRIORITY: 1
Obs: Apesar da prioridade o agendamento preemptivo não é
garantido em todos os sistemas operacionais.
Métodos ou blocos sincronizados
modificador synchronized - Utilizado quando threads
precisam compartilhar o mesmo objeto sem conflito.
Os métodos wait(), notify(), notifyAll() oriundos da
classe Object auxiliam na sincronização.
Obs: A partir da versão 5 do Java foi incluída a API de
concorrência de alto nível cujo o pacote é
"java.util.concurrent"
Programas Java que podem ser incorporados a um
documento HTML.
O navegador que executa o applet é conhecido como
contêiner applets
Ciclo de Vida
init, start, paint, stop, destroy
Tag applet <applet> </applet>
Parâmetros <applet> <param name=“nome”
value=“valor”/> </applet>
Array
Classe
java.util.Arrays
Métodos
sort
binarySearch
fill
ArrayList
Classe
java.util.ArrayList
Característica
API de Coleções, Genérica e Redimensionável
Capacidade inicial 10 elementos
Métodos
add, clear, contains, get, indexOf, remove, remove,
size, trimToSize
Arquivos e Fluxos
Classe System
Objetos de fluxo padrão:
System.in, System.out e System.err
Métodos para redirecionar:
setIn, setOut, setErr
Fluxos Baseados em:
Bytes (arquivos binários)
Caracteres (arquivos de textos)
Arquivos e Fluxos
Entrada ou leitura
Binário
java.io.InputStream
java.io.FileInputStream
java.io.FilterInputStream
java.io.BufferedInputStream
java.io.DataInputStream
Caracter
java.io.FileReader
java.util.Scanner
Arquivos e Fluxos
Saída ou escrita
Binário
java.io.OuputStream
java.io.FileOutpuStream
java.io.FilterOutputStream
java.io.BufferedOutputStream
java.io.DataOutputStream
Caracter
java.io.FileWriter
java.util.Formatter
Arquivos e Fluxos (Classes
adicionais)
Classe
Filter
Data
Piped
Buffered
ByteArray
CharArray
LineNumber
String
SequenceInputStream
RandomAccessFile
Binários Caracteres Obs.
X
X
Agrega bytes de dados a
unidades de tipos primitivos
significativas
X
Leitura ou escrita de tipos
primitivos
X
X
Comunicação sincronizada
entre threads
X
X
Desempenho – flush
X
Memória
X
Memória
X
X
Somente leitura – contagem
de linhas
X
Leitura e escrita de Strings
X
Concatena inputstreams
X
Leitura e escrita de tipos
primitivos em arquivos
Arquivos
Classe File
Utilizada para obter informações de arquivos e
diretórios
Métodos
canRead, canWrite, exists, isFile, isDirectory,
isAbsolute, getAbsolutePath, getName, getPath,
getParent, length, lastModified, list
File.separator
Serialização de objetos
Interfaces
ObjectInput, ObjectOutput, Serializable
Classes
ObjectInputStream, ObjectOuputStream
Métodos
readObject, writeObject
Modificador – transient
JFileChooser
Classe utilizada para selecionar arquivos ou
diretórios por meio de uma GUI.
Strings
Classe java.lang.String
Imutáveis
Métodos
length, charAt, equals, pool, equalsIgnoreCase,
compareTo, regionsMatches, startsWith, indexOf,
substring, concat, replace, toUpperCase, trim,
toCharArray, valueOf
Strings
Classe StringBuilder
Mutáveis
Capacidade inicial 16 caracteres
Métodos
capacity, ensureCapacity, setLength, setCharAt,
getChars, append, insert, reverse
Tokenização de Strings com split
Caracteres
Classe Character
Métodos
isDefined, isDigit, isJavaIdentifierStart,
isJavaIdentifierPart, isLetter, isLetterOrDigit,
isLowerCase, isUpperCase, digit, forDigit,
charValue, toString
Expressões regulares
Classes de caracteres predefinidas
Quantificadores [ganancioso, ? (relutante ou preguiçoso)]
Expressões regulares
Classes do pacote java.util.regex
Pattern
Métodos
compile, matcher, matches, pattern, split
Matcher
Métodos
find, group, lookinAt, matches, pattern, replaceFirst,
replaceAll
FIM
Download