DEV Community

Simone Pinheiro
Simone Pinheiro

Posted on

JAVA PARA INICIANTES - 1. Introdução, Fundamentos e Prática 11/01/25 #Cap1

Informações Importantes do Capítulo 1

  • Criado pela Sun Microsystems em 1995.
  • Popularizou o conceito "Write Once, Run Anywhere" (WORA).

1. Introdução ao Java e sua Importância

História e Motivação do Java: O capítulo aborda a criação do Java, suas origens em 1995, e os motivos pelos quais ele se tornou uma linguagem tão popular e confiável, especialmente em sistemas corporativos, dispositivos móveis e IoT.
Java é uma linguagem de programação orientada a objetos, robusta e de alto nível, amplamente utilizada no desenvolvimento de aplicações corporativas, sistemas empresariais, web, e aplicações móveis. Desenvolvido pela Sun Microsystems (agora pertencente à Oracle), é conhecido por sua portabilidade, segurança, e forte suporte para multithreading. Java é altamente escalável e possui um vasto ecossistema de bibliotecas, frameworks como Spring e Hibernate, além de ferramentas de integração, como o Maven e o Gradle. A linguagem também é usada em ambientes corporativos por sua capacidade de processamento eficiente e confiabilidade em execução nativa. Além disso, Java oferece suporte a diferentes arquiteturas e sistemas operacionais, tornando-o uma escolha popular para desenvolver software robusto e escalável.

EVOLUÇÃO DO JAVA

Um resumo das principais features desde o início!

# Java 1.0 (1995) – O Começo 🚀
- Write Once, Run Anywhere (WORA)
- Suporte a:
  - Applets
  - Multithreading básico

# Java 1.2 (1998) – Java 2 e a Revolução 🌀
- Swing: Nova biblioteca para GUIs
- Collections Framework: Estruturas como ArrayList e HashMap
- JIT Compiler: Melhor desempenho

# Java 1.4 (2002) – Robustez e Desempenho 🔧
- Assertions para depuração
- Pacote java.nio: Melhorias no I/O
- Expressões Regulares (java.util.regex)

# Java 5 (2004) – Modernização da Linguagem 💡
- Generics: List<String> 
- Enhanced for-loop: for (int i : array)
- Annotations: @Override
- Enums e Varargs
- Concurrent API: Melhor suporte a threads

# Java 6 (2006) – Refinamentos 🛠️
- Melhor desempenho da JVM
- Compiler API (javax.tools)
- Java Scripting API: Integração com JavaScript

# Java 7 (2011) – Simplificação e Eficiência ⚡
- Try-with-resources: Gerenciamento automático de recursos
- Switch com Strings
- Multi-catch em exceções
- NIO.2: Melhor manipulação de arquivos

# Java 8 (2014) – Programação Funcional 🤖
- Lambdas: (x) -> x * 2
- Streams API: Processamento declarativo de coleções
- Optional: Lidar com null de forma segura
- API de Data e Hora (java.time)
- Default Methods: Métodos padrão em interfaces

# Java 9 (2017) – Modularização 🧩
- JPMS: Java Platform Module System
- JShell: REPL para experimentaçã
Enter fullscreen mode Exit fullscreen mode

Características-chave:

  • Portabilidade (Write Once, Run Anywhere - WORA).
  • Forte tipagem e segurança.
  • Suporte a multithreading e programação orientada a objetos.

Por que escolher Java em 2024?

Comparativo entre Java e Python.

Image description

Contribuições

  • Introdução do bytecode para portabilidade.
  • Avanço da Programação Orientada a Objetos (POO) e segurança.

Bytecode

- Bytecode: código intermediário executado pela JVM.

POO

  • POO (Programação orientada a Objeto): um paradigma de programação que organiza o código em torno de objetos.
    • OS quatro pilares:
      • ABSTRAÇÃO
      • HERANÇA
      • POLIMORFISMO
      • ENCAPSULAMENTO

Tipos de Dados

  • Tipos primitivos como int, double, char.
public class TiposDeDadosExample {
    public static void main(String[] args) {
        int numero = 10;       // Tipo inteiro
        double pi = 3.14159;   // Tipo decimal
        char letra = 'A';      // Tipo caractere
        boolean verdadeiro = true;  // Tipo booleano

        System.out.println("Número: " + numero);
        System.out.println("Valor de pi: " + pi);
        System.out.println("Letra: " + letra);
        System.out.println("Valor booleano: " + verdadeiro);
    }
}
Enter fullscreen mode Exit fullscreen mode
  • Objetos e faixas de valores específicos.

Conversões e Boas Práticas da Linguagem

  • Conversões implícitas ou explícitas (casting).
  • Nomes claros e uso de comentários para legibilidade.

Blocos e Estruturas de Repetição

  • Blocos organizam trechos com {}; estruturas incluem for, while, do-while.
  • Essenciais para execução repetitiva com base em condições.

Identificadores

  • Nomeiam variáveis, métodos e classes.
  • Seguem convenções (ex.: camelCase para variáveis, PascalCase para classes).

Bibliotecas

  • Inclui bibliotecas padrão como java.util e java.io.
  • Reutilização de código e redução de complexidade.

Tratando erros de Sintaxe

  • Erros comuns como esquecer ; ou {}.
  • Mensagens de erro ajudam na depuração.
  • Try Catch: é uma estrutura de programação que permite que o programador controle o fluxo de execução do código em situações imprevistas

    try {
    int result = 10 / 0;  // Possível erro de execução
    } catch (ArithmeticException e) {
        System.out.println("Erro: " + e.getMessage());
    }
    

Meus primeiros Programas

  • Exemplos básicos como "Hello, World!" para introdução. > Olá mundo
public class OláMundo {
    public static void main(String[] args) {
        System.out.println("Olá, Mundo!");
    }
}
Enter fullscreen mode Exit fullscreen mode
  • Uso do método main e execução pelo terminal.
  • Classe Exemplo de um Obejto em Java
class Animal {
    String nome;

    void fazerSom() {
        System.out.println("O animal faz um som");
    }
}

class Cachorro extends Animal {
    void fazerSom() {
        System.out.println("O cachorro late");
    }
}

public class PolimorfismoExample {
    public static void main(String[] args) {
        Animal meuAnimal = new Cachorro();
        meuAnimal.fazerSom();  // Polimorfismo em ação
    }
}
Enter fullscreen mode Exit fullscreen mode

BONS ESTUDOS! Aproveite a jornada.

Tópico Anterior

Próximo Tópico

💡 One last tip before you go

Tired of spending so much on your side projects? 🤔

We have created a membership program that helps cap your costs so you can build and experiment for less. And we currently have early-bird pricing which makes it an even better value! 🐥

Check out DEV++

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Discover a treasure trove of wisdom within this insightful piece, highly respected in the nurturing DEV Community enviroment. Developers, whether novice or expert, are encouraged to participate and add to our shared knowledge basin.

A simple "thank you" can illuminate someone's day. Express your appreciation in the comments section!

On DEV, sharing ideas smoothens our journey and strengthens our community ties. Learn something useful? Offering a quick thanks to the author is deeply appreciated.

Okay