Please enable JavaScript.
Coggle requires JavaScript to display documents.
Introdução à linguagem Java, Linguagens de Programação - Coggle Diagram
Introdução à linguagem Java
Versões
Java SE 8
Java SE 11 (LTS)
Versão com suporte de vários anos
Java SE 14
Contextualização
O que é Java?
Linguagem de programação
Regras sintáticas para escrever um programa
Plataforma de desenvolvimento e execução
Bibliotecas
Fornece um conjunto vasto de funcionalidades que podem ser usados nos aplicativos
Ambiente de execução
Para executar um programa java é necessário instalar no computador o ambiente de execução. Quem é desenvolvedor precisa instalar o kit de desenvolvimento java.
Histórico
Problemas resolvidos e motivo de sucesso
Ponteiros / gerenciamento de memória
Portabilidade falha: reescrever parte do código ao mudar o SO
Utilização em dispositivos diversos
Custo
Criada pela Sun Microsystems no meio da década de 1990
Adquirida pela Oracle Corporation em 2010
Aspectos notáveis
Código compilado para bytecode e executado em máquina virtual (JVM)
Portável, segura, robusta
Roda em vários dispositivos
Domina o mercado corporativo desde o fim do século 20
Padrão Android por muitos anos
Recentemente está sendo usado o Kotlin
Edições
Java ME - Java Micro Edition
dispositivos embarcados e móveis
Java SE - Java Standard Edition - core
desktop e servidores(Web)
JVM - Java Virtual Machine
Máquina virtual do Java - necessário para executar sistemas Java
Usada para desenvolver sistemas em Java.
Um desenvolvedor tem que instalar a JVM na máquina do cliente que vai usar o seu programa feito em Java
Java EE - Java Enterprise Edition
Aplicações corporativas
Conjunto de especificações para desenvolvimento java corporativo
Estrutura de uma aplicação Java
Java é uma linguagem orientada a objetos
A unidade lógica básica de uma linguage OO é a classe
Pacote é um agrupamento lógico de classes relacionadas
Entities
Exemplos: produto, cliente, pedido
Services
Serviço de e-mail, serviço de pedido
Repositories
Classes para acessar os dados
Módulo é um agrupamento lógico de pacotes relacionados
Financial
Graphics
Agrupamento lógico
Nível conceitual e a nível de código
Agrupamento físico
Runtime - representa a compilação dos agrupamentos lógicos, ou seja, a build gerada, representada por arquivos, que pode ser instalada para rodar nos dispositivos
Aplicação é um agrupamento de módulos relacionados
Sistema de comércio eletrônico composto de diversos módulos
Linguagens de Programação
Compiladas: C, C++
Usa um compilador que é um programa utilitário que transforma o código fonte escrito pelo programador em um código compilado que pode ser executado pelo computador
É necessário um compilador para cada Sistema Operacional que gere um executável do código fonte específico
Problema
Portabilidade: nem sempre o mesmo código fonte funcionará para diferentes SO (talvez precise de adaptações)
Vantagem: execução muito rápida
Menos susceptível a bugs - o compilador ajuda a identificar os bugs
Interpretadas: PHP, JavaScript
Usa um interpretador que é um utilitário que pega um código fonte e gradualmente o interpreta e transforma-o em código executável
Uma linguagem interpretada distribui um interpretador para cada SO
Permite que o mesmo código, sem adaptação, execute em SO diferentes.
A análise do código e geração do executável é feita em tempo de execunção (Just in time) - os programas tendem a ser mais lentos
Mais flexíveis em relação a portabilidade e manutenção
Mais difícil de programar - mais relaxada e tipagem mais fraca - pode levar a erros se não for feita corretamente
Pré-compiladas + máquina virtual: Java, C#
O código fonte é pré-compilado e o código gerado é executado pela máquina virtual
O código fonte passa por um pré-compilador que gera o bytecode
Bytecode: representação intermediária do código, já compilada e, portanto, garantida que está correta do ponto de vista sintático
O bytecode é rodado em uma máquina virtual
Compilação just-in-time (JIT) - mais rápido que a interpretação
Para cada SO existe uma máquina virtual
Abordagem híbrida entre a compilação e interpretação
Portabilidade: o mesmo bytecode pode ser executado em qualquer máquina virtual