- Informações Importantes do Capítulo 1
- Evolução Do Java
- Características-chave
- Por que escolher Java em 2024?
- Contribuições
- Bytecode
- POO
- Tipos de Dados
- Conversões e Boas Práticas da Linguagem
- Blocos e Estruturas de Repetição
- Identificadores
- Bibliotecas
- Tratando erros de Sintaxe
- Meus primeiros Programas
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!
<span># Java 1.0 (1995) – O Começo </span>- Write Once, Run Anywhere <span>(</span>WORA<span>)</span>- Suporte a:- Applets- Multithreading básico<span># Java 1.2 (1998) – Java 2 e a Revolução </span>- Swing: Nova biblioteca para GUIs- Collections Framework: Estruturas como ArrayList e HashMap- JIT Compiler: Melhor desempenho<span># Java 1.4 (2002) – Robustez e Desempenho </span>- Assertions para depuração- Pacote java.nio: Melhorias no I/O- Expressões Regulares <span>(</span>java.util.regex<span>)</span><span># Java 5 (2004) – Modernização da Linguagem </span>- Generics: List<String>- Enhanced <span>for</span><span>-loop</span>: <span>for</span> <span>(</span>int i : array<span>)</span>- Annotations: @Override- Enums e Varargs- Concurrent API: Melhor suporte a threads<span># Java 6 (2006) – Refinamentos ️</span>- Melhor desempenho da JVM- Compiler API <span>(</span>javax.tools<span>)</span>- Java Scripting API: Integração com JavaScript<span># Java 7 (2011) – Simplificação e Eficiência </span>- Try-with-resources: Gerenciamento automático de recursos- Switch com Strings- Multi-catch em exceções- NIO.2: Melhor manipulação de arquivos<span># Java 8 (2014) – Programação Funcional 🤖</span>- Lambdas: <span>(</span>x<span>)</span> -> x <span>*</span> 2- Streams API: Processamento declarativo de coleções- Optional: Lidar com null de forma segura- API de Data e Hora <span>(</span>java.time<span>)</span>- Default Methods: Métodos padrão em interfaces<span># Java 9 (2017) – Modularização 🧩</span>- JPMS: Java Platform Module System- JShell: REPL para experimentaçã<span># Java 1.0 (1995) – O Começo </span> - Write Once, Run Anywhere <span>(</span>WORA<span>)</span> - Suporte a: - Applets - Multithreading básico <span># Java 1.2 (1998) – Java 2 e a Revolução </span> - Swing: Nova biblioteca para GUIs - Collections Framework: Estruturas como ArrayList e HashMap - JIT Compiler: Melhor desempenho <span># Java 1.4 (2002) – Robustez e Desempenho </span> - Assertions para depuração - Pacote java.nio: Melhorias no I/O - Expressões Regulares <span>(</span>java.util.regex<span>)</span> <span># Java 5 (2004) – Modernização da Linguagem </span> - Generics: List<String> - Enhanced <span>for</span><span>-loop</span>: <span>for</span> <span>(</span>int i : array<span>)</span> - Annotations: @Override - Enums e Varargs - Concurrent API: Melhor suporte a threads <span># Java 6 (2006) – Refinamentos ️</span> - Melhor desempenho da JVM - Compiler API <span>(</span>javax.tools<span>)</span> - Java Scripting API: Integração com JavaScript <span># Java 7 (2011) – Simplificação e Eficiência </span> - Try-with-resources: Gerenciamento automático de recursos - Switch com Strings - Multi-catch em exceções - NIO.2: Melhor manipulação de arquivos <span># Java 8 (2014) – Programação Funcional 🤖</span> - Lambdas: <span>(</span>x<span>)</span> -> x <span>*</span> 2 - Streams API: Processamento declarativo de coleções - Optional: Lidar com null de forma segura - API de Data e Hora <span>(</span>java.time<span>)</span> - Default Methods: Métodos padrão em interfaces <span># Java 9 (2017) – Modularização 🧩</span> - JPMS: Java Platform Module System - JShell: REPL para experimentaçã# 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.
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
- OS quatro pilares:
Tipos de Dados
- Tipos primitivos como
int
,double
,char
.
<span>public</span> <span>class</span> <span>TiposDeDadosExample</span> <span>{</span><span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span><span>int</span> <span>numero</span> <span>=</span> <span>10</span><span>;</span> <span>// Tipo inteiro</span><span>double</span> <span>pi</span> <span>=</span> <span>3.14159</span><span>;</span> <span>// Tipo decimal</span><span>char</span> <span>letra</span> <span>=</span> <span>'A'</span><span>;</span> <span>// Tipo caractere</span><span>boolean</span> <span>verdadeiro</span> <span>=</span> <span>true</span><span>;</span> <span>// Tipo booleano</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Número: "</span> <span>+</span> <span>numero</span><span>);</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Valor de pi: "</span> <span>+</span> <span>pi</span><span>);</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Letra: "</span> <span>+</span> <span>letra</span><span>);</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Valor booleano: "</span> <span>+</span> <span>verdadeiro</span><span>);</span><span>}</span><span>}</span><span>public</span> <span>class</span> <span>TiposDeDadosExample</span> <span>{</span> <span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span> <span>int</span> <span>numero</span> <span>=</span> <span>10</span><span>;</span> <span>// Tipo inteiro</span> <span>double</span> <span>pi</span> <span>=</span> <span>3.14159</span><span>;</span> <span>// Tipo decimal</span> <span>char</span> <span>letra</span> <span>=</span> <span>'A'</span><span>;</span> <span>// Tipo caractere</span> <span>boolean</span> <span>verdadeiro</span> <span>=</span> <span>true</span><span>;</span> <span>// Tipo booleano</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Número: "</span> <span>+</span> <span>numero</span><span>);</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Valor de pi: "</span> <span>+</span> <span>pi</span><span>);</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Letra: "</span> <span>+</span> <span>letra</span><span>);</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Valor booleano: "</span> <span>+</span> <span>verdadeiro</span><span>);</span> <span>}</span> <span>}</span>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 incluemfor
,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
ejava.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
<span>try</span> <span>{</span><span>int</span> <span>result</span> <span>=</span> <span>10</span> <span>/</span> <span>0</span><span>;</span> <span>// Possível erro de execução</span><span>}</span> <span>catch</span> <span>(</span><span>ArithmeticException</span> <span>e</span><span>)</span> <span>{</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Erro: "</span> <span>+</span> <span>e</span><span>.</span><span>getMessage</span><span>());</span><span>}</span><span>try</span> <span>{</span> <span>int</span> <span>result</span> <span>=</span> <span>10</span> <span>/</span> <span>0</span><span>;</span> <span>// Possível erro de execução</span> <span>}</span> <span>catch</span> <span>(</span><span>ArithmeticException</span> <span>e</span><span>)</span> <span>{</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"Erro: "</span> <span>+</span> <span>e</span><span>.</span><span>getMessage</span><span>());</span> <span>}</span>
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 <span>{</span>public static void main<span>(</span>String[] args<span>)</span> <span>{</span>System.out.println<span>(</span><span>"Olá, Mundo!"</span><span>)</span><span>;</span><span>}</span><span>}</span>public class OláMundo <span>{</span> public static void main<span>(</span>String[] args<span>)</span> <span>{</span> System.out.println<span>(</span><span>"Olá, Mundo!"</span><span>)</span><span>;</span> <span>}</span> <span>}</span>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
<span>class</span> <span>Animal</span> <span>{</span><span>String</span> <span>nome</span><span>;</span><span>void</span> <span>fazerSom</span><span>()</span> <span>{</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"O animal faz um som"</span><span>);</span><span>}</span><span>}</span><span>class</span> <span>Cachorro</span> <span>extends</span> <span>Animal</span> <span>{</span><span>void</span> <span>fazerSom</span><span>()</span> <span>{</span><span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"O cachorro late"</span><span>);</span><span>}</span><span>}</span><span>public</span> <span>class</span> <span>PolimorfismoExample</span> <span>{</span><span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span><span>Animal</span> <span>meuAnimal</span> <span>=</span> <span>new</span> <span>Cachorro</span><span>();</span><span>meuAnimal</span><span>.</span><span>fazerSom</span><span>();</span> <span>// Polimorfismo em ação</span><span>}</span><span>}</span><span>class</span> <span>Animal</span> <span>{</span> <span>String</span> <span>nome</span><span>;</span> <span>void</span> <span>fazerSom</span><span>()</span> <span>{</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"O animal faz um som"</span><span>);</span> <span>}</span> <span>}</span> <span>class</span> <span>Cachorro</span> <span>extends</span> <span>Animal</span> <span>{</span> <span>void</span> <span>fazerSom</span><span>()</span> <span>{</span> <span>System</span><span>.</span><span>out</span><span>.</span><span>println</span><span>(</span><span>"O cachorro late"</span><span>);</span> <span>}</span> <span>}</span> <span>public</span> <span>class</span> <span>PolimorfismoExample</span> <span>{</span> <span>public</span> <span>static</span> <span>void</span> <span>main</span><span>(</span><span>String</span><span>[]</span> <span>args</span><span>)</span> <span>{</span> <span>Animal</span> <span>meuAnimal</span> <span>=</span> <span>new</span> <span>Cachorro</span><span>();</span> <span>meuAnimal</span><span>.</span><span>fazerSom</span><span>();</span> <span>// Polimorfismo em ação</span> <span>}</span> <span>}</span>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
原文链接:JAVA PARA INICIANTES – 1. Introdução, Fundamentos e Prática 11/01/25 #Cap1
暂无评论内容