wpjr2’s Weblog

Artigos e tutoriais úteis

Archive for 14 de abril de 2008

Atalhos para o Eclipse

Posted by wpjr2 em abril 14, 2008

F10 Main menu
Shift F10 Context menu
Ctrl F10 View menu
Workspace navigation
F12 Activate editor
Ctrl+Shift+W Switch editor
Ctrl F6 Next editor
Ctrl Shift F6 Prev editor
Ctrl F7 Next workspace
Ctrl Shift F7 Prev workspace
Ctrl F8 Next perspective
Ctrl Shift F8 Prev perspective
Alt Left Back
Alt Right Forward
Files
Alt Shift S Show in…
Ctrl Shift R Jump to file
Ctrl N New file
Ctrl S Save file
Ctrl Shift S Save all files
Ctrl F4 Close file
Ctrl Shift F4 Close all files
Find
Ctrl L Goto line
Ctrl F Find
Ctrl J Incremental find
Ctrl Shift J Incremental find prev
Ctrl K Find next
Ctrl Shift K Find prev
Ctrl H Search workspace
Ctrl (dot) Navigate next
Ctrl (comma) Navigate prev
Java navigation
F3 Goto declaration
Ctrl Shift U Find references in file
Ctrl Shift G Find references in workspace
Ctrl G Find declarations in workspace
Ctrl Shift P Navigate to matching bracket/brace
Ctrl T Popup type hierarchy
Ctrl Shift T Open Type
Ctrl O Outline of current source
Ctrl F3 Outline of current cursor position
Ctrl Shift Arrow Jump beetween methods up or down
F2 Show Javadoc
F4 Show hierarchy
Ctrl Alt H Open call hierarchy
General editing
Alt Arrow Move line(s) up or down
Alt Shift Up Expand selection to enclosing element
Alt Shift Right Expand selection to next element
Alt Shift Left Expand selection to previous element
Alt Shift Down Restore previous selection
Ctrl Alt Arrow Duplicate line(s) up or down
Shift Enter Insert line below
Ctrl Shift Enter Insert line above
Ctrl D Delete line
Ctrl Shift Q Toggle Quick Diff
Ctrl Shift Y Convert to lowercase
Ctrl Shift X Convert to uppercase
Java editing
Alt Shift U Remove occurrence annotations
Ctrl 1 Quick fix (works even when there are no errors
Ctrl Shift M Add import
Ctrl Shift F Reformat
Ctrl Shift O Organize Imports
Ctrl / Comment
Ctrl \ UnComment
Ctrl Shift Space Parameter hints
Ctrl Hyperlink identifier
Ctrl I Correct indentation
Shift Space Incremental content assist
Debugger
F5 Step into
F6 Step over
F7 Run to return
F8 Resume
F9 Relaunch last
F11 Run/debug last
Ctrl F11 Run
Ctrl Shift B Toggle breakpoint
Ctrl D Display
Ctrl Q Inspect
Ctrl R Run to line
Ctrl U Run snippet
Refactoring
Alt T Refactoring menu
Ctrl Shift Z Undo refactor
Ctrl Shift Y Redo refactor
Alt Shift R Rename
Alt Shift V Move
Alt Shift I Inline
Alt Shift M Extract method
Alt Shift L Extract local
Alt Shift C Change method signature
Misc
F5 Refresh
F1 Infopop
F2 Show resizeable hover
Anúncios

Posted in Curso de Programação Java | Etiquetado: , , | 1 Comment »

Frameworks de Desenvolvimento em Java

Posted by wpjr2 em abril 14, 2008

No desenvolvimento do software, um framework ou arcabouço é uma estrutura de suporte definida em que um outro projeto de software pode ser organizado e desenvolvido. Um framework pode incluir programas de
suporte, bibliotecas de código, linguagens de script e outros softwares para ajudar a desenvolver e juntar diferentes componentes de um projeto de software.

Frameworks são projetados com a intenção de facilitar o desenvolvimento de software, habilitando designers e programadores a gastarem mais tempo determinando as exigências do software do que com detalhes tediosos de baixo nível do sistema.

Especificamente em orientação a objeto, framework é um conjunto de classes com objetivo de reutilização de um design, provendo um guia para uma solução de arquitetura em um domínio específico de software.

Framework se diferencia de uma simples biblioteca (toolkit), pois esta se concentra apenas em oferecer implementação de funcionalidades, sem definir a reutilização de uma solução de arquitetura (design).

Muitos engenheiros acreditam que a arquitetura é determinada pelos requisitos e por isso esperam que a fase de engenharia dos requisitos esteja finalizada para então iniciar a definição da arquitetura. Porém, apenas uma fração dos requisitos específicos do sistema têm influência na arquitetura. A identificação dos requisitos que são significantes para a arquitetura pode ser respondida através de um framework conceitual desenvolvido especialmente para um domínio específico, uma vez que esta resposta é muito dependente do domínio.

Avançar para a fase de projeto ou mesmo iniciar a implementação do sistema não quer dizer que a definição da arquitetura esteja finalizada. Isto significa que o detalhamento obtido até então já é suficiente para prosseguir com o projeto de uma parte do sistema.

Alguns exemplos de frameworks em Java incluem:

Posted in Curso de Programação Java | Etiquetado: | 2 Comments »

Objetos Mutáveis e Imutáveis

Posted by wpjr2 em abril 14, 2008

Na programação orientada a objetos, um objeto imutável é definido como
um objeto em que seu estado não pode ser modificado após sua criação.
Isto é um contraste em comparação à um objeto mutável, no qual pode
ser modificado após sua criação. Um objeto pode ser totalmente
imutável (caso mais comum) ou alguns atributos do objeto podem ser
declarados imutáveis, através da palavra reservada “final” nestes
campos.

O padrão utilizado neste recurso para objetos Java é denominado de
“copy on write” (COW) ou copiar durante a escrita. Nesta técnica,
quando deseja-se copiar um objeto, cria-se uma nova variável que
possuirá a mesma referência ao objeto anterior, apontando assim para o
mesmo objeto em memória. Quando o valor for modificado, uma nova
referência será criada apontando para o objeto modificado. Na
essência, o desenvolvedor ou usuário final possui a sensação de que
está utilizando objetos mutáveis, apesar destes serem imutáveis na
realidade.

O principal objetivo de se utilizar a imutabilidade é de melhorar a
eficiência em tempo de execução no instanciamento de objetos, economia
de espaço físico de memória e velocidade no instanciamento. Outras
linguagens além do Java (Python, .NET) por exemplo, defnem o String
como objetos imutáveis. Para versões mutáveis de String em Java,
utiliza-se o StringBuffer e StringBuilder (recentemente criado no
JavaSE 5.0), em casos onde alterações em uma String serão bastante
comuns.

Além da classe String, todas as classes wrapper primitivas (Integer, Double,
Float, Short, Character, Boolean, Byte e Long) também são imutáveis.

Posted in Curso de Programação Java | Etiquetado: , | Leave a Comment »

Padrão de Desenho Singleton

Posted by wpjr2 em abril 14, 2008

Gostaria de estar explicando melhor o padrão de projetos Singleton.
Este tópico está relacionado a dois exercícios do capítulo 3 da apostila.

Imaginem a seguinte situação:

Para um sistema bancário, nós teríamos contas bancárias, correntistas,
bancos e teriamos somente um banco central para auditar todas as
movimentações bancárias sendo feitas pelos bancos. Neste caso, seria
possivel somente UM objeto do tipo BancoCentral no sistema, que
estaria se relacionando com os demais bancos no mercado financeiro.

Um exemplo de classe utilizando Singleton pode ser implementado da
seguinte forma:

==============================

======================================

/**
* classe que representa o banco central
* @author wpjr
*
*/
public class BancoCentral {

/**
* a instância única do banco central no sistema
*/
private static BancoCentral instancia;

/**
* metodo que retorna o objeto do tipo BancoCentral
* do sistema
* @return banco central
*/
public static BancoCentral getInstance()
{
if (instancia == null)
{
instancia = new BancoCentral();
}
return instancia;
}

}

======================================================

As características que fazem esta classe possuir um objeto singleton:
a) atributo static: atributo pertence a classe e não ao objeto, sendo
compartilhado por todos os objetos que precisam acessá-lo.
b) construtor privado: desta forma não se pode construir objetos novos
do tipo BancoCentral. A única maneira de se construir um objeto do
tipo BancoCentral é através do método público e estático
getInstance(), que sempre retornará a mesma instância da classe.
c) método público e estático para obter a instância da classe:
conforme dito acima, este método é a única maneira de se obter uma
instãncia do tipo BancoCentral.

Suponha agora o seguinte código abaixo que tenta criar objetos do tipo
BancoCentral:

=======================================================

public static void main(String[] args) {

BancoCentral bc1 = BancoCentral.getInstance();
BancoCentral bc2 = BancoCentral.getInstance();
}

=======================================================

No exemplo acima, tenta-se obter dois objetos do tipo BancoCentral.
Mas devido ao fato desta classe ser Singleton, as variáveis bc1 e bc2
terão acesso ao mesmo objeto em memória. A única diferença na execução
acíma é que na primeira chamada, o objeto do tipo BancoCentral será
instanciado (instancia == null), e na segunda chamada o objeto
singleton já existe em memória. Temos assim o padrão Singleton
implementado no sistema.

Posted in Curso de Programação Java | Etiquetado: , | Leave a Comment »