String string = "Como encontrar uma palavra em uma String?"; String palavraChave = "String?"; List<String> palavras = Arrays.asList(string.split(" ")); if(palavras.contains(palavraChave)){ System.out.println("Palavra chave encontrada!"); }
cÓdigoÚnico
Artigos para programadores iniciantes e experientes.
quarta-feira, 23 de fevereiro de 2011
Como encontrar uma palavra em uma String
Para encontrar uma palavra em uma String existem várias formas. Abaixo está uma forma simples de encontrar. O código abaixo encontra palavras inteiras, a palavra "String" não será encontrada, já a palavra "String?" será. Sendo assim, não é possível utilizar o método String.contains().
Comparando String, StringBuilder e StringBuffer
As três classes String, StringBuilder e StringBuffer são usadas para armazenar uma sequência de caracteres, mas por tráz existem algumas diferenças. As classes StringBuilder e StringBuffer vieram para solucionar e/ou dar uma alternativa para alguns aspectos da classe String (como imutabilidade).
String
Em Java strings são objetos.
Exitem varias formas de criar um objeto String e atribuir uma string ao objeto como:
Aparentemente objetos do tipo String são como qualquer outro objeto, mas eles são imultaveis! O que significa isso? Apartir do momento em que você atribui um valor ao objeto, este valor nunca mais poderá ser modificado, isso mesmo, nunca mais!! Isto é valido para o valor do objeto e não para a referência da variável, assim a variável de referência poderá referenciar a outro objeto String a qualquer momento.
O resultado esperado seria: x igual a CodigoUnico, mas como Strings são imutaveis o objeto referênciado por x não modificou o seu valor!
Como assim!? o objeto String modificou o seu valor!? NÃO! ele é imutavel! O que aconteceu foi que ao dizer x = x.concat("Unico"); um novo objeto String com o valor “CodigoUnico” foi criado na memória(heap) concatenando o valor "Codigo" com “Unico”. Depois desse novo objeto ser criado ele foi atribuido a variavel de referencia x, então quando pedimos para vizualizar x estamos vizualizando o valor do novo objeto String que foi criado.
O que aconteceu com o outro objeto String com o valor “Codigo”? Ele foi para um local especial da memória chamado “String constant pool”. Sempre que vamos criar uma string o compilador checa no “String constant pool” para ver se já existe um objeto String idêntico. Se existir, a variavel de referência vai referenciar diretamente para este objeto String já existente e não será criado um novo objeto na memória contendo a string. (A String existente passará simplismente a ter mais referencias a ela, isso é normal.)
StringBuilder e StringBuffer
Como vimos acima objetos String são imutaveis. Se você pretende fazer muitas modificações a um objeto String você acabará com vários objetos String abandonados no “String constant pool”. O StringBuilder e StringBuffer veio para solucionar esse problema! Eles podem ser modificados quantas vezes quizer e não será criado um novo objeto, e sim o valor do objeto será realmente modificado.
Neste exemplo o valor do objeto foi realmente modificado sem a necessidade de atribuir o resultado a variavel de referencia x. A unica diferença entre StringBuilder e StringBuffer é que os métodos do StringBuilder não são sincronizados ou seja não são confiáveis se estiverem usando thread. A Sun recomenda usar o StringBuilder sempre que possével ao inves do StringBuffer. Alem disso as duas classes são identicas.
String
Em Java strings são objetos.
Exitem varias formas de criar um objeto String e atribuir uma string ao objeto como:
String s = "abc";
String s = new String("abc");
String s = new String(); s = "abc";
Aparentemente objetos do tipo String são como qualquer outro objeto, mas eles são imultaveis! O que significa isso? Apartir do momento em que você atribui um valor ao objeto, este valor nunca mais poderá ser modificado, isso mesmo, nunca mais!! Isto é valido para o valor do objeto e não para a referência da variável, assim a variável de referência poderá referenciar a outro objeto String a qualquer momento.
- Exemplo 1:
String x = "Codigo"; x.concat("Unico"); System.out.println("x = " + x); //resultado: x = Codigo
O resultado esperado seria: x igual a CodigoUnico, mas como Strings são imutaveis o objeto referênciado por x não modificou o seu valor!
- Exemplo 2:
String x = "Codigo"; x = x.concat("Unico"); System.out.println("x = " + x); //resultado: x = CodigoUnico
Como assim!? o objeto String modificou o seu valor!? NÃO! ele é imutavel! O que aconteceu foi que ao dizer x = x.concat("Unico"); um novo objeto String com o valor “CodigoUnico” foi criado na memória(heap) concatenando o valor "Codigo" com “Unico”. Depois desse novo objeto ser criado ele foi atribuido a variavel de referencia x, então quando pedimos para vizualizar x estamos vizualizando o valor do novo objeto String que foi criado.
O que aconteceu com o outro objeto String com o valor “Codigo”? Ele foi para um local especial da memória chamado “String constant pool”. Sempre que vamos criar uma string o compilador checa no “String constant pool” para ver se já existe um objeto String idêntico. Se existir, a variavel de referência vai referenciar diretamente para este objeto String já existente e não será criado um novo objeto na memória contendo a string. (A String existente passará simplismente a ter mais referencias a ela, isso é normal.)
StringBuilder e StringBuffer
Como vimos acima objetos String são imutaveis. Se você pretende fazer muitas modificações a um objeto String você acabará com vários objetos String abandonados no “String constant pool”. O StringBuilder e StringBuffer veio para solucionar esse problema! Eles podem ser modificados quantas vezes quizer e não será criado um novo objeto, e sim o valor do objeto será realmente modificado.
- Exemplo 3:
StringBuffer x = "Codigo"; x.append("Unico"); System.out.println("x = " + x); //resultado: x = CodigoUnico
Neste exemplo o valor do objeto foi realmente modificado sem a necessidade de atribuir o resultado a variavel de referencia x. A unica diferença entre StringBuilder e StringBuffer é que os métodos do StringBuilder não são sincronizados ou seja não são confiáveis se estiverem usando thread. A Sun recomenda usar o StringBuilder sempre que possével ao inves do StringBuffer. Alem disso as duas classes são identicas.
Marcadores:
append,
concat,
concatenar,
imutavél,
java,
string,
stringbuffer,
stringbuilder
sexta-feira, 18 de fevereiro de 2011
Variáveis de Referência e de Valor
O Java suporta dois tipos de variáveis, elas podem ser: de referência ou de valor.
Variáveis de Valor
As variáveis de valor (primitivas; int, long, etc...), são aquelas que armazenam os dados no exato espaço de memória onde a variável está.
Variáveis de Referência
As variáveis de referência são aquelas que armazenam o endereço de memória onde o dado está armazenado. Ao declarar uma variável do tipo de uma certa classe, na verdade se declara uma variável que referência um objeto daquela classe.
Exemplo
Vamos supor que declaramos as duas variáveis do tipo int e String.
Suponha que a Figura 1 represente a memória do computador, com seus endereços de memória, o nome das variáveis e os tipos de dados que ele pode suportar.
No espaço de memória (0x1001) da variável num (do tipo int) possui o seu valor atual, no qual é 10. No espaço de memória (0x2002) da variável nome (do tipo String) possui somente o endereço de memória que contém o valor da variável, no qual é 0x3003. Agora se olharmos no endereço de memória 0x3003 podemos encontrar o valor "Hello".
Variáveis de Valor
As variáveis de valor (primitivas; int, long, etc...), são aquelas que armazenam os dados no exato espaço de memória onde a variável está.
Variáveis de Referência
As variáveis de referência são aquelas que armazenam o endereço de memória onde o dado está armazenado. Ao declarar uma variável do tipo de uma certa classe, na verdade se declara uma variável que referência um objeto daquela classe.
Exemplo
Vamos supor que declaramos as duas variáveis do tipo int e String.
int num = 10; String nome = "Hello";
Suponha que a Figura 1 represente a memória do computador, com seus endereços de memória, o nome das variáveis e os tipos de dados que ele pode suportar.
Figura 1. Representação da memória. |
No espaço de memória (0x1001) da variável num (do tipo int) possui o seu valor atual, no qual é 10. No espaço de memória (0x2002) da variável nome (do tipo String) possui somente o endereço de memória que contém o valor da variável, no qual é 0x3003. Agora se olharmos no endereço de memória 0x3003 podemos encontrar o valor "Hello".
Marcadores:
java,
referencia,
valor,
variaveis,
variável
quarta-feira, 16 de fevereiro de 2011
Escrever, Compilar e Executar Programas em Java
Crie uma pasta com o nome prog dentro do drive C:
A ideia aqui é mostrar o esqueleto ou estrutura básica de um programa Java, como utilizar o compilador e como executar esse programa.
Codificação
Para escrever o programa abaixo utilize um simples editor de texto. Recomendo a utilização do Notepad++ ou do Bloco de Notas.
1. Digite o código abaixo no editor de texto.
2. Salve com o nome PrimeiroPrograma.java dentro do diretório C:\prog.
Cada arquivo deve conter apenas uma classe pública. O nome do arquivo deve ser o mesmo nome da classe publica, acréscido da extensão .java. É permitido que um arquivo tenha várias outras classes não publicas.
O que significa cada linha do programa?
Esse trecho define que a classe é publica e que o nome da classe é PrimeiroPrograma. Uma classe pública ela é acessível por qualquer outra classe. Em outra oportunidade será explicado com mais detalhes a diferença de pública, privado e outros modificadores de acesso.
Aqui é aonde o programa inicia, por agora isso é o mais importante que você deve entender. O public é para indicar que é um metodo público, o static é porque não precisamos criar uma instância ou objeto da classe antes de usar o método main, e void é para informar que esse método não retorna um valor. O String[] args é usando para passar parâmentros para o programa através da linha de comando.
O System.out.println() é um comando usado para exibir um valor na saída padrão do computador, no qual geralmente é o monitor.
Compilação
Compilar um programa em Java é muito fácil.
1. Abre a linha de comando e digite os comandos abaixo.
2. cd C:\prog, pressione Enter.
3. javac PrimeiroPrograma.java, pressione Enter.
Se tiver compilado corretamente não vai aparecer nenhuma mensagem. Quando um programa é compilado, um arquivo .class é criado. Em nosso exemplo um arquivo PrimeiroPrograma.class deve ter sido criado.
Execução
Para executar basta executar o comando abaixo.
java PrimeiroPrograma
Para executar você não precisa colocar a extensão .java nem a .class.
A ideia aqui é mostrar o esqueleto ou estrutura básica de um programa Java, como utilizar o compilador e como executar esse programa.
Codificação
Para escrever o programa abaixo utilize um simples editor de texto. Recomendo a utilização do Notepad++ ou do Bloco de Notas.
1. Digite o código abaixo no editor de texto.
2. Salve com o nome PrimeiroPrograma.java dentro do diretório C:\prog.
Cada arquivo deve conter apenas uma classe pública. O nome do arquivo deve ser o mesmo nome da classe publica, acréscido da extensão .java. É permitido que um arquivo tenha várias outras classes não publicas.
public class PrimeiroPrograma { public static void main(String[] args) { System.out.println("Meu primeiro programa em Java!"); } }
O que significa cada linha do programa?
public class PrimeiroPrograma {
Esse trecho define que a classe é publica e que o nome da classe é PrimeiroPrograma. Uma classe pública ela é acessível por qualquer outra classe. Em outra oportunidade será explicado com mais detalhes a diferença de pública, privado e outros modificadores de acesso.
public static void main(String[] args) {
Aqui é aonde o programa inicia, por agora isso é o mais importante que você deve entender. O public é para indicar que é um metodo público, o static é porque não precisamos criar uma instância ou objeto da classe antes de usar o método main, e void é para informar que esse método não retorna um valor. O String[] args é usando para passar parâmentros para o programa através da linha de comando.
System.out.println("Meu primeiro programa em Java!");
O System.out.println() é um comando usado para exibir um valor na saída padrão do computador, no qual geralmente é o monitor.
Compilação
Compilar um programa em Java é muito fácil.
1. Abre a linha de comando e digite os comandos abaixo.
2. cd C:\prog, pressione Enter.
3. javac PrimeiroPrograma.java, pressione Enter.
Se tiver compilado corretamente não vai aparecer nenhuma mensagem. Quando um programa é compilado, um arquivo .class é criado. Em nosso exemplo um arquivo PrimeiroPrograma.class deve ter sido criado.
Execução
Para executar basta executar o comando abaixo.
java PrimeiroPrograma
Para executar você não precisa colocar a extensão .java nem a .class.
Marcadores:
codificação,
compilação,
compilar,
escrever,
execução,
executar,
java,
javac,
primeiro,
programa
terça-feira, 15 de fevereiro de 2011
Instalação do JDK e JRE
A instalação do Java Development Kit (JDK) é uma tarefa fácil, mas pode ser uma dificuldade para os iniciantes. Por este motivo é detalhado abaixo a instalação para facilitar a vida dos iniciantes.
O JDK é uma ferramenta fornecida gratuitamente pela Oracle, ele fornece um conjunto de ferramentas tais como compiladores e depuradores para auxiliar no desenvolvimento de aplicações. O Java Runtime Environment (JRE) também faz parte do JDK. O JRE fornece bibliotecas, a Java Virtual Machine (JVM) e outros componentes para executar os programas desenvolvidos em Java.
1. Entra no endereço http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. Clique em Download conforme indicado na Figura 1.
3. Em Platform selecione Windows.
4. Marque a opção I agree to the Java SE Development Kit 6 License Agreement.
5. Clique Continue.
6. Clique em jdk-6<versão>-windows-i586-p.exe para iniciar o download.
7. Salve o arquivo de instalação na sua área de trabalho.
8. Abra o arquivo de instalação.
9. Siga as instruções de instalação.
10. Se pedir para reiniciar aceite a opção.
Configuração das Variáveis de Ambiente
1. Clique em Iniciar > Painel de Controle > Sistema
2. Clique em Avançado.
3. Clique em Variáveis de Ambiente na parte inferior da janela.
4. Em Variáveis de sistema selecione PATH ou Path, depois clique em Editar.
5. Em Valor da variável vai até o final da linha e insira um ;(ponto e virgula).
6. Digite o caminho que voce instalou o JDK, gerealmente é: C:\Arquivos de Programas\Java\jdk1.6.0_<versão>\bin
7. Click OK.
Teste do JDK
O seu sistema agora já deve estar ponto para usar o JDK. Existem alguns comandos simples para verificar se a instalação foi realizada corretamente.
1. Clique em Iniciar > Executar e digite cmd para abrir a linha de comando.
2. Digite java -version e pressione Enter.
- Se a instação foi realizada corretamente você deve ver uma tela semelhante ao da Figura 2.
- Se aparecer uma mensagem `java não é reconhecido como um comando interno ou externo` isso quer dizer que a instalação não foi realizada corretamente.
Acabou!!
Bom, acabou por agora, pois na proxima postagem vou ensinar como desenvolver um programa simples em Java e como usar os comandos javac e java para compilar e executar o programa.
O JDK é uma ferramenta fornecida gratuitamente pela Oracle, ele fornece um conjunto de ferramentas tais como compiladores e depuradores para auxiliar no desenvolvimento de aplicações. O Java Runtime Environment (JRE) também faz parte do JDK. O JRE fornece bibliotecas, a Java Virtual Machine (JVM) e outros componentes para executar os programas desenvolvidos em Java.
Instalação do JDK
1. Entra no endereço http://www.oracle.com/technetwork/java/javase/downloads/index.html
2. Clique em Download conforme indicado na Figura 1.
Figura 1. Página de download do JDK. |
3. Em Platform selecione Windows.
4. Marque a opção I agree to the Java SE Development Kit 6 License Agreement.
5. Clique Continue.
6. Clique em jdk-6<versão>-windows-i586-p.exe para iniciar o download.
7. Salve o arquivo de instalação na sua área de trabalho.
8. Abra o arquivo de instalação.
9. Siga as instruções de instalação.
10. Se pedir para reiniciar aceite a opção.
Configuração das Variáveis de Ambiente
1. Clique em Iniciar > Painel de Controle > Sistema
2. Clique em Avançado.
3. Clique em Variáveis de Ambiente na parte inferior da janela.
4. Em Variáveis de sistema selecione PATH ou Path, depois clique em Editar.
5. Em Valor da variável vai até o final da linha e insira um ;(ponto e virgula).
6. Digite o caminho que voce instalou o JDK, gerealmente é: C:\Arquivos de Programas\Java\jdk1.6.0_<versão>\bin
7. Click OK.
Teste do JDK
O seu sistema agora já deve estar ponto para usar o JDK. Existem alguns comandos simples para verificar se a instalação foi realizada corretamente.
1. Clique em Iniciar > Executar e digite cmd para abrir a linha de comando.
2. Digite java -version e pressione Enter.
- Se a instação foi realizada corretamente você deve ver uma tela semelhante ao da Figura 2.
- Se aparecer uma mensagem `java não é reconhecido como um comando interno ou externo` isso quer dizer que a instalação não foi realizada corretamente.
Figura 2. Verificação da instalação do JDK. |
Acabou!!
Bom, acabou por agora, pois na proxima postagem vou ensinar como desenvolver um programa simples em Java e como usar os comandos javac e java para compilar e executar o programa.
segunda-feira, 14 de fevereiro de 2011
O que é a Tecnologia Java
O que é a Tecnologia Java? Uma linguagem de programação é a primeira resposta que vem na mente. Esta resposta está parcialmente correta, pois a Tecnologia Java é muito mais do que apenas a linguagem. Ela é formada por uma grande quantidade de produtos. Você provavelmente já ouviu falar em alguns destes produtos como por exemplo: Java 6, JRE, JVM, JSE, JME, Java Card, EJB, JSP, Servlet e etc.
Os programas Java não dependem de uma plataforma especifica para executar, isto graças a Maquina Virtual Java (JVM). A JVM pode ser vista como um tradutor do código Java para instruções específicas de cada sistema operacional. Sendo assim o Java consegue ser executado aonde tiver uma JVM, isto pode ser em um notebook, relógio, celular, geladeira, torradeira e etc.
Os programas Java não dependem de uma plataforma especifica para executar, isto graças a Maquina Virtual Java (JVM). A JVM pode ser vista como um tradutor do código Java para instruções específicas de cada sistema operacional. Sendo assim o Java consegue ser executado aonde tiver uma JVM, isto pode ser em um notebook, relógio, celular, geladeira, torradeira e etc.
Assinar:
Postagens (Atom)