Arquivo da tag: Java

Entendendo a plataforma Java

Entendendo a plataforma Java. Linguagem Java.

Java é uma linguagem de alto nível. Ela roda em mais de 50 milhões de computadores pessoais e em bilhões de dispositivos em todo o mundo.

A linguagem pode ser caracterizada pelas seguintes palavras chave:

  • Simples
  • Orientado a objeto
  • Distribuído
  • Multithreaded
  • Dinâmico
  • Arquitetura neutra
  • Portável
  • Alto desempenho
  • Robusto
  • Seguro

Os dois principais componentes da plataforma Java são: Interface de Programação de Aplicativos Java (API) e a Maquina Virtual Java (JVM), que interpreta o código Java em linguagem de máquina.

A mesma aplicação Java, pode rodar em diversas plataformas sem que seja necessária uma nova compilação ou alterações no programa fonte, bastando que se use a JVM adequada ao sistema operacional destino.

Abaixo um exemplo da mesma aplicação rodando em várias plataformas:

A API e a JVM tornam o programa independente do hardware subjacente.

Na linguagem de programação Java, todo o código fonte é escrito em arquivos de texto simples que terminam com a extensão java. Esses arquivos são compilados pelo compilador javac que gera um arquivo com extensão class. Um arquivo de classe não contém código nativo para seu processador, em vez disso, contém bytecodes (linguagem de máquina do Java Virtual Machine – JVM). A ferramenta de execução (java) em seguida, executa a sua aplicação com uma instância da máquina virtual Java.

Para fazer o seu primeiro programa “Hello World”, siga os passos do post anterior para escrever seu primeiro programa em Java utilizando a IDE NetBeans.

Blog Java Boas vindas!

Blog Java Boas vindas. Assuntos sobre a Linguagem Java e muitas dicas de programação.

Bem-vindo ao Blog, um Guia do Java entre tantos. Aqui você irá encontrar informações sobre a tecnologia Java objetiva, simples e prática. Um dos objetivos é guiar os iniciantes, também profissionais experientes encontrarão facilidades e aplicações que facilitam o cotidiano da programação. Gostaria de convidar a você a enriquecer ainda mais esta experiência contribuindo com suas ideias e tudo mais que desejar compartilhar como vídeos, textos, imagens, links etc.

Se faltar algo que esteja procurando, não esqueça de pedir ajudar, teremos maior prazer em completar o que deseja encontrar aqui. A maioria de tudo publicado neste espaço, como tutoriais, minicursos, vídeos, apostilas, programas, são republicação no objetivo de fazer a coisa chegar a quem precisa.

códigoa java, java download,programação Java,

Blog Java

Sistema Operacional Java

O projeto já tem um tempo, mas descobri um sistema operacional de código aberto feito em Java, chamado JNode:
http://www.jnode.org/

Agora, quem reclamar que a JVM demora para interpretar o bytecode, pode tentar usar um sistema operacional nativo para ver se fica mais rápido. 🙂

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.

Como Reescrever um Método de um Único Objeto em Java

Pela pergunta, parece muito difícil codificar… Mas, para fazer, até que é fácil! 🙂

A gente pode reescrever o método de um único objeto, codificando ele durante a instanciação deste (chamada do construtor). Exemplo:


List listaStrings = new ArrayList() {
      public String toString() {
               return “Reescrevi o método”;
      }
};
listaStrings.add(“Primeira String”);
System.out.println(listaStrings);

Interessante, ele escreveu “Reescrevi o método” na tela!

Se você retirar as linhas de “reescrita”:


List listaStrings = new ArrayList();
listaStrings.add(“Primeira String”);
System.out.println(listaStrings);

Ele escreve “[Primeira String]” (agora parece normal 😛 ).

Obs.: Isso só pode ser feito em objetos que não são de classes “final”.

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.

Rhino: Rodando Javascript em Java

Rhino é um framework para a linguagem Java que permite executar scripts em Javascript. Ele foi feito pelo “mesmo” pessoal da Mozilla Foundation.
O mais legal é que dá para criar um console javascript em prompt de comando (coisa de nerd, eu sei… 🙂 ).
Muito bom para quem gosta de Javascript e quer fazer aplicações em Shell/Terminal/Console/Prompt. 😛

Para mais informações, acesse o site:
http://www.mozilla.org/rhino/doc.html

Obs.: A ferramenta de teste Selenium usou ele para executar Javascript em sua versão RC.

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.

Posso mudar o valor de um parâmetro em Java

Resposta direta: Não! 😛

Em Java, um parâmetro sempre é passado por valor (e não por referência). Ou seja, se eu fizer um código assim:

public class Main {
      public static void inc(int i) {
             i++;
      }
      public static void main(String args[]) {
            int a = 0;
            System.out.println(“Valor de a : ” + a);
            inc(a);
            System.out.println(“Valor de a : ” + a);
      }
}

O que será exibido na tela é:
Valor de a : 0
Valor de a : 0

O mesmo vale para uma String:

public class Main {
      public static void helloWorld(String str) {
             str += “ Hello World”;
      }
      public static void main(String args[]) {
            String s = “Alo mundo”;
            System.out.println(s);
            helloWorld(s);
            System.out.println(s);
      }
}

Tela:
Alo mundo
Alo mundo

Ou seja, o valor da variável passada por parametro não muda depois que você retorna para a função que o chamou…

Mas existe um jeito de contornar isso! 🙂

Podemos usar classes que possuem funções e/ou atributos que modificam o estado inicial de um objeto (hã, o que é isso???).

Para facilitar, vejamos o exemplo a seguir:

public class Main {
      public static void helloWorld(StringBuilder str) {
             str.append(“ Hello World”);
      }
      public static void main(String args[]) {
            StringBuilder s = new StringBuilder(“Alo mundo”);
            System.out.println(s);
            helloWorld(s);
            System.out.println(s);
      }
}

Quando você executar, verá algo assim:
Alo mundo
Alo mundo Hello World

A mesma coisa acontece se eu criar um atributo inteiro em uma classe:
class MutableInteger {
         public int i = 0;
         public String toString() {
                 return String.valueOf(i);
         }       
}
E incrementar este na função, passando um objeto instanciado desta: 

public class Main {
      public static void inc(MutableInteger b) {
             b.i++;
      }
      public static void main(String args[]) {
            MutableInteger a = new MutableInteger();
            System.out.println(“Valor de a : ” + a);
            inc(a);
            System.out.println(“Valor de a : ” + a);
      }
}

E o que será exibido é:

Valor de a : 0
Valor de a : 1

Uau! Que coisa estranha… 😛

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.

Propriedades estáticas em Java

Esta dúvida também apareceu semana passada…

Se eu criar uma propriedade estática do tipo contador e incrementa-la no construtor do objeto…

public class Usuario {
      private static int contador = 0;
      //Construtor
      public Usuario() {
              contador++;
      }
      //Exibe o valor
       public void exibirContador() {
               System.out.println(“No. de Usuarios: ” + contador);
       }
}

E criar e instanciar 5 objetos desta classe, não importa em qual objeto chamar o método exibirContador, que ele sempre retornará o mesmo valor, ou seja, 5 (é como se a variável fosse global):

Usuario u1 = new Usuario();
Usuario u2 = new Usuario();
Usuario u3 = new Usuario();
Usuario u4 = new Usuario();
Usuario u5 = new Usuario();

u2.exibirContador(); //Tente trocar para qualquer outro objeto que sempre dará o mesmo valor…

Outra dúvida que surgiu é a chamada desta variável. Será que é possível chamar assim:
      public Usuario() {
              contador++;
      }
Ou assim:
      public Usuario() {
              this.contador++;
      }

Ou assim:
      public Usuario() {
              Usuario.contador++;
      }

Sim, por incrivel que pareça, é possível. (agora, não me pergunte o porque… parece que isso tem haver com escopo da variável e outras coisas a mais que não faço a menor idéia de como funciona…)

Que confusão… Será que eu consegui explicar alguma coisa?
Bem, de qualquer forma, é bom testar o código acima… 😛

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.

Qual é a diferença entre classe abstrata e interface em Java

Isso foi me perguntado semana passada….

A resposta:

Classe Abstrata é uma classe que não pode ser instanciada, pode possuir métodos abstratos (ou seja, sem implementação) e que somente pode ser extendida (ou seja, as classes filhas somente podem herdar de uma única classe abstrata).

Interface é uma estrutura que também não pode ser instanciada, possui sempre métodos abstratos e podem ser implementadas em várias classes (ou seja, as classes filhas podem herdar de uma ou mais interfaces).

Exemplo:

//Classe abstrata Som
abstract class Som {
    public abstract void tocar();
    public void info() {
           System.out.println(“Testando som, 1, 2, 3”);
    }
}

//Classe abstrata Video
abstract class Video {
     public abstract void exibir();
     public void info() {
            System.out.println(“Luzes, Camera e Acao”);
     }
}

//Classe Musica que extende a classe Som (funciona!)
class Musica extends Som {
       public void tocar() {
              System.out.println(“Do re mi fa sol la si”);
       }
}

//Classe Filme que extende as classes Video e Som (não funciona…)
class Filme extends Video, Som {
       public void tocar() {
              System.out.println(“Do re mi fa sol la si”);

       }
       public void exibir() {
               System.out.println(“Vendo o filme”);
       }

}

A classe Filme somente funcionaria, se as classes abstratas Video e Som fossem interfaces:

//Interface Video (não há implementação de método)
interface Video {
      public void exibir(); 
}

//Interface Som (não há implementação de método)
interface Som {
      public void tocar();
}

//Classe Filme que implementa as interfaces Video e Som (funciona…)
class Filme implements Video, Som {
       public void tocar() {
              System.out.println(“Do re mi fa sol la si”);

       }
       public void exibir() {
               System.out.println(“Vendo o filme”);
       }

}

Complicado, não? Mas com o tempo, a gente pega a prática… 🙂

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.

Upload de arquivo com DWR

DWR é um framework Java que simula chamadas de métodos Java em Javascript.

Legal, não? 🙂

Aqui, vou mostrar um exemplo de upload de uma imagem…

Primeiro, a gente cria a classe que vai fazer o upload:

package com.blogspot.blogdotakemura.test;

import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

public class UploadFile {

public String uploadImage(BufferedImage image) {
try {
File file = new File(“teste.png”);
ImageIO.write(image, “png”, file);
return file.toURI().toString();
} catch (Exception e) {
e.printStackTrace();
return “”;
}
}

}

Depois, crio o arquivo dwr.xml em WEB-INF e adiciono as seguintes linhas:






Agora, é só criar a página JSP:





Upload test



Se tudo der certo, agora você pode fazer upload de imagens com javascript!!!!

Uau! 😛

Obs.: Para que isso funcione, é preciso configurar o dwr corretamente na aplicação web.

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.

JMonkeyEngine: ferramentas 3D para Java

JMonkeyEngine é um conjunto de ferramentas e bibliotecas feitas em Java para manipulação de objetos 3D. Ele é open-source e usa a biblioteca OpenGL.

Para mais informações, no site oficial:
http://jmonkeyengine.com/

A versão disponível, esta em beta (ou seja, ainda não é a definitiva…). 😛

E existe um tutorial para suporte no Android:
http://jmonkeyengine.org/wiki/doku.php/jme3:android

Para quem quer começar a criar jogos 3D e ama Java é uma boa pedida. 😉

Até mais!

Programação Java é aqui. Acesse as o blog para ficar atualizado sobre o mundo da Linguagem Java. Dicas, informações e muitos truques para se usar no dia-a-da do programador java.