Resumo JAVA

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
StringBuffer - Classe especializada na manipulação de strings
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
protected - restrito a própria classe e suas derivadas ou
descendentes
public - irrestrito, ou seja, visivél por todos
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).
Pacotes utilizados
java.awt - componentes GUI primários que utilizam
recurso nativos do sistema operacional
java.awt.event - utilizado na manipulação de
eventos
javax.swing - componentes GUI mais atuais, contudo
vários herdam diretamente ou indiretamente dos
componentes AWT.
Classe e interfaces relevantes:
Janelas e Painéis - JFrame, JDialog, JOptionPane e
JPanel
Componentes - JTextField, JLabel e Jbutton
Gerenciadores de Layout - FlowLayout, GridLayout,
BorderLayout
Eventos
Interface - ActionListener, MouseListener e
KeyListener
Classe Adaptadoras - MouseAdapter, KeyAdapter
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
implementado, ele é o corpo da thread.
O método start() de uma thread a coloca no
estado "novo" ou "pronta para executar", mas
somente o scheduler (agendador ou
escalonador da JVM) determinará sua
execução.
Ciclo de Vida
novo - inicio do ciclo
executável - executando sua tarefa
terminado - fim do ciclo
Prioridades de threads
(espera) - wait()- aguarda notificação de outra thread para continuar - notify()
(espera cronometrada) - sleep(tempo)
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"
API - que provê uma interface para que fabricantes de
SGBD (Sistema Gerenciador de Banco de Dados)
implementem controladores (drivers) para acesso a
banco de dados.
pacote java.sql
Class.forName() - Método estático da classe
java.lang.Class utilizado para carregar uma instância
do controlador (driver) do fabricante
DriverManager - Classe gerenciadora de drivers que
possui o método getConnection()
Statement - Interface que provê a execução de consultas e
procedimentos através das sintaxe SQL
SubInterfaces - CallableStatement, PreparedStatement
Métodos:
execute - retorna um booleano (true se resulta num conjunto de
resultados e false se for uma contagem atualizada ou não houver
resultados)
executeQuery - retorna um ResultSet (conjunto de resultados)
executeUpdate - retorna um inteiro (representa total de registros
afetados)
ResultSet - Interface que provê a obtenção de um conjunto
de resultados obtidos através das Statement
SubInterfaces - CachedRowSet, JdbcRowSet, JoinRowSet, RowSet
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>
Programas Java que executam em um servidor WEB
(contêiner WEB).
pacotes javax.servlet, javax.servlet.http
Ciclo de Vida
init, service, destroy
O método service recebe respectivamente dois objetos:
ServletRequest e ServletResponse
Interface Servlet
Classes abstratas
GenericServlet
HttpServlet
Utilizada para implementações com outros protocolos
métodos:
doGet - utilizada para tratar requesições GET
doPost - utilizada para tratar requesições POST
Produz saídas html através do uso de objetos PrintWriter
Ex: out.println("<title>TITULO</title>");
Utilizado para a produção de páginas dinâmicas
Tal como os Servlets, são programas Java que
executam em um servidor WEB (contêiner WEB).
São interpretados na primeira requisição e geram
um Servlet que responde as próximas requisições.
pacote javax.servlet.jsp
Objetos implícitos
Escopo Application
Escopo Page
Escopo Request
Escopo Session
Escopo Application
application - Um objeto
javax.servlet.ServletContext que representa o
contêiner em que o JSP executa.
Escopo Page
config - Um objeto javax.servlet.ServletConfig que representa as opções de configuração
do JSP. Como com os servlets, as opções de configuração podem ser especificadas em
um descritor de aplicativo Web.
exception - Um objeto java.lang.Throwable que representa uma exceção passada para
uma página de erro JSP. Esse objeto está disponível somente em uma pagina de erro JSP.
out - Um objeto javax.serlvet.JspWriter que escreve texto como parte da resposta para
uma solicitação. Esse objeto é utilizado implicitamente com as expressões e ações JSP que
inserem conteúdo de string em uma resposta.
page - Um Object que representa a referência this para a instância JSP atual.
pageContext - Um objeto javax. servlet.jsp.PageContext que fornece programadores em
JSP com acesso aos objetos implícitos discutidos nesta tabela.
response - Um objeto que representa a resposta ao cliente e, normalmente, é uma
instância de uma classe que implementa HttpServletResponse (pacote javax.servlet.http).
Se um protocolo diferente de HTTP for utilizado, esse objeto será uma instância de uma
classe que implementa javax.servlet.ServletResponse.
Escopo Request
request - Um objeto que representa a
solicitação de cliente e, normalmente, é uma
instância de uma classe que implementa
HttpServletRequest (pacote javax.servlet.http).
Se um protocolo diferente de HTTP for
utilizado, esse objeto será uma instância de
uma sub-classe de javax.servlet.ServletRequest.
Escopo Session
session - Um objeto
javax.servIet.http.HttpSession que representa
as informações de sessão de cliente se essa
sessão tiver sido criada. Esse objeto está
disponível apenas em páginas que participam
de uma sessão.
FIM
Download