As certificações em geral são consideradas um bom diferencial na hora de uma entrevista de emprego, ainda mais quando os candidatos possuem níveis de experiência semelhantes. Portanto, certificações sempre incrementam o nosso currículo e também o nosso conhecimento.

A Oracle possui diversas certificações da tecnologia Java. Porém, para tirar as certificações devemos primeiramente tirar a certificação Oracle Certified Associate Java SE Programmer. Essa certificação é pré-requisito para a próxima certificação Oracle Certified Professional Java SE Programmer. Se não tivermos a certificação Oracle Certified Associate Java SE Programmer não é possível evoluir nas certificações. Esse é um diferencial para as certificações antigas da Sun, onde não era necessário tirar a certificação SCJA (Sun Certified Java Associate) para obter uma certificação SCJP (Sun Certified Java Professional).

Atualmente a OCA é baseada no Java 7 e é composta por 90 questões com 2h30min de duração para responder toda a prova. Todas as questões são múltipla escolha e drag-and-drop onde arrastamos blocos de respostas em locais corretos para preencher as lacunas corretamente. O mínimo necessário para a aprovação é acertar 75% da prova, ou seja, 68 questões. A prova custa atualmente R$326,00 que pode ser comprado com cartão de crédito internacional no site da Oracle. Ao final da prova será gerado o resultado que dirá o número de questões corretas, a porcentagem em cada tópico e uma porcentagem total e por fim se o candidato passou ou não.

De forma geral a prova OCA é dividida em 8 seções, são elas:

  • Básico sobre Java
  • Trabalhando com Tipos em Java
  • Utilizando Operadores e Condicionais
  • Criando e Utilizando Arrays
  • Usando Loops
  • Trabalhando com Métodos e Encapsulamento
  • Trabalhando com Herança
  • Manipulando Exceções

Para mais informações sobre as certificações Java basta visitarmos o site oficial da Oracle que possui as principais informações sobre cada uma das certificações (link no final do artigo).

Neste artigo nos concentraremos em pontos específicos da certificação OCA. Entre os tópicos estudados veremos o que é Java, o que é o processo de desenvolvimento orientado a objetos, e quais tipos de aplicações Java existem atualmente.

Portanto, estes são alguns dos tópicos fundamentais estudados na certificação OCA. Em outros artigos continuaremos cobrindo os tópicos restantes para a certificação OCA.

Entendendo o Java

A linguagem Java foi especificada em meados de 1990 pela empresa Sun Microsystems. Porém, antes da especificação criada pela Sun Microsystems, três cidadãos chamados Patrick Naughton, Mike Sheridan, e James Gosling foram os inventores originais do Java e a linguagem foi chamada de Oak no inicio.

O Java é uma linguagem orientada a objetos independente de plataforma e é interpretada após ser compilada. Java também se caracteriza por ter uma sintaxe e estrutura semelhante às linguagens C e C++ e por executar operações checadas em tempo de compilação e de execução. Java também executa um gerenciamento automático de memória que ajuda a reduzir muitos problemas encontrados em outras linguagens como C que devemos alocar e sempre desalocar objetos manualmente da memória.

Java suporta outras diversas características como threading, segurança, networking e desenvolvimento de Interface Gráfica com o Usuário (GUI).

Uma característica bastante importante do Java é que ela usa um bytecode que é independente de arquitetura. Esse bytecode é interpretado e executado por uma Java Virtual Machine (JVM). O diagrama da Figura 1 mostra os diversos lançamentos e outros momentos importantes do Java.

Figura 1. Histórico do Java ao longo dos anos.

Desenvolvimento Orientado a Objetos

A orientação a objetos (OO) é um dos principais aspectos do Java. Este é um paradigma bastante popular para o desenvolvimento de aplicações. O paradigma orientado a objetos modela uma aplicação como uma série de objetos do mundo real.

Para ajudar os desenvolvedores a criarem aplicações orientadas a objetos é sempre aconselhável fazermos uma análise e um projeto da nossa aplicação. A UML através dos seus diagramas de classes nos auxilia na criação de uma aplicação OO.

Três conceitos bastante importantes que precisamos saber é que uma linguagem orientada a objetos suporte três princípios básicos, são eles:

  • Encapsulamento: Preocupa-se em esconder informações irrelevantes dos usuários de uma classe, expondo apenas o que é relevante. O encapsulamento reduz o nível de complexidade no desenvolvimento de software. Isso torna a aplicação mais simples. Para atingir o encapsulamento em Java utilizamos modificadores de acesso como public, private e protected.
  • Herança: É o relacionamento entre duas classes onde uma das classes reutilizará as capacidades da outra classe. Assim conseguimos o reuso de software o que resulta em uma maior produtividade dos desenvolvedores.
  • Polimorfismo: Fazendo uma analogia com o nosso cotidiano o polimorfismo é quando a mesma "palavra" ou "frase" pode significar coisas diferentes em diferentes contextos. Na ideia da programação o polimorfismo se dá, por exemplo, quando temos duas ou mais classes com um método chamado "entrada" com cada método "entrada" fazendo a coisa correta e específica para a classe na qual ele está. Dessa forma, um método "entrada" poderia fornecer um número diferente do mesmo método "entrada" em outra classe.

Tipos de Aplicações Java

Java possui diversos tipos de aplicações que tem contribuído em diferentes áreas. Java atualmente é utilizado para desenvolver:

  • Aplicações baseadas em Console e Janelas;
  • Aplicações Web baseadas em Servidor suportadas por Servlets, JSPs, JSF e outras tecnologias baseadas no padrão JEE;
  • Aplicações executadas dentro de um browser chamadas de Applets;
  • Aplicações embutidas;
  • Aplicações JavaBeans.

Conhecer os tipos básicos de aplicações do Java é bastante útil como uma forma de nos contextualizarmos e ajudar aos desenvolvedores a reconhecer certos tipos de aplicações. Para isso precisamos entender pelo menos o básico dos códigos dessas aplicações.

Aplicações baseados em Console possuem o código da Listagem 1.

Listagem 1. Estrutura básica

public class Application {
           public static void main(String[] args) {
                     //corpo do metodo main
           }
  }

Os applets normalmente são embutidos dentro de uma página HTML. O código da Listagem 2 mostra como é normalmente uma aplicação Applet.

Listagem 2. Estrutura de uma aplicação applet

import java.applet.*;
  import java.awt.Graphics;
  public class SimpleApplet extends Applet {
           @Override
           public void init() {
                     //Codigo de inicialização
           }
   
           @Override
           public void paint( Graphics g ) {
                     //Mostra Gráficos na tela
           }
  }

Podemos notar que não há um código main, mas métodos de callback são utilizados para gerenciar a aplicação.

Um Servlet é uma aplicação do lado servidor que renderiza uma página HTML para o cliente. Os métodos doGet e doPost são utilizados para responder a requisições do cliente. A variável “out” representa a página HTML. O método “println” é utilizado para escrever código HTML. A Listagem 3 demonstra um exemplo.

Listagem 3. Exemplo println

class Application extends HttpServlet {
           public void doGet(HttpServletRequest req, 
            HttpServletResponse res) 
              throws ServletException, IOException {
                     res.setContentType("text/html");
                     PrintWriter out = res.getWriter();
                     out.println("<HEAD><TITLE> Exemplo de Servlet 
                        </TITLE></HEAD><BODY>");
                     out.println("<h1> Hello World! </h1>");
                     out.println("<P>Exemplo de saída de 
                      um Servlet Simples.");
                     out.println("</BODY>");
                     out.close();
           }
  }

Os JSPs (JavaServer Page) disponibilizam um modo mais conveniente para o desenvolvimento de páginas web. O exemplo da Listagem 4 utiliza um JavaBean para mostrar uma mensagem na tela.

Listagem 4. Exemplo JavaBean

<html>
           <head>
                     <title>A Simple JSP Page</title>
           </head>
   
           <body>
                     Hello World!<br/>
                     <%
                        // Este é um exemplo de um scriptlet 
                         // que pode conter qualquer código Java.
                     %>
   
                     <hr>
   
                     <jsp:useBean id="namebean" class="packt.NameBean"
                          scope="session" >
                              <jsp:setProperty name="namebean" 
                                    property="name" value=" Hello world""/>
                     </jsp:useBean>
   
                     <h1> <jsp:getProperty name="namebean" 
                          property="name" /></h1>
           </body>
  </html>

Na Listagem 5 segue um exemplo de um JavaBean que contém o nome de um usuário.

Listagem 5. Exemplo de JavaBean (2)


  package packt;
  public class NameBean {
           private String name= "Default Name"";
   
           public String getName() {
                     return this.name;
           }
   
           public void setName(String name) {
                     this.name = name;
           }
  }

Os componentes EJB (Enterprise Java Beans) também são extensamente utilizados. O EJBs é utilizado em configuração cliente/servidor de um servidor web. Este é um tópico mais avançado e não relevante no nível Associate de certificação. Existem também outras tecnologias como JSF e Facelets que são partes do JEE, porém são melhorias dos Servlets e JSPs. Entre todas essas aplicações mostradas acima o mais importante é saber como funciona uma aplicação Console, as outras aplicações são importantes apenas para conhecimento e caso algum código pequeno seja utilizado no exame.

Com isso, neste artigo vimos quais são as certificações Java existentes e alguns detalhes específicos da certificação OCA. Também estudamos alguns tópicos que serão cobrados no exame. Por fim, vale a ressalva que a prova é em inglês, portanto uma última sugestão é fazer simulados na língua inglesa. Existem muitos simulados disponíveis, no entanto, o inglês cobrado é bastante simples e não encontraremos maiores problemas.

Bibliografia

[1] Finegan, E. e Liguori. R. OCA Java SE 7 Programmer I Study Guide.

[2] Reese, R. M. Oracle Certified Associate Java SE 7 Programmer Study Guide. Packt Publishing, 2012.

[3] Certificação da Oracle - http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=458&get_params=p_track_id:JSE7Prog