quinta-feira, 21 de agosto de 2014

O que são Threads?

Threads são linhas de execução de um processo. É a maneira de um processo se dividir em duas ou mais partes para que possam ser executadas "ao mesmo tempo". Nem sempre é ao mesmo tempo porque na maioria das vezes temos somente uma CPU disponível. Então alguém fica a cargo de dividir as fatias de tempo entre os concorrentes. Embora quase sempre, mesmo com apenas uma CPU, temos a impressão de que tudo está sendo feito ao mesmo tempo. Mas não está! A CPU está processando um pouco de cada coisa pra te dar essa impressão. Este assunto é bem vasto, mas vamos nos ater aos threads.

Um processo no contexto que estou falando seria o programa. Poderíamos desejar que o programa faça várias coisas ao mesmo tempo. Por exemplo, um browser: Quando o browser carrega uma página com muitas imagens, ele se conecta a vários links para baixar as imagens ao mesmo tempo. Ele não abre uma por uma, existe um thread para cada tarefa de forma que todas são executadas ao mesmo tempo. Lembre-se que "ao mesmo tempo" nem sempre é verdade, mas vamos acreditar que seja.

Em Java, podemos implementar threads instanciando a classe java.lang.Thread. Um objeto do tipo Thread é um objeto como qualquer outro, possui métodos e variáveis. A grande diferença é que ele possui sua própria pilha de chamada. O método main é responsável por iniciar todo o processamento, portanto ele é considerado o thread principal.

Existem duas formas de se trabalhar com threads, implementando Runnable ou estendendo Thread. Você deve conhecer estas duas formas, mas geralmente a melhor prática é implementar, pois assim fica livre para estender outra classe.
Quando implementamos Runnable devemos sobrescrever o método run. Dentro do método run colocamos todo o trabalho que desejamos executar concorrentemente. Se por acaso tivéssemos escolhido estender Thread, o método run deveria ser sobrescrito da mesma forma.

quarta-feira, 20 de agosto de 2014

O que é um construtor?

Um construtor contem o código que será executado quando você instanciar um objeto. Em outras palavras, o código que será executado quando você escrever new em um tipo de classe.
Ex: Adicao adicao = new Adicao ();
Um construtor deve ter o mesmo nome que a classe, e o mesmo não tem nenhum tipo de retorno (nunca).Ex:


public Adicao (int size) { }
 

Toda classe que for criada terá um construtor, até mesmo quando não o escrevemos, quando isso acontece o compilador cria um construtor. (o construtor criado pelo compilador não tem nenhum tipo de argumento).Ex: 

public Adicao () { }


Porém o compilador só irá criar o construtor se você não informar absolutamente nada sobre eles. Se você criar um construtor o compilador entende que você é o responsável por eles e não irá se interferir.
Quando há mais de um construtor em uma classe eles são chamados de construtores sobrecarregados, porém cada construtor terá que ter uma lista de argumentos diferente. Uma lista de argumentos inclui a ordem e o tipo dos argumentos.


O que diferencia um construtor de um método, é que todo método deve ter um tipo de retorno, e os construtores não, eles nunca retornam nada.

Pra não esquecer:
Um construtor é o código que é executado quando escrevemos new em um tipo de classe, ou seja, instanciar a classe que foi definida;


Melissa Lobo.

Exception -Try/Catch

Pra não esquecer:

Um método pode lançar uma exceção quando algo falhar no tempo de execução. Uma exceção é sempre um objeto do tipo Exception.
Um método lança uma exceção com a palavra chave trhow, seguida de um novo objeto de exceção.
O bloco try/catch informa ao compilador que você sabe  que algo excepcional pode acontecer.
try(Insere o método perigoso) executa algo arriscado, se por um acaso não funcionar, o catch tenta resolver (ele só será executado se uma exceção for lancada.)

segunda-feira, 11 de agosto de 2014

O que é MVC?

MVC (Model-View-Controller) é um padrão de projeto arquitetural criado com o objetivo de separar a lógica de negócios da camada de apresentação.

Porque utilizar o MVC?
Com o aumento da complexidade das aplicações desenvolvidas, sempre visando a programação orientada a objeto, torna-se relevante a separação entre os dados e a apresentação das aplicações. Desta forma, alterações feitas no layout não afetam a manipulação de dados, e estes poderão ser reorganizados sem alterar o layout.
Esse padrão resolve este problema através da separação das tarefas de acesso aos dados e lógica de negócio, lógica de apresentação e de interação com o utilizador, introduzindo um componente entre os dois: o controlador.
Como funciona?
 O MVC guia o desenvolvedor na tentativa de organizar a aplicação de forma que tenhamos três papéis bem definidos, onde o MODEL (modelo) é responsável por todo o processamento da aplicação (regras de negócio e acesso ao banco de dados), o VIEW (visão) serve apenas para apresentação de resultados como também entrada de informações e o CONTROLLER (controlador) faz a comunicação entre o MODEL e o VIEW.

MODEL, VIEW e CONTROLLER

Além de dividir a aplicação em três tipos de componentes, o desenho MVC define as interações entre eles.
  • Um controller (controlador) pode enviar comandos para sua visão associada para alterar a apresentação da visão do modelo (por exemplo, percorrendo um documento). Ele também pode enviar comandos para o modelo para atualizar o estado do modelo (por exemplo, editando um documento).
  • Um model (modelo) notifica suas visões e controladores associados quando há uma mudança em seu estado. Esta notificação permite que as visões produzam saídas atualizadas e que os controladores alterem o conjunto de comandos disponíveis. Uma implementação passiva do MVC monta estas notificações, devido a aplicação não necessitar delas ou a plataforma de software não suportá-las.
  • view (visão) solicita do modelo a informação que ela necessita para gerar uma representação de saída.

E assim esses três formam o padrão arquitetural chamado de MVC, ou Model View Controller. Lembrando que ele pode sofrer variações de diversas maneiras. E o que o MVC garante é a separação de tarefas, facilitando assim a reescrita de alguma parte, e a manutenção do código.

segunda-feira, 4 de agosto de 2014

Banco de Dados - HSQLDB

-Ligando e configurando Banco de dados HSQLDB com o Eclipse

O HSQLDB é um sistema de bancos de dados relacional de código livre, totalmente escrito em Java (portanto totalmente portátil) que é leve e rápido, podendo ser usado para aplicações simples onde não se espera uma carga de dados e acesso muito alta. Download 

Configurando o Eclipse

Para que o banco de dados esteja disponível em sua aplicação no Eclipse, importe o arquivo hsqldb.jar para o diretório Nome_Do_Projeto/WebContent/WEB-INF/lib/ . Para importar o arquivo .jar, selecione o diretório Nome_Do_Projeto/WebContent/WEB-INF/lib/ no Package Explorer do Eclipse, clique com o botão direito do mouse, selecione Import , selecione General/File System como método para importação, clique next e escolha o diretório onde o arquivo hsqldb.jar se encontra. Selecione o arquivo e clique em Finish .
É importante observar que no Package Explorer do Eclipse o arquivo será mostrado como parte do diretório Web App Libraries e não do diretório Nome_Do_Projeto/WebContent/WEB-INF/lib/ .


O HSBSDB pode funcionar em diversos modos:

  • Servidor (protocolo de comunicação proprietário);
  • Servidor Web (HTTP);
  • Servlet (HTTP);
  • Stand Alone (acesso direto);
  • Somente memória (acesso direto).

Ligando em modo Servidor:

Para ligar o Banco de Dados HSQLDB, basta você abrir o terminal, entrar no diretório onde foi baixado o Banco de Dados, em seguida entrar no diretório lib do diretório do banco de dados, e rodar o comando:

java -cp hsqldb.jar org.hsqldb.server.Server --database.0 file:Nome_Do_Projeto --dbname.0 Nome_Do_Projeto 

O HSBSDB possui uma ferramenta de gerenciamento, para iniciá-la digite em outro terminal dentro do mesmo diretório (lib do banco de dados) o comando:

java -cp hsqldb.jar  org.hsqldb.util.DatabaseManager

Configurando o Banco de Dados

Setting Name: o nome pelo qual o banco de dados será posteriormente referenciado em “Recent settings”
Type: o tipo do banco de dados, no caso como estamos ligando de modo servidor configuramos como HSQL Database Engine Server 
Driver: driver para conexão com o banco de dados (Deixe com está: org.hsqldb.jdbcDriver)
URL: o endereço e o nome do banco de dados (jdbc:hsqldb:hsql://localhost/)
User: o usuário (SA)
Password: a senha do usuário ( )

Melissa Lobo.