Introduction to Java

โšก Resumo Inteligente

Introduction to Java Este tutorial explica uma linguagem de programaรงรฃo de propรณsito geral, baseada em classes e orientada a objetos, que tambรฉm funciona como uma plataforma computacional. Ele aborda diversos tรณpicos. JavaO histรณrico, as versรตes, os recursos, os componentes principais (JDK, JVM, JRE), as ediรงรตes de plataforma e o mecanismo de bytecode que compรตem o sistema. Java Uma linguagem verdadeiramente "escreva uma vez, execute em qualquer lugar".

  • โ˜• Definiรงรฃo Essencial: Java ร‰ uma linguagem de programaรงรฃo de propรณsito geral, baseada em classes e orientada a objetos, alรฉm de uma plataforma de tempo de execuรงรฃo projetada para portabilidade e confiabilidade.
  • ๐Ÿงฉ Trรชs componentes: O Java A plataforma compreende o JDK para desenvolvimento, a JVM para execuรงรฃo e o JRE para suporte em tempo de execuรงรฃo.
  • ๐Ÿ“œ Destaques histรณricos: Originalmente chamado OAK em 1991, renomeado Java em 1995, e adquirida por Oracle da Sun Microsystems em 2009.
  • ๐ŸŒ Quatro ediรงรตes: Java SE, Java EE (agora Jakarta EE), Java Eu e JavaFX tem como alvo desktops, sistemas corporativos, dispositivos embarcados e clientes avanรงados.
  • ๐Ÿ” Independรชncia da plataforma: Java O cรณdigo-fonte รฉ compilado em bytecode que pode ser executado em qualquer JVM, permitindo verdadeira portabilidade do tipo "escreva uma vez, execute em qualquer lugar" entre diferentes sistemas operacionais.

Introduction to Java - Quรฃo Java Mรกquina Virtual Funciona

O que รฉ a Java?

Java ร‰ uma linguagem de programaรงรฃo de propรณsito geral, baseada em classes e orientada a objetos, projetada para minimizar as dependรชncias de implementaรงรฃo. Tambรฉm funciona como uma plataforma computacional para o desenvolvimento de aplicaรงรตes. Java ร‰ rรกpida, segura e confiรกvel, razรฃo pela qual alimenta softwares em laptops, data centers, consoles de jogos, supercomputadores cientรญficos, celulares e dispositivos embarcados. Como uma linguagem multiplataforma e centrada em redes, Java Continua sendo uma das linguagens de programaรงรฃo mais adotadas no setor e รฉ a preferida pela maioria das organizaรงรตes para a construรงรฃo de projetos de missรฃo crรญtica.

O que รฉ a sessรฃo Java Plataforma?

O Java Plataforma รฉ uma coleรงรฃo de programas que ajuda os desenvolvedores a criar e executar Java aplicaรงรตes de forma eficiente. Ele reรบne um mecanismo de execuรงรฃo, um compilador e um conjunto de bibliotecas, juntamente com as especificaรงรตes que definem como eles interoperam. James Gosling desenvolveu o Java plataforma na Sun Microsystems, e Oracle A empresa adquiriu a participaรงรฃo da Sun em 2009.

Este vรญdeo apresenta o Java plataforma e explica porque Java รฉ simultaneamente uma plataforma e uma linguagem de programaรงรฃo:

Clique aqui. Se o vรญdeo nรฃo estiver acessรญvel.

O que รฉ a Java Usado para?

Aqui estรฃo algumas das aplicaรงรตes prรกticas mais importantes de Java:

  • Developing Android apps.
  • Desenvolvimento de software empresarial para grandes organizaรงรตes.
  • Alimentando uma ampla gama de dispositivos mรณveis. Java aplicaรงรตes.
  • Executando aplicaรงรตes de computaรงรฃo cientรญfica.
  • Impulsionando fluxos de trabalho de anรกlise de big data.
  • Programaรงรฃo de dispositivos de hardware embarcados.
  • Tecnologias do lado do servidor, como Apache, JBoss, GlassFish e Tomcat.

Histรณria da Java Linguagem de Programaรงรฃo

Aqui estรฃo os marcos importantes da histรณria de Java idioma:

  • O Java A linguagem foi inicialmente chamada de OAK.
  • Originalmente, foi desenvolvido para lidar com dispositivos portรกteis e decodificadores, รกreas em que o OAK se mostrou um fracasso comercial.
  • Em 1995, a Sun renomeou o idioma para โ€œJavae a reorientou para tirar proveito do rรกpido crescimento da World Wide Web.
  • Em 2009, foi fundada a Oracle Corporation adquiriu a Sun Microsystems e assumiu a propriedade de trรชs ativos de software importantes da Sun: Java, MySQL e Solaris.

Java versรตes

Segue um breve histรณrico de Java versรตes e suas respectivas datas de lanรงamento, atualizadas atรฉ a versรฃo de suporte de longo prazo mais recente:

Java Versรฃo Data de lanรงamento
JDK Alfa e Beta 1995
JDK1.0 23 de janeiro de 1996
JDK1.1 Fevereiro 19th 1997
J2SE 1.2 8th dezembro 1998
J2SE 1.3 8 Maio 2000
J2SE 1.4 Fevereiro 6th 2002
J2SE 5.0 30th setembro 2004
Java SE 6 11th dezembro 2006
Java SE 7 28 Julho 2011
Java SE 8 (LTS) 18th Sea 2014
Java SE 9 21st setembro 2017
Java SE 10 20th Sea 2018
Java SE 11 (LTS) 25th setembro 2018
Java SE 12 19th Sea 2019
Java SE 13 17th setembro 2019
Java SE 14 17th Sea 2020
Java SE 15 15th setembro 2020
Java SE 16 16th Sea 2021
Java SE 17 (LTS) 14th setembro 2021
Java SE 18 22 de marรงo de 2022
Java SE 19 20th setembro 2022
Java SE 20 21st Mar 2023
Java SE 21 (LTS) 19th setembro 2023
Java SE 22 19th Sea 2024
Java SE 23 17th setembro 2024
Java SE 24 18th Sea 2025
Java SE 25 (LTS) 16th setembro 2025

Java Diferenciais

Aqui estรฃo alguns dos mais importantes Java Caracterรญsticas que o mantiveram relevante por quase trรชs dรฉcadas:

  • ร‰ uma das linguagens de programaรงรฃo orientadas a objetos mais fรกceis de aprender.
  • "Escreva uma vez, execute em qualquer lugar" โ€” o cรณdigo compilado em uma mรกquina funciona em praticamente qualquer plataforma de computaรงรฃo.
  • Java ร‰ independente de plataforma graรงas ao seu modelo de execuรงรฃo de bytecode.
  • Ele foi projetado desde o inรญcio para aplicaรงรตes orientadas a objetos.
  • ร‰ uma linguagem multithread com gerenciamento automรกtico de memรณria (coleta de lixo).
  • Foi criado para o ambiente distribuรญdo da internet.
  • Ele facilita a computaรงรฃo distribuรญda devido ao seu design centrado em rede.

Componentes do Java Linguagem de Programaรงรฃo

A Java Um programador escreve cรณdigo em uma linguagem legรญvel por humanos chamada cรณdigo fonteA CPU nunca entende o cรณdigo-fonte diretamente โ€” as CPUs executam apenas cรณdigo de mรกquina, e esse cรณdigo de mรกquina varia entre as famรญlias de CPUs. Para superar essa lacuna, o Java A plataforma traduz o cรณdigo-fonte para um formato intermediรกrio portรกtil. Tudo isso acontece dentro de trรชs componentes principais: o JDK, a JVM e o JRE.

Java Kit de Desenvolvimento (JDK)

JDK รฉ um ambiente de desenvolvimento de software usado para criar applets e Java aplicaรงรตes. A forma completa do JDK รฉ Java Kit de desenvolvimento. Java os desenvolvedores podem usรก-lo em Windows, macOS, Solarise Linux. O JDK os ajuda a programar e executar. Java programas. ร‰ possรญvel instalar mais de uma versรฃo do JDK no mesmo computador.

Por que usar o JDK?

  • O JDK contรฉm as ferramentas necessรกrias para escrever Java programas e um JRE para executรก-los.
  • Inclui um compilador (javac), O Java Iniciador de aplicativos, AppletViewer e utilitรกrios similares.
  • O compilador converte o cรณdigo escrito em Java em bytecode.
  • O Java o inicializador de aplicativos abre um JRE, carrega a classe necessรกria e executa seu mรฉtodo principal.

Java Mรกquina Virtual (JVM)

O Java Mรกquina Virtual (JVM) รฉ um mecanismo que fornece um ambiente de execuรงรฃo para dirigir Java cรณdigo ou aplicativos. Ele converte Java bytecode em linguagem de mรกquina. A JVM faz parte da Java Ambiente de Execuรงรฃo Conjunto (JRE). Em outras linguagens de programaรงรฃo, o compilador produz cรณdigo de mรกquina para um sistema especรญfico. No entanto, o Java O compilador produz cรณdigo para uma mรกquina virtual conhecida como Java Mรกquina virtual.

Por que JVM?

  • JVM fornece uma forma de execuรงรฃo independente de plataforma Java Cรณdigo fonte.
  • Possui inรบmeras bibliotecas, ferramentas e estruturas disponรญveis imediatamente.
  • Depois de compilar um Java programa, vocรช pode executรก-lo em qualquer plataforma, o que economiza um tempo significativo.
  • A JVM vem com um compilador JIT (Just-In-Time) que converte bytecode em linguagem de mรกquina de baixo nรญvel em tempo de execuรงรฃo, muitas vezes fazendo com que ela seja executada mais rapidamente do que um aplicativo interpretado.

Java Ambiente de tempo de execuรงรฃo (JRE)

JRE รฉ um software projetado para executar outros softwares. Ele contรฉm as bibliotecas de classes, a classe carregadora e a JVM. Em termos simples, se vocรช quiser executar apenas um programa, ele precisa de um JRE. Java Para programar (e nรฃo desenvolver um), vocรช precisa do JRE em vez do JDK completo.

Por que usar o JRE?

  • O JRE contรฉm bibliotecas de classes, a JVM e outros arquivos de suporte. Ele nรฃo inclui ferramentas de desenvolvimento como um depurador ou compilador.
  • Ele utiliza importantes classes de pacotes, incluindo math, swing, util, lang, awte bibliotecas de tempo de execuรงรฃo.
  • Se vocรช tiver que correr Java Para instalar ou aplicar aplicativos, o JRE deve estar instalado no seu sistema.

Diferentes tipos de Java Desafios

Existem quatro distintos Java plataformas de linguagem de programaรงรฃo, cada uma otimizada para uma finalidade de implantaรงรฃo diferente:

1. Java Plataforma, Ediรงรฃo Standard (Java SE): Java A API da SE oferece a Java Funcionalidade central de uma linguagem de programaรงรฃo. Define tudo, desde tipos e objetos bรกsicos atรฉ classes de alto nรญvel usadas para redes, seguranรงa, acesso a bancos de dados, desenvolvimento de interfaces grรกficas de usuรกrio (GUI) e anรกlise de XML.

2. Java Plataforma, Ediรงรฃo Empresarial (Jakarta EE, anteriormente Java EE): A plataforma Jakarta EE oferece uma API e um ambiente de execuรงรฃo para desenvolvimento.ping e executar aplicaรงรตes de rede altamente escalรกveis, de grande escala, com mรบltiplas camadas, confiรกveis โ€‹โ€‹e seguras. Oracle transferiu a plataforma para o Eclipse Foundation em 2017, que a renomeou como Jakarta EE.

3. Java Plataforma, Micro Ediรงรฃo (Java MEU): O Java A plataforma ME oferece uma API e uma mรกquina virtual de tamanho reduzido para execuรงรฃo de tarefas. Java Aplicaรงรตes em dispositivos pequenos, como celulares bรกsicos e controladores embarcados.

4. JavaFX: JavaFX รฉ uma plataforma para desenvolvedores.ping Aplicaรงรตes ricas para internet usando uma API de interface de usuรกrio leve. Utiliza mecanismos grรกficos e de mรญdia com aceleraรงรฃo por hardware que ajudam Java Aproveite clientes de alto desempenho, uma aparรชncia moderna e APIs de alto nรญvel para conectar-se a fontes de dados em rede.

Para entender o Java Para entendermos a linguagem de programaรงรฃo, precisamos revisitar alguns conceitos bรกsicos de como um programa de computador executa comandos e realiza aรงรตes.

O que รฉ um PC?

Um computador รฉ um dispositivo eletrรดnico capaz de realizar cรกlculos. Ele รฉ composto por um monitor, teclado, mouse e memรณria para armazenar informaรงรตes. O componente mais importante, no entanto, รฉ o PROCESSADOR. O processador realiza todo o processamento do computador โ€” mas como ele realmente faz isso? Como ele entende textos, imagens e vรญdeos?

O que รฉ um PC - componentes principais
O que รฉ PC?

O que รฉ a Assembly Linguagem?

O computador รฉ um dispositivo eletrรดnico, portanto, ele entende apenas sinais eletrรดnicos โ€” sinais binรกrios. Um sinal eletrรดnico de 5 volts pode representar o nรบmero binรกrio 1, enquanto 0 volts podem representar o nรบmero binรกrio 0. Seu PC รฉ continuamente bombardeado por esses sinais.

Sinais binรกrios processados โ€‹โ€‹por computador

Oito bits desses sinais sรฃo agrupados para interpretar texto, nรบmeros e sรญmbolos.

Grupo de oito bitsping para texto e sรญmbolos

Por exemplo, o sรญmbolo # รฉ identificado pelo computador como 10101010. Da mesma forma, o padrรฃo para uma funรงรฃo "adicionar" รฉ representado por 10000011.

Representaรงรฃo binรกria de instruรงรตes de computador

Isso รฉ conhecido como computaรงรฃo de 8 bits. Os processadores modernos sรฃo capazes de decodificar instruรงรตes de 64 bits por vez. Entรฃo, o que esse conceito tem a ver com... JavaVamos analisar um exemplo.

Suponha que vocรช queira instruir o computador a somar dois nรบmeros (1 + 2) representados por nรบmeros binรกrios (10000011). Como vocรช comunica isso ao seu computador? Vocรช usa a linguagem assembly para executar o seu cรณdigo.

"Assembly A linguagem รฉ a forma mais elementar de linguagens de desenvolvimento de software.โ€

Vocรช emite comandos no seguinte formato. O cรณdigo para somar dois nรบmeros em linguagem assembly seria assim:

Assembly exemplo de adiรงรฃo de dois nรบmeros em linguagem

  • Armazene o nรบmero 1 no endereรงo de memรณria A.
  • Armazene o nรบmero 2 no endereรงo de memรณria B.
  • Adicione o conteรบdo dos locais A e B.
  • Armazene o resultado.

Na dรฉcada de 1950, quando os computadores eram enormes e consumiam muita energia, convertรญamos o cรณdigo assembly em cรณdigo de mรกquina correspondente (1s e 0s) usando um mapa.ping folhas. O cรณdigo era entรฃo perfurado em cartรตes de mรกquina e inserido no computador. O computador lia esses cรณdigos e executava o programa. Esse era um processo longo โ€” atรฉ a chegada da MONTADORA para automatizar a conversรฃo.

O que sรฃo montador e compilador?

Com os avanรงos tecnolรณgicos, foram inventados os dispositivos de entrada/saรญda (I/O). Vocรช podia digitar seu programa diretamente no PC usando o ASSEMBLER, que o convertia em cรณdigo de mรกquina correspondente (110001โ€ฆ) e o enviava para o processador. Voltando ao nosso exemplo 1 + 2, o montador converte o cรณdigo assembly em cรณdigo de mรกquina como saรญda.

O montador converte o cรณdigo assembly em cรณdigo de mรกquina.

Alรฉm da linguagem assembly, vocรช tambรฉm precisa chamar funรงรตes fornecidas pelo sistema operacional para exibir a saรญda.

O montador sozinho nรฃo รฉ suficiente; ele tambรฉm precisa de um COMPILADOR para compactar o cรณdigo-fonte extenso em partes menores e otimizadas. Com linguagens de desenvolvimento de software de alto nรญvel, todo o trecho de cรณdigo assembly acima se reduz a uma รบnica linha, como: printf(โ€œ%dโ€, 1+2)O compilador converte seu Linguagem C O cรณdigo รฉ convertido em cรณdigo assembly; o montador, entรฃo, converte esse cรณdigo em cรณdigo de mรกquina. transmitrelacionado ao processador. O processador mais comum usado em PCs รฉ o processador Intel.

Pipeline de compilador e montador

Os compiladores modernos geralmente incluem o montador (assembler) para que possam converter o cรณdigo de uma linguagem de alto nรญvel diretamente em cรณdigo de mรกquina.

Agora, suponha Windows Executa em um processador Intel โ€” a combinaรงรฃo de sistema operacional e processador รฉ chamada de PLATAFORMA. A plataforma mais comum รฉ Windows na Intel, tambรฉm conhecida como plataforma Wintel. Outras plataformas populares incluem AMD, Linux, PowerPC e macOS.

Com a mudanรงa de processador, as instruรงรตes de montagem tambรฉm mudam. Por exemplo:

  • A instruรงรฃo "add" na Intel pode ser chamada de ADIร‡รƒO na AMD.
  • Ou โ€œMath ADDโ€ no PowerPC.

E com uma mudanรงa no sistema operacional, o nรญvel e a natureza das chamadas em nรญvel de sistema operacional tambรฉm mudam.

Como desenvolvedor, vocรช quer que seu software funcione em todas as plataformas para maximizar o alcance. Isso significa que vocรช teria que comprar compiladores separados que convertem seu cรณdigo. printf comando para o cรณdigo de mรกquina nativo de cada alvo.

Compiladores multiplataforma

Os compiladores sรฃo caros e sempre existe o risco de problemas de compatibilidade entre sistemas operacionais. Comprar e instalar um compilador separado para cada combinaรงรฃo de sistema operacional e processador nรฃo รฉ prรกtico. Entรฃo, qual รฉ a alternativa? Apresentamos o Java lรญngua.

Como รฉ que Java Trabalho de Mรกquina Virtual?

Ao utilizar a blockchain da Java Mรกquina virtualEste problema pode ser resolvido. Mas como isso funciona em diferentes processadores e sistemas operacionais? Vamos analisar passo a passo.

Como Java A Mรกquina Virtual funciona passo a passo.

Passo 1) O cรณdigo para exibir a soma de dois nรบmeros โ€” System.out.println(1+2) โ€” รฉ salvo como um .java arquivo.

Passo 2) Com o Java compilador (javac), o cรณdigo รฉ convertido em cรณdigo intermediรกrio chamado bytecodeA saรญda รฉ um .classe arquivo.

Passo 3) Esse cรณdigo de bytes nรฃo รฉ compreendido por nenhuma plataforma fรญsica, apenas por uma plataforma virtual chamada... Java Mรกquina virtual.

Passo 4) A JVM reside na memรณria RAM do seu sistema operacional. Quando a JVM recebe esse bytecode, ela identifica a plataforma em que estรก sendo executada e converte o bytecode em cรณdigo de mรกquina nativo em tempo real.

Enquanto estiver trabalhando no seu computador ou navegando na internet, sempre que vocรช vir JavaAo usar รญcones relacionados, vocรช pode ter certeza de que a JVM estรก carregada na sua RAM. O que torna isso possรญvel? Java attracA grande vantagem รฉ que o cรณdigo compilado pode ser executado nรฃo apenas em qualquer plataforma de PC, mas tambรฉm em celulares e outros dispositivos eletrรดnicos compatรญveis. Java.

"Java รฉ uma linguagem de programaรงรฃo, bem como uma plataforma.โ€

ะšะฐะบ ะต Java Independente de plataforma?

Ao contrรกrio de um compilador C, o Java compilador nรฃo produz cรณdigo executรกvel nativo para uma mรกquina especรญfica. Em vez de, Java produz um formato intermediรกrio รบnico chamado bytecodeO bytecode รฉ executado de acordo com as regras estabelecidas na especificaรงรฃo da JVM, e รฉ por isso que Java รฉ uma linguagem independente de plataforma.

O bytecode รฉ compreensรญvel por qualquer JVM instalada em qualquer sistema operacional. Em resumo, Java O cรณdigo-fonte pode ser executado em qualquer sistema operacional moderno sem recompilaรงรฃo, o que รฉ fundamental para... JavaA promessa de "escreva uma vez, publique em qualquer lugar".

Perguntas Frequentes

O JDK รฉ o kit de desenvolvimento que contรฉm o compilador e as ferramentas. O JRE รฉ o ambiente de execuรงรฃo que inclui a JVM e as bibliotecas de classes necessรกrias para executar o cรณdigo. Java programas. A JVM รฉ o mecanismo dentro do JRE que converte bytecode em cรณdigo de mรกquina nativo em tempo de execuรงรฃo.

Sim. Travas deslizantes portรกteis Java Continua sendo altamente relevante para sistemas empresariais. Android Aplicativos, plataformas financeiras, big data e microsserviรงos. Versรตes modernas como Java 21 e Java A versรฃo 25 LTS adiciona registros, threads virtuais, correspondรชncia de padrรตes e desempenho aprimorado para manter Java competitivo.

Usuรกrios iniciantes devem instalar uma versรฃo com suporte de longo prazo (LTS). Java O SE 25, lanรงado em setembro de 2025, รฉ a versรฃo LTS mais recente, com Java 21 e Java A versรฃo 17 ainda รฉ amplamente utilizada. As versรตes LTS recebem atualizaรงรตes de seguranรงa adicionais e suporte estรกvel dos fornecedores.

A IA รฉ usada com Java Para aprendizado de mรกquina empresarial, detecรงรฃo de fraudes, sistemas de recomendaรงรฃo e chatbots. Bibliotecas como DJL, Deeplearning4j e Tribuo trazem o aprendizado profundo para a JVM, enquanto assistentes de codificaรงรฃo com IA aceleram o processo. Java Refatoraรงรฃo e geraรงรฃo de testes unitรกrios.

Sim. Os assistentes de codificaรงรฃo de IA explicam. Java Aprenda sintaxe, gere exercรญcios prรกticos, depure erros e revise o cรณdigo em tempo real. Os iniciantes se beneficiam do feedback interativo que destaca as melhores prรกticas de orientaรงรฃo a objetos, o comportamento da JVM e erros comuns que os livros didรกticos tradicionais raramente abordam.

Resuma esta postagem com: