2.
Características Fundamentais da Linguagem Java
Java é descrita como uma fusão de diversas tecnologias da
computação, oferecendo suporte a tópicos modernos como
programação concorrente e protocolos de internet.
Portabilidade e Execução
Byte-code: Os programas são compilados para um código de
máquina virtual (byte-code), não para uma máquina real. Isso
permite que a aplicação seja executada em qualquer
plataforma que suporte Java (Windows, Solaris, Mac/OS) sem
necessidade de recompilação.
Independência de Arquitetura: Tipos de dados possuem
tamanho fixo (ex: um inteiro tem sempre 32 bits),
independentemente da arquitetura do processador.
Segurança e Robustez
Coleta Automática de Lixo (Garbage Collection): O
sistema gerencia a memória automaticamente, eliminando
espaços inutilizados em segundo plano (threads de baixa
prioridade), o que evita erros comuns de gerenciamento manual
encontrados em C++ e Pascal.
Ausência de Ponteiros: Substitui ponteiros por vetores e
objetos para impedir o acesso indevido à memória e erros
de reference aliasing.
Tipagem Forte (Strongly Typed): Elimina conversões
implícitas perigosas, garantindo que os tipos sejam respeitados
rigorosamente.
Tratamento de Exceções: Mecanismos que impedem o aborto
abrupto da aplicação sob condições anormais, como falhas de
transmissão.
Eficiência e Concorrência
Desempenho: Mais eficiente que linguagens de scripting,
embora mais lenta que C. A evolução da linguagem prevê a
geração de código executável on the fly a partir do byte-code.
Multithreading: Suporte nativo para múltiplos fluxos de
execução, facilitando animações e processamento paralelo em
máquinas multi-core.
--------------------------------------------------------------------------------
3. Fundamentos da Orientação a Objetos em Java
A filosofia de Java dita que não existem funções ou variáveis isoladas;
tudo deve pertencer a uma classe.
Classes e Objetos
Classe: Atua como um "molde" ou especificação que define
atributos (dados) e métodos (funções). É um tipo definido pelo
usuário.
Objeto (Instância): É a materialização da classe em memória
durante a execução. Possui estado (valores dos atributos) e
comportamento (métodos).
Mensagens: O ato de invocar um método é referenciado como
"passar uma mensagem" para o objeto.
Herança e Interfaces
Java suporta herança simples, mas não permite herança
múltipla.
A falta de herança múltipla é compensada pelo uso
de Interfaces, onde uma classe herda o comportamento de
uma superclasse e implementa múltiplas interfaces
simultaneamente.
Encapsulamento e Padrões (JavaBeans)
Getters e Setters: Segue o padrão de
nomenclatura getX e setX para acesso e modificação de
atributos, essencial para a integração com diversas APIs como
Servlets e JSF.
--------------------------------------------------------------------------------
4. Estrutura Técnica e Sintaxe
Tipos Primitivos (Básicos)
Os tipos são padronizados para garantir a portabilidade entre
ambientes:
Categoria Tipo Descrição
Caractere char UNICODE 16-bit (internacionalização)
Valores true ou false (sem conversão
Lógico boolean
para int)
Inteiros byte, short, int, l Todos possuem sinal (complemento de
ong 2)
Ponto
float, double Padrão IEEE754 de 32 e 64 bits
Flutuante
O Método main
É o ponto de entrada de qualquer aplicação Java. Possui
qualificadores específicos:
public: Acessível externamente.
static: Permite a invocação sem a necessidade de criar um
objeto da classe.
void: Indica que não há valor de retorno.
String args[]: Vetor de argumentos passados via linha de
comando.
--------------------------------------------------------------------------------
5. Dinâmica de Desenvolvimento
Compilação: Realizada via comando javac [Link],
gerando um arquivo .class.
Interpretação: Executada via comando java
NomeArquivo (sem a extensão).
Construtores: Métodos especiais com o mesmo nome da
classe, sem valor de retorno, usados para inicializar objetos no
momento da alocação (new).
Palavra-chave this: Referência interna ao próprio objeto para
resolver ambiguidades e acessar atributos e métodos próprios.
Agregação: Técnica de reutilização onde uma classe possui
atributos que são objetos de outras classes (relação de
"cliente").
--------------------------------------------------------------------------------
6. Citações e Insights Relevantes
"Java pode ser vista como uma fusão de várias tecnologias que vêm
sendo desenvolvidas na área de computação."
"Em Java, ao contrário de C++ e Modula-3, não existem funções
desvinculadas de classes, funções isoladas."
"O programador é proibido de obter acesso a memória que não
pertence ao seu programa... Estas medidas são particularmente úteis
quando pensarmos em aplicações comerciais desenvolvidas para a
internet."
"PROGRAME, PROGRAME, RE-PROGRAME!" - Recomendação central
para a fixação do aprendizado na linguagem.