Teoria
Iniciando no nosso entendimento sobre o que é Java, podemos saber que estamos falando:
- Tanto de uma linguagem de programação de alto nível;
- Quanto de uma plataforma.
Java como linguagem de programação
Quanto ser uma linguagem, Java possui as seguintes características-chave:
- Simples, familiar e orientada a objetos;
- Arquitetura neutra e portável;
- Robusta e segura;
- Interpretada, multi-thread e dinâmica;
- De alto desempenho.
Simples, familiar e orientada a objetos
- Simples:
- A linguagem Java é baseada nas linguagens C e C++;
- Porém mais simplificada;
- A linguagem Java é baseada nas linguagens C e C++;
- Familiar:
- Programadores de C/C++ não terão problemas para aprender Java; e
- Orientada a objetos:
- A linguagem Java suporta os conceitos da orientação a objetos.
Arquitetura neutra e portável
- Arquitetura neutra:
- Para acomodar a diversidade de ambientes operacionais:
- O compilador gera bytecodes;
- É um formato intermediário e de arquitetura neutra projetado para transportar o código de forma eficiente para múltiplas plataformas de hardware e software;
- O compilador gera bytecodes;
- É uma parte do conceito da sua portabilidade;
- Para acomodar a diversidade de ambientes operacionais:
- Arquitetura portável:
- As aplicações feitas nesta linguagem são as mesmas em todas as plataformas; e
- Não existem incompatibilidades de tipos de dados em diferentes arquiteturas de hardware e software.
Robusta e segura
- Robusta:
- Há forte ênfase na linguagem Java:
- Tanto na verificação antecipada de possíveis problemas;
- Em tempo de compilação;
- Quanto na verificação tardia para eliminação de situações propensas a erros;
- Em tempo de execução; e
- Tanto na verificação antecipada de possíveis problemas;
- Há forte ênfase na linguagem Java:
- Segura:
- A tecnologia Java permite construir aplicações que não podem ser invadidas;
- Com recursos de segurança projetados para a linguagem.
- A tecnologia Java permite construir aplicações que não podem ser invadidas;
Interpretada, multi-thread e dinâmica
- Interpretada:
- O interpretador Java pode executar bytecodes diretamente em qualquer máquina que tenha:
- Interpretador Java (JVM); e
- Sistema de tempo de execução (JRE);
- O interpretador Java pode executar bytecodes diretamente em qualquer máquina que tenha:
- Multi-thread:
- A linguagem Java fornece meios de criar aplicações com várias threads simultâneas; e
- Dinâmica:
- A natureza portável e interpretada da linguagem Java produz um sistema dinâmico e dinamicamente extensivo.
Java como plataforma
Antes de falarmos sobre a plataforma Java, precisamos saber o que é uma plataforma. Plataforma é um hardware ou um ambiente de software onde um programa é executado.
Boa parte das plataformas pode ser descrita como uma combinação:
- De um sistema operacional; e
- Com o hardware que o suporta.
Como exemplos de plataformas, temos:
- Microsoft Windows;
- Linux;
- Mac OS.
Vamos entender o que é a Plataforma Java.
Ela é um ambiente de software onde os programas escritos na linguagem Java são executados. Essa plataforma é composta por dois componentes:
- JVM:
- Java Virtual Machine; e
- API:
- Java Application Programming Interface:
- É uma biblioteca de componentes que:
- Possui vários recursos úteis; e
- É utilizada para execução de aplicações Java.
Java é uma linguagem de programação que permite o desenvolvimento de aplicações em diversos ambientes e, para isso, a tecnologia em questão é dividida em quatro edições ou plataformas:
- Java SE:
- Java Standard Edition;
- Java EE:
- Java Enterprise Edition;
- Java ME:
- Java Micro Edition; e
- JavaFX:
- Plataforma de software multimídia.
Cada plataforma fornece:
- Uma máquina virtual; e
- Uma API.
Começaremos pela a edição padrão: Java SE (Standard Edition). Sua API fornece a funcionalidade principal da linguagem Java.
A Java SE é a plataforma principal e é a base para:
- Java EE;
- Java ME; e
- JavaFX.
A edição padrão define:
- Desde os tipos básicos e objetos da linguagem Java;
- Até classes de alto nível que são usadas para:
- Redes;
- Segurança;
- Acesso à base de dados;
- Desenvolvimento de interface gráfica para usuário (GUI); e
- Análise de XML.
A Java SE é bastante utilizada para o desenvolvimento de aplicações desktop com interface:
- Gráfica, com as bibliotecas:
- Swing; e
- AWT; e
- Através de linha de comando.
Finalizando, a Java SE consiste:
- Da API;
- De uma máquina virtual;
- De ferramentas de desenvolvimento; e
- De outras bibliotecas de classes e kits de ferramentas comumente usados em aplicativos em Java.
A Java EE (Enterprise Edition), por sua vez, é construída em cima da plataforma Java SE e fornece uma API e ambiente de tempo de execução para desenvolvimento e execução de aplicações distribuídas baseadas em Internet e Intranet:
- De grande escala;
- Multi-camadas;
- Escaláveis;
- Confiáveis; e
- Seguras.
Já a edição Java ME (Micro Edition) fornece uma API e uma pequena máquina virtual para desenvolvimento e execução de aplicações para pequenos dispositivos, por exemplo:
- Telefones celulares;
- Palmtops;
- Tablets.
A API Java ME é um subconjunto da API Java SE, juntamente com bibliotecas de classes especiais úteis para o desenvolvimento de aplicações para pequenos dispositivos. Ou seja, além da API Java ME possuir algumas classes da API Java SE, aquela possui também classes especiais citadas acima.
Finalizando sobre essa edição, as aplicações Java ME são muitas vezes clientes de serviços da plataforma Java EE. Aquelas aplicações podem acessar serviços feitos com a Java EE.
A última edição é a JavaFX. Ela é uma plataforma para a criação de aplicações ricas para internet usando uma API leve de interface para usuário. Essas aplicações podem ser executadas em vários dispositivos diferentes:
- Desktop;
- Browser; e
- Telefone celulares.
As bibliotecas JavaFX são instaladas como parte do Java SE.
As aplicações JavaFX, assim como as aplicações Java ME, são muitas vezes clientes de serviços da plataforma Java EE.
Revisando:
- Java SE:
- É bastante usada para desenvolvimento de aplicações com interface gráfica ou através de linha de comando; e
- É a base para as edições Java EE, Java ME e JavaFX;
- Java EE:
- É usada para criação de aplicações distribuídas baseadas em Internet e Intranet;
- Java ME:
- É usada para construção de aplicações para dispositivos móveis; e
- JavaFX:
- É usada para construção de aplicações ricas para Internet usando uma API leve de interface para usuário;
- Essas aplicações podem ser executadas em vários dispositivos diferentes.
- É usada para construção de aplicações ricas para Internet usando uma API leve de interface para usuário;
Questões de concursos
(Quadrix 2018 CRM/PR – Programador de Tecnologia da Informação) Acerca dos conceitos e padrões Java e JavaScript, julgue o item a seguir.
O Java EE é um subconjunto da plataforma Java SE (Standard Edition) destinado ao desenvolvimento de sistemas para pequenos dispositivos, como os smartphones.
Comentários
As bancas costumam a fazer questões onde citam uma descrição de uma tecnologia relacionando com outra. No caso, a descrição trata da plataforma Java ME e não Java EE.
Revisando:
- Java SE:
- É bastante usada para desenvolvimento de aplicações com interface gráfica ou através de linha de comando; e
- É a base para as edições Java EE, Java ME e JavaFX;
- Java EE:
- É usada para criação de aplicações distribuídas baseadas em Internet e Intranet;
- Java ME:
- É usada para construção de aplicações para dispositivos móveis; e
- JavaFX:
- É usada para construção de aplicações ricas para Internet usando uma API leve de interface para usuário;
- Essas aplicações podem ser executadas em vários dispositivos diferentes.
- É usada para construção de aplicações ricas para Internet usando uma API leve de interface para usuário;
Gabarito: ERRADO.
(FCC 2011 TRE/RN – Técnico Judiciário – Especialidade Programação de Sistemas – Questão 30) Em relação ao Java Standard Edition, é INCORRETO afirmar:
[A] Permite o desenvolvimento de aplicações desktop de linha de comando e interfaces gráficas Swing.
[B] Portabilidade dos programas compilados para diversos sistemas operacionais, sem necessidade de recompilação.
[C] Usa conceitos tais como orientação a objetos e multithreading.
[D] Possui gerenciamento de memória embutido, por meio do coletor de lixo.
[E] JME Ambiente indicado para o desenvolvimento de aplicativos para dispositivos móveis ou portáteis.
Comentários:
Letra A: “Permite o desenvolvimento de aplicações desktop de linha de comando e interfaces gráficas Swing”.
CERTO. Vimos que é uma das principais utilizações da Java SE.
Letra B: “Portabilidade dos programas compilados para diversos sistemas operacionais, sem necessidade de recompilação”.
CERTO. Entre as características-chave da linguagem Java, encontramos a portabilidade. Relembrando, Java é tanto uma plataforma quanto uma linguagem. Em relação a ser uma linguagem, Java possui portabilidade. A linguagem Java vem junto com a API do Java SE que é base para Java EE, Java ME e JavaFX.
Letra C: “Usa conceitos tais como orientação a objetos e multithreading”.
CERTO. São duas outras características-chave da linguagem Java.
Letra D: “Possui gerenciamento de memória embutido, por meio do coletor de lixo”.
CERTO. É a função do Garbage Collector.
Letra E: “JME Ambiente indicado para o desenvolvimento de aplicativos para dispositivos móveis ou portáteis”.
ERRADO. A questão fala sobre a edição padrão, ou seja, Java SE, mas a letra E descreve a edição micro ou Java ME. Por isso o erro.
Apenas finalizando, a Java ME é uma edição separada da SE, apesar da ME ser um subconjunto da SE.
Gabarito: letra E.
(FCC 2009 TCE/SP – Agente da Fiscalização Financeira – Informática – Suporte de Web – Questão 75) A tecnologia Java é, basicamente, dividida em JSE,
[A] JEE e JME.
[B] JEE e JPE.
[C] JDE e JME.
[D] JDE e JPE.
[E] JEEP e JME.
Comentários:
Sabemos que temos quatro edições ou plataformas:
- Java SE:
- É bastante usada para desenvolvimento de aplicações com interface gráfica ou através de linha de comando; e
- É a base para as edições Java EE, Java ME e JavaFX;
- Java EE:
- É usada para criação de aplicações distribuídas baseadas em Internet e Intranet;
- Java ME:
- É usada para construção de aplicações para dispositivos móveis; e
- JavaFX:
- É usada para construção de aplicações ricas para Internet usando uma API leve de interface para usuário;
- Essas aplicações podem ser executadas em vários dispositivos diferentes.
- É usada para construção de aplicações ricas para Internet usando uma API leve de interface para usuário;
A letra mais próxima que podemos marcar é a letra A, entretanto, a questão é de 2009 e a JavaFX veio recentemente. Então a questão está correta para a época.
Gabarito: letra A.
(FCC 2006 Prefeitura de Santos/SP – Analista de Sistemas – Questão 54) Java é, tipicamente, uma linguagem de programação
[A] orientada a função.
[B] executável somente sob ambiente xml.
[C] orientada a evento.[D] orientada a objeto.
[E] executável somente após a tag declarativa de Javascript.
Comentários:
Quanto ser uma linguagem, Java possui as seguintes características-chave:
- Simples, familiar e orientada a objetos;
- Arquitetura neutra e portável;
- Robusta e segura;
- Interpretada, multi-thread e dinâmica;
- De alto desempenho.
A única letra que contém uma dessas características é a letra D: orientada a objeto.
Gabarito: letra D.
(CESPE 2019 TJ/AM – Assistente Judiciário – Programador) Julgue o item que se segue.
A plataforma de desenvolvimento Java SE dispõe de um ambiente para criação e execução de aplicações em Java, incluindo a máquina virtual Java (JVM), o compilador e diversas API; a plataforma Java EE, por sua vez, dispõe de funcionalidades para desenvolvimento e execução de aplicações em um ambiente corporativo, incluindo as funcionalidades da plataforma Java SE.
Comentários:
A questão foi excelente para a conceituação do Java SE e do Java EE:
- Java SE: “A plataforma de desenvolvimento Java SE dispõe de um ambiente para criação e execução de aplicações em Java, incluindo a máquina virtual Java (JVM), o compilador e diversas API”; e
- Java EE: “… dispõe de funcionalidades para desenvolvimento e execução de aplicações em um ambiente corporativo, incluindo as funcionalidades da plataforma Java SE”.
Questão totalmente certa.
Gabarito: CERTO.
(CESPE 2018 CGM de João Pessoa/PB – Auditor Municipal de Controle Interno – Desenvolvimento de Sistemas) Acerca de padrões de projeto, JSE e JME, julgue o item a seguir.
A JSE é bastante utilizada no desenvolvimento web, especialmente em aplicações que utilizam HTTP; a JEE, por sua vez, é voltada para a criação de interface desktop com o uso de Swing e similares.
Comentários:
Com a questão anterior, podemos chegar a conclusão de que esta está errada. Vejamos:
- Qual plataforma é bastante utilizada no desenvolvimento web, especialmente em aplicações que utilizam HTTP?
- Java EE!
- Ela é usada para criação de aplicações distribuídas baseadas em Internet e Intranet;
- Java EE!
- Qual plataforma é voltada para a criação de interface desktop com o uso de Swing e similares?
- Java SE!
- É bastante usada para desenvolvimento de aplicações com interface gráfica ou através de linha de comando.
- Java SE!
Então houve uma inversão de conceitos entre o Java SE e Java EE, o que torna a questão errada.
Gabarito: ERRADO.
(CESPE 2018 CGM de João Pessoa/PB – Auditor Municipal de Controle Interno – Desenvolvimento de Sistemas) Acerca de padrões de projeto, JSE e JME, julgue o item a seguir.
A JME oferece um ambiente robusto e flexível para aplicativos executados em dispositivos móveis e integrados cuja capacidade de memória, de vídeo e de processamento são limitados, tais como set-top boxes e reprodutores de discos blu-ray.
Comentários:
Questão interessante sobre Java ME, explicando mais sobre essa edição.
Gabarito: CERTO.
(CESPE 2015 TJDFT – Analista Judiciário – Analista de Sistemas) A linguagem Java, amplamente utilizada em programação web, permite que o desenvolvedor seja independente de fornecedores de software, uma vez que Java é um software livre. Com referência a esse assunto, julgue o item subsecutivo.
À plataforma Java EE (Java Enterprise Edition), que é uma extensão da plataforma Java SE (Java Standard Edition), foram adicionadas, entre outras funcionalidades, bibliotecas para implementação de software Java distribuído, tolerante a falhas e multicamada.
Comentários:
A questão traz uma explicação da Java EE.
Gabarito: CERTO.
(CESPE 2013 ANTT – Cargo 7) Acerca das tecnologias de mercado, julgue o item abaixo.
JSE, JME, JEE e JCE são edições da tecnologia Java voltadas para o desenvolvimento de aplicações para desktop/servidores, dispositivos móveis, ambientes corporativos e ambientes em nuvem, respectivamente.
Comentários:
Temos quatro edições ou plataformas Java: SE, EE, ME e FX.
A questão citou uma edição inexistente: JCE, para o desenvolvimento de aplicações para ambientes em nuvem. No lugar dela, colocaremos o JavaFX, para construção de aplicações ricas para Internet usando uma API leve de interface para usuário; aplicações essas que podem ser executadas em vários dispositivos diferentes.
Corrigindo a questão:
“JSE, JME, JEE e JCE JavaFX são edições da tecnologia Java voltadas para o desenvolvimento de aplicações para desktop/servidores, dispositivos móveis, ambientes corporativos e ambientes em nuvem vários dispositivos diferentes, respectivamente”.
Gabarito: ERRADO.
(CESPE 2010 INMETRO – Cargo 16) Com relação às diferentes edições de Java, assinale a opção correta.
[B] JSE incorpora as classes da edição JME.
Comentários:
A API Java ME é um subconjunto da API Java SE, juntamente com bibliotecas de classes especiais úteis para o desenvolvimento de aplicações para pequenos dispositivos. Ou seja, além da API Java ME possuir algumas classes da API Java SE, aquela possui também classes especiais citadas acima.
O texto diz que JSE incorpora AS classes da edição JME. O examinador usou o artigo definido no plural “as”. O que significa isso? Artigos definidos determinam os substantivos de maneira precisa: o, a, os, as. Com isso, podemos entender que o examinador quis dizer que JSE incorpora TODAS AS classes da edição JME.
Além de tecnologia, temos que estar com a Língua Portuguesa em dia. 😃
Corrigindo a questão:
“JSE incorpora as algumas classes da edição JME. Além dessas, a JME também possui bibliotecas de classes especiais úteis para o desenvolvimento de aplicações para pequenos dispositivos”.
Gabarito: ERRADO.
(CESPE 2010 INMETRO – Cargo 16) Com relação às diferentes edições de Java, assinale a opção correta.
[D] JEE é um conjunto de APIs para programação de aplicações empresariais, que incorpora as classes contidas nas edições JSE e JME.
Comentários:
A edição que é a base para as outras é a Java SE. Apenas ela.
Corrigindo a questão:
“JEE é um conjunto de APIs para programação de aplicações empresariais, que incorpora as classes contidas nas edições na edição JSE e JME”.
Gabarito: ERRADO.
(CESPE 2010 INMETRO – Cargo 16) Com relação às diferentes edições de Java, assinale a opção correta.
[E] JEE introduz diretamente os packages javax.xml.stream, javax.ejb e javax.swing, os quais não existem no JSE.
Comentários:
Um dos usos mais frequentes da edição Java SE é para o desenvolvimento de aplicações desktop com interface:
- Gráfica, com as bibliotecas:
- Swing; e
- AWT; e
- Através de linha de comando.
Tirando o fato se JEE possui esses pacotes, temos a certeza que a Java SE possui o pacote javax.swing.
Gabarito: ERRADO.
(CESGRANRIO 2012 LIGUIGAS – Profissional Júnior – Tecnologia da Informação – Análise de Sistemas) Uma certa tecnologia Java foi projetada para permitir que desenvolvedores criem facilmente aplicações Web com interfaces ricas (RIAs) que se comportem de forma consistente em múltiplas plataformas. Essa tecnologia é a
[A] JavaServer Faces
[B] JavaFX
[C] JSP
[D] EJB
[E] JRE
Comentários:
A última edição é a JavaFX. Ela é uma plataforma para a criação de aplicações ricas para internet usando uma API leve de interface para usuário. Essas aplicações podem ser executadas em vários dispositivos diferentes:
- Desktop;
- Browser; e
- Telefone celulares.
Então o enunciado da questão está falando da JavaFX.
Gabarito: letra B.
Então é isso!
[]s e até a próxima!
_________________________
Professor Rogerão Araújo