Estudando static

...Entendendo static...                                          

É um modificador que pode ser utilizado para métodos e váriaveis. Quando algum recurso é marcado com esse modificador pertence a uma classe e nao suas instâncias.Entao, podemos acessar métodos ou variáveis estáticas, sem mesmo criar uma cópia da classe. Usando o modificador static, garante que haverá sempre uma única referência, para métodos ou variáveis.Declarando algo como Static, todas as instancias da classe irá compartilhar a mesma cópia da variável ou método. E outra coisa, é que podemos acessar diretamente, sem a necessidade de instânciar uma classe, como nao acontece em não static.

Dentro de métodos estáticos, podemos acessar somente outros métodos e variáveis estáticos. 

Um exemplo para minha compreensão:

class Exemplo   
{   
  
    // Variavel static   
    public static int contador = 0;   
  
    // Variavel nao-static   
    public int outroContador = 0;   
  
    public  Exemplo() {}   
  
    // Precisa ser static porque "contador" é static   
    public static void incrementaContador()   
    {   
        contador++;   
  
        System.out.println("contador agora é "+ contador);   
    }   
  
    public void incrementaOutroContador()   
    {   
        outroContador++;   
  
        System.out.println("outroContador agora é "+ outroContador);   
    }   
}   
  
public class StaticTeste   
{   
    public static void main(String args[])   
    {   
        Exemplo ex1 = new Exemplo();                        
        ex1.incrementaContador();   
        ex1.incrementaOutroContador();   
  
        Exemplo ex2 = new Exemplo();   
        ex2.incrementaContador();   
        ex2.incrementaOutroContador();   
          
        Exemplo ex3 = newExemplo();   
        ex3.incrementaContador();   
        ex3.incrementaOutroContador();   
  
        Exemplo ex4 = newExemplo();   
        ex4.incrementaContador();   
        ex4.incrementaOutroContador();   
    }   
}  

Saída:
contador agora é 1  
outroContador agora é 1
contador agora é 2  
outroContador agora é 1
contador agora é 3  
outroContador agora é 1
contador agora é 4  
outroContador agora é 1 
**reparem uma coisa, que a variável "contador" teve seu valor incrementado a cada novo objeto criado, enquanto a variável "outroContador", nao mudou o seu valor, ficou sempre em 1, pois seu valor foi zerado em seu construtor da classe.**


Um outro exemplo mostra que usando o modificador static, podemos acessar diretamente um método ou uma váriável , sem a necessidade instânciar a classe, ou seja, (acesso direto).

   
class Exemplo2   
{   
    // Escreve alguma frase na tela   
    public static void escreve(String msg)   
    {   
        System.out.println(msg);   
    }   
       
    // Retorna a multiplicação de dois números int   
    public static int multiplica(int n1, int n2)   
    {   
        return (n1 * n2);   
    }   
       
    // Construtor, apenas para mostrar que   
    // ele nem chega ser chamado   
    public Exemplo2()   
    {   
        System.out.println("Construtor do Exemplo2");   
    }   
}   
  
public class StaticTeste2   
{   
    public static void main(String args[])   
    {   
        //acessando diretamente
        Exemplo2.escreve("Multiplicando 3 vezes 3:");   
        int resultado = Exemplo2.multiplica(33);   
        Exemplo2.escreve("Resultado: "+ resultado);   
    }   
}

Agora se não fosse static:

public class StaticTeste2   
{   
    public static void main(String args[])   
    {   
        // necessário instanciar a classe para acessar
        Exemplo2 ex2 = new Exemplo2();   
        ex2.escreve("Multiplicando 3 vezes 3:");   
        int resultado = ex2.multiplica(33);   
        ex2.escreve("Resultado: "+ resultado);   
    }   
}  
...
Editar
Read more...

Certificação SCJP

Certificaçao Sun Para Programador Java

... Estudando para Certificação Java SCJP...

Dicas importantes de como se preparar para uma boa certificação,  neste link abaixo

http://camilolopes.wordpress.com/2008/04/03/tacticas-como-estudar-para-certificacao-scjp/ 

http://imasters.com.br/artigo/11625/certificacoes/certificacao_scjp/ 


livro kathy Sierra...

http://www.livrariacultura.com.br/scripts/cultura/resenha/resenha.asp?sid=619497217131127807401246&nitem=1823401

 


Dicas:
Em todos os capítulos do livro da Kathy eu faço uma coleção de perguntas e respostas, cobrindo todo capítulo. Em seguida faço uma gravação (+/- 25 min cada) e converto para MP3 e copio para o Mp3 Player.
Ai eu aproveito todo tempo que estou ocioso (ex no ônibus indo pro trabalho, na van indo pra faculdade) para ouvir as minhas gravações. Desta forma eu otimizo meu tempo,
 e estudo muito mais aproveitando um tempo que era perdido.
Além disso, todo dia eu acordo 1 hora mais cedo para ler os capítulos que já estudei ou fazer exercícios e praticar no Eclipse.
Ainda não sei se vou conseguir atingir meu objetivo, que é aprender Java e tirar minha certificação, mas esse tipo de estudo tem me ajudado a fixar os conhecimentos, sem ter que ficar decorando nada.
Read more...

Java


Read more...

Tecnologia Java

           Java é independente de plataforma, ambiente de programação multithreaded. É a base para a Web e os serviços de rede, aplicativos, desktops e independente de plataforma, robótica e outros dispositivos embarcados.

Plataforma JAVA EE

          Versão do Java para desenvolvimento de aplicações Web e enterprise que rodam em servidor padronizados.

Ambiente de desenvolvimento

             Esta IDE possui ferramentas para desenvolvimento Java para criar aplicações Java EE e aplicações Web, incluindo Java IDE, ferramentas para Java EE, JSF e outras. O Eclipse tem sua estrutura baseada em plug-ins.


  Recursos e softwares para desenvolvimento:
  • Eclipse Galileo IDE
  • Java Development Kit (JDK) Versão 6 ou versão 5
  • Componentes do Java Server Faces e RichFaces
  • Plataforma Java EE 1.2 com Java EE 5* ou 1.1 com J2EE 1.4
  • Servidor da aplicação Tomcat 6.0
  • Hibernate 3.2.5 ga
  • Banco de dados PostgreSQL 8.1-404 ou Mysql

Integrando o Apache Tomcat (Servidor de Aplicação) ao Eclipse.

             Acesse o menu “Window”, “Preferences”. Na tela que se abre, clique em “Server” e depois em “Runtime Environments”.




Clique no botao "Add" e clique em next.Na outra janela a ser exibida clica na versao "tomcat v6.0 "





 E em seguida clique no botao" Browse "e localize o diretorio do Apache tomcat e clique" Finish".




Para verificar a integração do tomcat com o Eclipse clique na aba "Server" como mostra a figura abaixo:





Um pouco de JSF (Java Server Faces) - Parte I

O Que é Java Server Faces?

          O Java Server Faces é um framework MVC que provê componentes UI, mecanismos de ações, validadores e toda a estrutura necessária para que seja criada uma aplicação Web complexa.

Por que usar JavaServer Faces?

        Possui uma poderosa arquitetura para o desenvolvimento de aplicações de grande porte com qualidade, e fornece recursos e componentes web 2 tornando assim possível a criação de mais produtos interativos.


Caracteristicas JSF:
  • Incorpora caracteristicas de um framework MVC (separa entre a visualização  e regras de negócio);
  • Amplo  Suporte a IDEs (utilizarei o Eclipse);
  • Diversas bibliotecas de componentes  de UI de terceiros.
  • Componentes  podem ser renderizados em diversas formas para vários tipos de clientes, como por exemplo para um browser da web, celular, etc.

Criando uma aplicação em três camadas (MVC)

           O framework JavaServer Faces utiliza o padrão MVC o qual separa o sistema em três camadas (modelo, visualização e controle), onde o modelo representa os objetos de negócios, fornecer ao controlador o acesso aos dados e de manter o estado da aplicação.A visualização apresenta a interface do usuário, o qual define a forma de como os dados são apresentados e direciona as ações do usuário para o controlador.O controlador é responsável de ligar a camada de visualização a camada de modelo.
        Em JavaServer Faces, o controle é realizado através de um Servelet chamado Faces Servlet por arquivos XML de configuração e por manipuladores de ações.O Faces Servlet que recebe as requisições do cliente, e redireciona para o modelo e envia uma resposta. Os arquivos de Configurações contem informações de mapeamentos e regras de navegação.
        
OBS: Mas a frente deste tutorial serão mostrados a estrutura e os códigos das classes de exemplo que seguem abaixo, em todas as classes deve-se incluir os pacotes corretos e adicionar os imports necessários. Observe a divisão do Projeto criado abaixo:

Estrutura do Projeto com o padrão MVC




Continuação...



As Camadas do Projeto

GUI  (Visão)
  •  Login
  • Cadastro
  • Recado

Controller (Controle)
  • UsuarioMB
  • RecadoMB
Modelo (persistência)

  • UsuarioDAO
  • RecadoDAO

Dominio (modelo)

  • Usuario
  • Recado

Bibliotecas JavaServer Faces

          É necessário baixar e adicionar as bibliotecas do JSF que não vem no Tomcat, para garantir o funcionamento de sua aplicação, assegure-se de que todas as bibliotecas indispensáveis estejam localizadas no diretório lib/ da escrutura do arquivo.WAR, que são  os jars JSF-api.jar, JSF-impl.jar, Jstl.jar . 


        Não esquecendo de adicionar as bibliotecas do Hibernate no diretorio WEB-INF/lib da aplicação, o hibernate3.jar, hibernate-annotations.jar e hibernate-commons-annotations.jar

Bibliotecas indispensáveis no projeto JSF usando Hibernate:

persistence-api.jar
hibernate.jar
hibernate-entitymanager.jar
hibernate-validator.jar
hibernate-annotations.jar
dom4j.jar
jta.jar
hibernate-commons-annotations.jar
cglib-2.1.3.jar
antlr.jar
jsf-api.jar
jsf-impl.jar
commons-logging-1.1.1.jar
commons-collections-3.2.1.jar
commons-beanutils-1.5.jar
log4j-1.2.11.jar
postgresql-8.1-404.jdbc3.jar


Para a conexão com Java

        A conexão do PostgreSQL com Java é utilizada por diversos clientes de gerenciamento ou modelagem do PostgreSQL. Neste caso utiliza-se o driver JDBC do PostgreSQL. Baixar de acordo com sua versão do PostgreSQL aqui usei a versão do PostgreSql 8.1-404, o driver JDBC para o PostgreSQL daqui: http://jdbc.postgresql.org/download.html#jdbcselection

Aqui para o PostgreSQL versão  8.1-404 baixei o arquivo 8.1-405 JDBC 3.
Obs: Adicionar o Jar do conector na pasta lib.

Depois de ter adicionado todos os jars, vejamos os passos a seguir:

Editando o arquivo de configuração do Hibernate

         Quando Criamos um Projeto usando o Hibernate, é criado automaticamente o arquivo de configuração hibernate.cfg.xml na raiz do classpath do contexto da aplicação (na janela arquivos, WEB-INF/classes). Este aqrquivo contém informações sobre a conexão com o bancos de dados, os mapeamentos de recurso e outras propriedades da conexão.
        È preciso editar as propriedades padrão especificadas em hibernate.cfg.xml para ativar o log de depuração para instruções SQL e para ativar o gerenciamento de contexto da sessão do Hibernate

 
Arquivo Hibernate.cfg.xml

- Abra hibernate.cfg.xml na aba Design e adicione as configurações a seguir :

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE hibernate-configuration (View Source for full doctype...)>
 <hibernate-configuration>
 <session-factory>
<property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
<property name="hibernate.connection.url">jdbc:postgresql://127.0.0.1:5432/academica?charSet=LATIN1</property>
<property name="hibernate.connection.username">postgres</property>
<property name="hibernate.connection.password">postgres</property>
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="hibernate.format_sql">true</property>
<property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property>
<property name="show_sql">false</property>
<property name="hibernate.c3p0.min_size">5</property>
<property name="hibernate.c3p0.max_size">20</property>
<property name="hibernate.c3p0.timeout">180</property>
<property name="hibernate.c3p0.item_test_period">100</property>

// serão mapeadas as entidades//
<mapping class="academica.dominio.Usuario" />
</session-factory>
</hibernate-configuration>

Obs: Este arquivo hibernate.cfg.xml  foi configurado para conexão com PostgreSQL, lembrando que pode ser o MYSQL ou qualquer outro banco de dados, basta configurá-los corretamente.


Criando Projeto em JavaServer Faces - Parte II

           Para começar vai no menu "File" e em New escolhe “Dynamic Web Project” no menu da ferramenta.
Digite o nome do projeto  e na seção “Configuration” selecione “JavaServer Faces v1.2 Project”. Pressione o botão “Next”.



Proseguindo clicando em "next", na janela  de  configurações da JSF. Em “JSF Libraries”, clique no icone ao lado da caixa de texto em "Manager libraries"







Clicando no botão "New" informe um nome para a biblioteca, como por exemplo,  clique sobre o botão “Add...” e selecione os arquivos “jsf-api.jar” e “jsf-impl.jar”, que se encontram dentro do diretório “lib” distribuído no arquivo de instalação da Mojarra. Clique novamente em “Add...” e inclua o arquivo “jstl.jar”. Clique no botão “Ok”.


Seleciona o nome da biblioteca contendo os Jars e clique em "Finish"




Projeto depois de Criado na aba “Project Explorer”.:





 
Obs: Caso já adicionou os jars necessários  do JSF na pasta Lib  do seu projeto, nao é necessário seguir esses passos.
Read more...