quarta-feira, 4 de fevereiro de 2009

O que é Tecnologia?

Sem muito tempo para blogar, enfim encontrei uma brechinha...
Bom hoje não terá código por falta de tempo para elaborar alguma coisa legal porém me deparei com um tema muito legal.
Não sei se no caso de vocês, mas alguém já se perguntou o que é TECNOLOGIA?!?
É e hoje surgiu essa pergunta e o que me veio na minha cabeça....Ahh celular, notebook, ipod, etc...
Engraçado é que acho que isso deve vir a cabeça de todos não é mesmo?
Porém uma pessoa me respondeu que Tecnologia são as técnicas utilizadas para a resolução de um problema!
Ou seja todos nós possuimos técnologias e todos vendemos nossas técnologias, mas como assim vendemos nossas técnologias?
É isso mesmo, quando uma empresa te contrata ela quer que você utilize sua TECNOLOGIA(conhecimento) para realizar uma tarefa, seja ela cortar um papel ou codificar um sistemas.

Vou deixar essa no ar para que possamos pensar um pouco sobre a tal TECNOLOGIA que no entanto não se resume apenas aos eletrônicos que possuimos e sim as técnicas utilizadas para solucionar um problema existente, ou vocês acham que o celular foi desenvolvido apenas porque seria legal ficar enviando SMS para os amigos???

Vou deixar um link interessante que eu visitei hoje 10 dicas para aprender a programar por conta própria

sexta-feira, 30 de janeiro de 2009

2 MINUTES ABOUT GOOGLE!

Galera só mudando um pouquinho de assunto, achei um video bem legal contando a história do Google em 2 minutos e resolvi compartilhar com vocês.
Eu acho incrivel o que essa empresa virou e a velocidade que eles cresceram é incrível, por isso acho que é uma das coisas que se deve sempre estar observando.




Curtiram o vídeo?


quinta-feira, 29 de janeiro de 2009

StringBuffer

A classe StringBuffer ela foi criada para podermos ganhar mais velocidade na concatenação de strings, é uma classe que bem é simples e que não tem muitos segredos.
Muitos se perguntam e qual a diferença entre utilizar String e StringBuffer, a diferença crucial entre as duas classes é que quando utilizamos StringBuffer para realizar uma concatenação de strings nós conseguimos um ganho de performance em relação a utilização de String.

Através de alguns testes que fiz, a utilização de StringBuffer em concatenação chegou a ser 300% mais veloz do que a concatenação com String, claro que vale apena avaliar sempre a sua necessidade, abaixo segue o código que utilizei nos teste.


public class Desempenho {

public static void main(String args[]) {
Desempenho desempenho = new Desempenho();
desempenho.testaString();
desempenho.testaStringBuffer();
}

public void testaString() {
System.out.print("\nString:\n");
long ini = System.currentTimeMillis();
System.out.print("Inicio=" + ini + "\n");
String teste = "";
for (int i = 0; i < 10000; i++) {
teste += "Teste" + i + "\n";
}
long fim = System.currentTimeMillis();
System.out.print("Fim=" + fim + "\n" +
"Desempenho:" + (fim - ini));

}

public void testaStringBuffer() {
System.out.print("\nStringBuffer:\n");
long ini = System.currentTimeMillis();
System.out.print("Inicio=" + ini + "\n");
StringBuffer teste = new StringBuffer();
for (int i = 0; i < 1537344; i++) {
teste.append("Teste" + i + "\n");
}
long fim = System.currentTimeMillis();
System.out.print("Fim=" + fim + "\n " +
"Desempenho:" + (fim - ini));
}
}

Essa classe mede a diferença de desempenho entre String x StringBuffer, vale apena conferir, bons estudos!!!
Galera deixem recados com opniões, dicas, implementações e se quiserem que eu comente algum é só falar.

terça-feira, 27 de janeiro de 2009

Classes Abstratas

Dando continuidade ao último post, vamos continuar falando de Orientação a Objetos.
Utilizamos o conceito de classes abstratas quando queremos determinar que uma classe do nosso domínio possui subclasses que terão o mesmo comportamento (semântica) que ela, para que uma classe seja abstrata ao menos 1 de seus métodos deve ser abstrato.
Exemplificando:

abstract class ContaAbstrata {

private String numero;

private double saldo;

void credito (double valor) {

saldo = saldo + valor;

}

abstract void debito (double valor);

String numero() {return numero;}

double saldo() {return saldo;}

}


Como nossa classe ContaAbstrata possui um método abstrato ela passará a ser abstrata também, com isso forçamos as suas subclasses a implementarem o método debito, então todas as subclasses deverão ter o método debito.
Exemplo.:

class ContaPoupanca extends ContaAbstrata{

private double saldo;

void debito(double valor) {
this.setSaldo(this.getSaldo() - valor);
}

public void setSaldo(double saldo){
this.saldo = saldo;
}

public double getSaldo(){
return this.saldo;
}
}

A abstração se trata de tudo aquilo que não é real como um veículo pois ele pode ser diversar coisas como uma moto, carro, avião, etc... E por esse motivo não criamos instâncias new de objetos de uma classe abstrata, só criamos instâncias de objetos reais como moto, carro, bicicleta e por ai vai.

Porquê Java?

Porquê desenvolver em Java???
Isso pode levar a uma séria discussão não é?
Na minha humilde opnião Java já não é mais uma novidade há muito tempo e sim uma imensidão de conhecimento, pois a cada ano que passa surgem bons e novos recursos para Java sendo assim não a vejo como uma linguagem passageira, que surge como sendo fantastica e logo depois desaparece ao contrário ela é uma linguagem com uma recursividade muito grande.
Vejo hoje o mercado de Java muito aquecido sendo ele em sua maioria com sistemas Web e também é nas tecnologias web que encontramos tiversos resursos para aproveitar.

E para aproveitar um pouquinho os recursos dessa Linguagem vou abortar um pouco sobre um dos fundamentos de Java, a Orientação a Objetos, uma das principais vantagens da POO é a reutilização de código, onde você não necessita reescrever um código já feito, no máximo você fará modificações através de Polimorfismo(explicarei mais adiante).

1- Polimorfismo: é um recurso utilizado para métodos com o mesmo nome onde esses métodos podem realizar algoritmos diferentes devido à sua assinatura. Por exemplo:

public void pesquisarLivro(String titulo) { ... }

public void pesquisarLivro(String titulo, String editora){ ... }

Os dois métodos acima tem o mesmo nome porém possuem assinaturas diferentes, quando fazemos a chamada desses métodos ela utilizando o mesmo nome para os dois métodos e dependento dos parâmetros passados o Java identifica qual o método que será chamado.

2- Encapsulamento: é um recurso que temos para poder poder restringir que outras classes tenham visibilidade da implementação de seus métodos, sendo assim somente a própria classe tem visibilidade sobre sua implementação, ou seja, só mostramos para outras classes o que fazemos e escondemos a implementação de como fazer.
Um bom exemplo é quando encapsulamos atributos de uma classe ou seja atribuimos sua visibilidade para private onde somente a própria classe poderá ver a implementação desses atributos, e se alguma classe quiser alterar esses valor ela poderá fazer porém através de métodos que manipulam esses atributos sem mostrar como fazem isso, Ex.:

private String titulo;

public String getTitulo(){
return this.titulo;
}

public void setTitulo(String titulo){
this.titulo = titulo;
}

3- Herança: Uma das mais interessantes é um recurso utilizado para que uma classe consiga herdar as funcionalidades de outra classe, sendo assim evitamos a reescrita de código como no exemplo a seguir.

Temos 2 classes Cliente e Pessoa, todo Cliente tem as mesmas características de Pessoa porém um Cliente possui características (funcionalidades) a mais do que uma Pessoa, então utilizando o conceito de herança você não precisa reescrever toda a classe Pessoa naa classe Cliente.
Existe uma palavra reservada em Java que é utilizada para indicar Herança que é extends, vamos ver como utilizar a herança em uma classe.

public class Cliente extends Pessoa{
//novo método da classe Cliente
public void realizarPagamento(String cdCliente, Double valor){ ... }

//métodos herdados não precisam ser reescritos apenas utilizados
}

É isso ai galera vamos estudar um pouquinho mais sobre POO nos próximos posts, se surgirem dúvidas, críticas ou sugestões deixem seus comentários nos post.
Até a próxima.

sexta-feira, 23 de janeiro de 2009

Ano de Crise!!!

Fala galera!!!

Hoje pensei em repassar para vocês uma informação muito valiosa que li em um site, todos nós ouvimos diariamente sobre a crise financeira que está abalando o mundo e realmente está, porém uma coisa importante para nós que trabalhamos com TI no Brasil é que nossas atividades não sofreram com essa crise!!!
É isso mesmo somos alguns privilegiados pois as empresas não pararam de investir em TI e ao contrário algumas até investem mais para poder tentar driblar essa fase difícil...

Mas nem tudo são flores correto! Não vamos sair por ai deixando para trás os nossos empregos pensando que é tudo maravilha pois as coisas podem mudar, ou seja, no próximo mês essa noticia pode ser diferente.

Falando em JAVA... A partir da versão 1.5 foi introduzido um novo conceito em Java chamado Enum, é maravilha!!! Mas o que são enums???....
Enums são tipos de dados criados com valores pré definidos pelo desenvolvedor, ele pode ser muito poderoso, como tudo tem vantagens e desvantagens.
Vamos a um exemplo de Enum.

public class Pessoa {
//declaração de um Enum...(pode ou não receber ;)
public enum EstadoCivil {SOLTEIRO, CASADO, NAMORANDO}

//propriedade do tipo EstadoCivel que é um Enum
private EstadoCivil estadoCivil;

public static void main(String args[]){
Pessoa nando = new Pessoa();
//atribuindo um valor do Enum para a propriedade estadoCivil
nando.estadoCivil = EstadoCivil.NAMORANDO;
}
}


Pronto com o Enum eu garanto que toda propriedade estadoCivil do meu objeto somente recebera os valores definidos no Enum, fácil não... Uma dica um Enum não deve ser declarado dentro de métodos, blza....
Ai fica a dica para quem quiser dar uma lida sobre Enums.

Abraço a todos.

Codando!!!

Olá javaboys e javagirls!
Estou iniciando este blog com o intuito de dividir conhecimentos sobre java aqui mostrarei alguns exemplos de código e informações de técnologias para todos os Geeks (rsrsrs)....
Para aqueles que pretendem tirar uma certificação em java assim como eu, estarei deixando algumas dicas....
Optei por essa linguagem a 2 anos e agora compartilharei um pouco do que aprendi com ela com todos vocês...

public class HelloHouseOfJava{

public static void main(String args[]){
System.out.println("Sejam bem vindos ao blog!");
}

}


Espero que gostem do conteúdo deste blog....