Você está na página 1de 70

Desenvolvimento de Sistemas TCU

Aula 00 - Teoria e Exerccios Comentados


Prof. Jnior Martins


www.tiparaconcursos.net Pgina 1 de 70
AULA 00: Demonstrativa
1. Sumrio
1. Sumrio ............................................................................................................................ 1
1. Apresentao. .................................................................................................................. 5
1.1. A Banca. ........................................................................................................................... 5
1.2. Metodologia das aulas. .................................................................................................... 5
2. Contedo programtico e planejamento das aulas (Cronograma). ................................ 6
3. Linguagem de programao JAVA ................................................................................... 9
4. Questes Comentadas ................................................................................................... 37
5. Lista de Questes Utilizadas na Aula ............................................................................. 59
6. Gabaritos ........................................................................................................................ 70


Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 2 de 70
Ol turma,
Primeiramente, gostaria de agradecer o convite do TiParaConcursos.net para integrar esta
renomada equipe de professores. Mais uma vez, professor Gabriel Pacheco, agradeo o
convite e renovo meu compromisso em corresponder altura do nome conquistado por
vocs. Coloco-me disposio de vocs e dos nossos alunos para que possamos, juntos,
construir um curso que faa a diferena na aprovao. Afinal, este nosso objetivo
principal, no mesmo?
Agora, caros alunos, apresento-me a vocs. Sou o professor Jnior Martins (Atades Martins
Leite Jnior), 39 anos, empresrio da rea de Informtica e professor. Minha histria com a
Tecnologia de Informao bem antiga, pois j aos 12 anos de idade, conheci este mundo
apaixonante e que faz parte do meu cotidiano desde ento.
Comecei na rea estudando linguagem de programao Basic e usando um equipamento
chamado CP-300, hoje s encontrado em museus. Est achando graa? Pois , na
informtica 30 anos mais do que uma vida!
Por outro lado, a vida to dinmica aqui. Em pouco tempo tudo muda e continua sendo
absolutamente necessrio para a vida moderna. Isso nos faz estar sempre em atualizao,
sempre estudando, sempre aprendendo.
Entre um curso e outro, pensei em me formar em eletrnica, mas decidi cursar
Processamento de Dados. Estudei nas Faculdades Objetivo, na poca s existiam duas
faculdades de informtica aqui em Goinia, e foi uma das melhores decises da minha vida.
Durante o curso fui escolhido para ser monitor de laboratrio e de algumas disciplinas. E foi
trabalhando no laboratrio de informtica que descobri minha paixo pelo ensino.
A oportunidade de ser monitor foi gratificante. Descobri que o que gosto mesmo ensinar.
Mostrar os caminhos, experimentar, aprender e resolver os problemas.
Trabalhar as dvidas de colegas e de outros estudantes, mesmo aqueles que estavam ainda
iniciando, levou-me a adotar a postura de multiplicador de conhecimento na rea de
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 3 de 70
informtica, tarefa que levo muito a srio e intercalo com projetos que desenvolvo na rea
de desenvolvimento de aplicativos para desktop e web.
Estive a frente em departamentos de TI de grandes empresas como usina de lcool, colgios
da capital Goiana, um em especial que possui unidades em todo Brasil e em vrios pases,
me possibilitando trocar experincias sobre diversas situaes em vrios ambientes
tecnolgicos, tive a oportunidade de gerenciar algumas empresas de informtica onde me
possibilitou aumentar em muito meu conhecimento de hardware e software diversos.
Trabalhei na rea pblica, especialmente na Caixa Econmica, e hoje sou empresrio. Agora,
com quase 40 anos, talvez seja a hora de repensar minha estratgia e buscar um emprego
pblico novamente. Quem sabe no nos encontramos em algum certame por a?
Hoje minha especialidade o ensino para TI, especialmente para concursos pblicos, onde
posso transformar todo meu conhecimento adquirido na prtica em uma vantagem para
voc candidato que deseja sair na frente e pleitear uma vaga nos rgos pblicos.
Dentre as turmas de iniciantes que j lecionei gosto muito de destacar a turma da Terceira
Idade. uma de minhas preferidas e trouxe uma grande experincia no ensino para quem
precisa aprender, mas possui pouco conhecimento sobre computadores.
Sim, eles no esto estudando para concurso, mas aprendi muito com eles sobre as tcnicas
de ensino. Principalmente aproveitei a motivao deles, que espero encontrar em vocs
tambm. Eles podiam estar em casa, curtindo a preguia, pois j trabalharam muito na vida!
Mas no, com todas as dificuldades que a idade lhes impe, como locomoo, memria
cansada e trazer a tecnologia para o seu dia a dia, eles perseveram e dedicam a maior parte
do seu tempo a este novo mundo.
Ento candidato, perseverana e dedicao muito importante para esta sua fase de
concurseiro e no se esquea: nunca tarde para comear!.
Com toda esta experincia acumulada, e com muito prazer e alegria de fazer parte da
equipe do TiParaConcursos.net, apresento-me como seu professor de TI.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 4 de 70
Cheia de detalhes e atalhos, este tema pode ser o seu diferencial para o ingresso na carreira
pblica!
Por isso estamos aqui. Vamos estudar, juntos, TI para Concursos? Vamos comear j? Voc
no pode deixar de estudar desde hoje. importante concentrar-se em uma prova e
estudar o quanto antes.
A preparao a chave para a aprovao. Venha, comece agora. Lembre-se de que uma
questo pode ser a diferena entre um QUASE! e um merecido PASSEI!!!
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 5 de 70
1. Apresentao.
1.1. A Banca.
O CENTRO DE SELEO E DE PROMOO DE EVENTOS - CESPE, responsvel pela
organizao do concurso, trabalha suas questes no sistema de certo ou errado. Um detalhe
importante no qual voc deve estar atento quanto ao critrio de correo adotado pela
banca, onde cada resposta errada anula uma resposta certa. Portanto, evite "chutar"!
Outro ponto que me chama muito a ateno do CESPE a sua capacidade de testar o
candidato em relao ao seu conhecimento e sua capacidade de interpretao, portanto,
vamos focar nos conceitos e palavras chaves para no cairmos nestas armadilhas.

1.2. Metodologia das aulas.
a) Dividi este curso em 5 (CINCO) aulas, contando com a aula demonstrativa, alm da
teoria, em cada aula, resolverei, no mnimo, 20 questes das principais bancas do
mercado mantendo sempre o foco nas questes cobradas pelo CENTRO DE SELEO
E DE PROMOO DE EVENTOS CESPE. importante esta mescla com bancas que
trabalhem suas provas no mesmo padro, como por exemplo, a FCC, ESAF,
CESGRANRIO, entre outras. Acredito que desta forma as dvidas aparecero com
mais facilidade e o contedo seja trabalhado com mais detalhes.
b) As aulas sero disponibilizadas com uma mdia de 40 pginas, sendo possvel uma
adequao de acordo com o contedo a ser estudo, alguns exigem mais, outros
exigem menos, mas o foco sempre buscar a melhor forma de passar o todo de uma
maneira bastante tranquila e de fcil assimilao para voc.
c) Como ainda no temos disponvel a ferramenta de frum para discusso dentro do
site, todas suas dvidas podem e devem ser encaminhadas para o meu e-mail
junior.martins@tiparaconcursos.net, assim, podemos o mais rpido possvel, san-
las e os seus estudos continuarem de acordo com o cronograma que vamos
disponibilizar.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 6 de 70
2. Contedo programtico e planejamento das aulas (Cronograma).
Neste curso abordaremos os seguintes tpicos: Projeto de sistemas em Java. Arquitetura e
padres de projeto JEE v6. 2 Desenvolvimento web em Java. Servlets, JSP e Ajax.
Frameworks JSF 2.0 e Hibernate 3.5. 3 Interoperabilidade de sistemas. SOA e Web Services.
Padres XML, XSLT, UDDI, WSDL e Soap. 4 Segurana no desenvolvimento. Prticas de
programao segura e reviso de cdigo. Controles e testes de segurana para aplicaes
web. Controles e testes de segurana para Web Services.. Alguns tpicos sero tratados
com maior profundidade do que outros devido importncia e frequncia em provas.
Outros podero ser destacados em questes comentadas. De forma gradual vamos aos
trabalhos, voc ver que tudo ter o seu propsito no momento certo e ao final, o contexto
da disciplina se mostrar compreensvel da melhor maneira possvel.
As aulas sero disponibilizadas semanalmente e o cronograma previsto est no quadro a
seguir.
Aula Contedo a ser trabalhado
Aula
Demonstrativa
26/06/2014
Apresentao do Curso e Metodologia a ser aplicada.
Projeto de sistemas em Java. Arquitetura e padres de projeto
JEE v6. 2 Desenvolvimento web em Java (Parte I).
Aula 1
17/07/2014
Projeto de sistemas em Java. Arquitetura e padres de projeto JEE v6.
2 Desenvolvimento web em Java. (Parte II)
Aula 2
31/07/2014
Servlets, JSP e Ajax. Frameworks JSF 2.0 e Hibernate 3.5.
Aula 3
14/08/2014
Interoperabilidade de sistemas. SOA e Web Services. Padres XML,
XSLT, UDDI, WSDL e Soap.
Aula 4 Segurana no desenvolvimento. Prticas de programao segura e
reviso de cdigo. Controles e testes de segurana para aplicaes
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 7 de 70
28/08/2014 web. Controles e testes de segurana para Web Services.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 8 de 70
E ento, vamos iniciar nossa jornada? Nesta aula demonstrativa, quero que voc tenha
contato com a proposta deste curso e possa avaliar, com calma, minha forma de trabalho.
Aproveite para iniciar, agora, os estudos que iro promover sua aprovao no concurso.
Acredite, possvel conseguir a aprovao sem estudar, mas as chances so quase
imperceptveis. A melhor forma estudar bastante e comear antes do edital ser lanado na
praa.
Um bom material, muita dedicao e fora de vontade so os principais companheiros
daqueles que alcanam a vitria!
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 9 de 70
3. Linguagem de programao JAVA
Java uma linguagem simples, orientada a objetos, distribuda, interpretada, potente,
segura, de arquitetura neutra, portvel, de alto desempenho, multiencadeada e dinmica.
Assustado? No precisa, vamos detalhar cada uma destas caractersticas.

Simples e conciso
Apesar de os desenvolvedores do Java terem decidido que o C++ era inadequado para suas
finalidades, eles projetaram o Java o mais parecido possvel com o C++. Isso foi feito para
tornar o sistema mais familiar, mais compreensvel, e para encurtar o tempo necessrio
para aprender a nova linguagem. Na poca em que o Java foi criado, a grande maioria dos
programadores usavam o C como linguagem principal e toda a programao orientada a
objeto era feita no C++.

Orientado a Objetos
O Java uma linguagem orientada a objetos. Isso significa que ele faz parte de uma famlia
de linguagens que se concentram em definir os dados como objetos, e nos mtodos que
podem ser aplicados a esses objetos. Muitas linguagens orientadas a objetos suportam
herana mltipla, o que s vezes pode levar a uma confuso desnecessria. Pois bem! O
Java no suporta herana mltipla; como parte de sua filosofia menos mais, o Java
suporta apenas uma nica herana. Ento devemos entender da seguinte forma:
O Java permite que uma determinada classe herde de apenas uma outra classe em um
determinado momento. Evitando assim problemas de herana de classes que possuem
comportamentos contraditrios ou mutuamente excludentes..
Mas ateno! Preste muita ateno, embora o Java no suporte herana mltipla, ele
suporta classes abstratas, que podem implementar heranas mltiplas. As classes abstratas
permitem aos programadores definir mtodos para interfaces e se preocupar mais tarde
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 10 de 70
sobre como os mtodos sero implementados. Isso evita muitos dos problemas inerentes
herana mltipla real, enquanto ainda mantm muitas das vantagens.
Cada classe, seja abstrata ou no, define o comportamento de um objeto atravs de um
conjunto de mtodos. Todo o cdigo usado para o Java dividido em classes. Os
comportamentos podem ser herdados de uma classe para a seguinte, sendo que a classe
mais alta na hierarquia se chama Objeto.

Distribudo
O termo distribudo descreve o relacionamento entre objetos de sistema, estejam esses
objetos em sistemas remotos ou locais. Aplicativos em Java e applets possuem esta
vantagem, eles podem abrir e acessar objetos dentro da Web atravs de URLs com a mesma
facilidade com que podem acessar um sistema de arquivos local.

Interpretado (e COMPILADO)
Pois bem, o Java na realidade tanto interpretado quanto compilado. Mesmo que pelo
menos 20% do cdigo Java seja interpretado pelo navegador, estes 20% so muito
importantes. Tanto a segurana do Java quanto a capacidade de ser executado em vrias
plataformas vm do fato de que as etapas finais so tratadas localmente, ou seja,
interpretadas.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 11 de 70

A figura acima mostra todo o processo de compilao e interpretao, que tem as seguintes
etapas:
O compilador transforma o programa fonte em bytecodes.
Bytecodes so instrues compreendidas pela Mquina Virtual Java
A Mquina Virtual Java (JVM) um interpretador, que transforma as instrues em
linguagem de mquina.
Escreva uma vez e execute em qualquer lugar Write once, run anywhere um
slogan criado pelo Sun Microsystem para ilustrar a portabilidade da linguagem Java.

Observe a figura abaixo, ela detalha o ambiente Java tpico.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 12 de 70

Consistente
Ser consistente ser confivel. Quanto mais consistente for a linguagem, menos provvel
ser que os programas escritos nela apresentem algum tipo de problema, como por
exemplo: congelamentos ou apresentar bugs. Em termos simpres, o Java no pode fazer
com que os programas congelem. Isso obviamente um recurso, j que falhas desse tipo
so prejudiciais. Um programa em Java no pode congelar o sistema porque no tem
permisso para acessar toda a memria do computador. (Guarde Isso!). Os programas
escritos em Java possuem uma limitao essencial para o acesso a memria, eles so
capazes de acessar apenas uma rea restrita, no podendo assim alterar um valor que no
deva ser mudado.

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 13 de 70
Seguro
Com a consistncia e o fato de que o Java interpretado e tambm compilado, auxiliam a
segurana. Por exemplo: o fato dos programas em Java no poderem acessar a memria
significa que eles podem ser executados com segurana. Segundo Alexander Newman et al.
o Java seguro porque foi projetado para ser seguro..

Independente de Arquitetura
Os desenvolvedores do Java, sabendo que se ele suportasse aplicativos em redes, teria que
suportar uma srie de sistemas com diversas arquiteturas de CPU e de sistema operacional.
Pensando nesta possibilidade, um aplicativo em Java pode ser executado em qualquer parte
da rede ou da Internet, graas ao seu compilador, que gera um formato de arquivo de
objeto neutro em relao arquitetura o cdigo compilado executvel em muitos
processadores, desde que o processador esteja sendo executado em um navegador que
suporte o Java.
A grande vantagem de um programa uma vez escrito em Java que ele permanece escrito.
Ele no precisa ser recompilado para cada plataforma diferente. A linguagem Java a
mesma em todos os computadores. No existe um Java para Windows, um Java para Linux
ou muito menos um Java para Macintosh.

Portabilidade
A neutralidade da arquitetura do Java torna o conceito de portar de uma plataforma para
outra um pouco redundante. Mas alm de possuir independncia de plataforma, o uso que
o Java faz dos padres para tipos de dados elimina os aspectos dependentes de
implementao da especificao que so encontrados em C e C++.
Alm disso, o prprio sistema Java foi elaborado para ser portvel. O Javac, o compilador do
Java, escrito em Java, e o ambiente em run-time escrito em ANSI C com um limite de
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 14 de 70
portabilidade, que essencialmente interpretado em POSIX. O INTERPRETADOR DO Java
pode executar cdigos de bytes Java diretamente em qualquer mquina para a qual ele tiver
sido portado.
O linker tambm facilita o processo de depurao. Como so transportadas mais
informaes de tempo de compilao em run-time como parte do fluxo de cdigo de bytes,
o linker capaz de verificar tipos. A verificao dinmica de tipos tambm melhora a
depurao.
Linker - faz parte do ambiente de run-time. Ele entende o sistema de tipo do Java e,
durante a execuo, repete muitas das verificaes de tipos feitas pelo compilador
para evitar problemas de incompatibilidade de verses.

Multiencadeado
Um aplicativo multiencadeado um aplicativo capaz de lidar com muitas aes
simultaneamente. O multithreading, ou multithead, o modo como eles conseguem isso.
Mas o que significa Multithreading? Para usurios Java significa que eles no precisam
esperar que um aplicativo finalize uma tarefa para comear outra. Este procedimento
elimina muito do desperdcio de tempo quando comparado ao thread nico.

O Compilador do Java
Como j foi dito, a linguagem Java compilada e interpretada. Se compilada precisa de um
compilador, e ser sobre o Javac que vamos falar agora. Javac o compilador Java, ele
compila (traduz) o cdigo-fonte do Java para um cdigo de nvel intermedirio chamado
cdigos de bytes (Bytecodes). Esses cdigos de bytes no so diretamente executveis em
qualquer plataforma de hardware que atualmente existe; em vez disso, os cdigos so
interpretados pelo interpretado do Java, o qual pode operar por si mesmo ou como parte de
um navegador Web.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 15 de 70
Vamos mais uma vez reforar! O fato de o Java ser tanto compilado quanto interpretado
proporciona ao programador o melhor dos dois mundos. Um programa que escrito em Java
eficiente (por ser compilado) e capaz de executar em mltiplas plataformas (por ser
interpretado).
A maior parte dos compiladores so compiladores otimizador. Um compilador otimizador
aps ter processado a etapa de traduo do cdigo-fonte para cdigo-objeto, ele passa a
uma etapa adicional na qual o cdigo-objeto otimizado para usar a memria mais
eficientemente ou para usar menos tempo de CPU, ou ambos.
Podemos ento encontrar duas formas do compilador Java:
1- javac o compilador otimizador do Java, e certamente o que normalmente
usamos.
2- javac_g a verso do compilador no otimizadora. Geralmente usamos este
compilador para fins de depurao, gerando cdigos de bytes para interpretao por
jdb ou outro depurador compatvel.
O importante a ressaltar que ambos os compiladores, javac e javac_g possuem a mesma
sintaxe.
O compilador javac ativado na linha de comandos. A sintaxe geral a seguinte:
$ javac [ opes ] nomedoarquivo

As Partes da Linguagem
Podemos dizer que as partes da linguagem Java so classificadas em sete categorias, so
elas:
1- Token Para que um compilador possa converter um arquivo legvel por ser humano
em instrues de mquina, ele deve, em primeiro lugar, determinar quais tokens ou
smbolos esto expressos no cdigo. Quando o cdigo Java fornecido ao
Compilador Java, este o analisa em tokens individuais. No Java existem cinco tipos de
tokens: identificadores, palavras-chave, literais, operandos e separadores. Alm de
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 16 de 70
comentrios e espaos em branco. A tabela abaixo exibe os tipos de Tokens em
Linguagem Java.
Tipo Descrio Exemplo
Palavra-chave
Palavras que so partes
essenciais da definio da
linguagem
Public, class, this, while, ...
Identificador
Nomes de classes, objetos
variveis, constantes,
rtulos, mtodos, etc.
Composto de alfanumricos
Unicode, sendo o primeiro
caracter no-numrico
Main, args, System, ...
Literal
Usado para inserir valores
especficos de variveis ou
constantes. Eles podem ser
numricos, Booleanos, de
caracter ou de strings
OlaMundo, 6, 289L, 45H,
true
Separador
Smbolos usados para
indicar onde os grupos de
cdigo so divididos e
arrumados.
() {} [] ; , .
Operador
Caracteres e combinaes
de caracteres que
identificam uma operao a
ser realizada em uma ou
mais variveis ou
constantes.
+, -, *, /, <<, >>,
Espao em Branco
Caracteres sem significado
que podem ser colocados
entre quaisquer dos tipos
acima em qualquer ordem
de quantidade. Utilizados
para melhorar o aspecto do
cdigo-fonte (identao)
[espao], [tab], [fim de
linha], [avano de
formulrio]
Comentrios
Ajuda adicional e suporte
transmisso do significado
do cdigo-fonte a leitores
humanos.
// Comentrio at o
prximo fim de linha
/* Comentrio interno */

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 17 de 70
Dica: O cdigo do Java utiliza o conjunto de caracteres Unicode de 16 bits (No o
ASCII de 8 bits). Isso possibilita a utilizao de outros alfabetos que no os em latim e
ingls.

2- Tipos refere-se maneira um objeto primitivo representado nas mdias de
armazenamento dos computadores. Geralmente, o tipo apresenta tambm
ramificaes referentes s operaes que podem ser efetuadas com ele e para ele. O
Java disponibiliza oito tipos primitivos, sendo seis numricos, um booleano e um de
caracter.


Tipo Descrio
Byte
Inteiro complemento de 2 de 8 bits com
valores entre (-128 e 127)
Short
Inteiro complemento de 2 de 16 bits com
valores entre (-32.768 e 32.767)
Int
Inteiro complemento de 2 de 32 bits com
valores entre (-2.147.483.648 e
2.147.483.647)
Long
Inteiro complemento de 2 de 64 bits com
valores entre (-2
63
e 2
63
-1)
Float
Nmeros de ponto flutuante de preciso
simples de 32 bits utilizando o padro IEEE
754-1985 (aproximadamente +/- 10
39
)
Double
Nmeros de ponto flutuante de preciso
dupla de 64 bits utilizando o padro IEEE
754-1985 (aproximadamente +/- 10
317
)
Char
Caracteres Unicode de 16 bits. Para
alfanumricos, esses caracteres equivalem
ao ASCII com byte superior configurado para
0.
Boolean Possuem valores de verdadeiro/falso

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 18 de 70
3- Expresses As expresses em Java so bastante similares s expresses em C ou
C++. Elas podem expressar um valor diretamente ou servir de meio para calcular
esse valor. Elas podem ainda, ser expresses de fluxo de controle, que expressem a
sequncia de execuo do programa. Expresses podem incluir constantes, variveis,
palavras-chave, operadores e outros.
4- Instrues As instrues so executadas em sequncia, fugindo a essa regra
apenas as instrues de fluxo de controle ou de exceo. So instrues do Java:
Instruo Vazia no realizam nada, e podem ser teis durante o desenvolvimento
do programa como espao reservado. Observe um exemplo de quatro instrues
vazias juntas.
While (strike++ <2){
Casey.RubHands(dirt);
;;;; //quatro instrues vazias esto aqui para dar nfase.
Casey.WatchPitch();
}
Instruo Rotulada Qualquer instruo em Java pode conter um rtulo. O
verdadeiro rtulo possui as mesmas propriedades de qualquer outro identificador;
o Ele no pode ter o mesmo nome que uma palavra-chave ou identificador
local j declarado. Caso ele tenha o mesmo nome que uma varivel, mtodo
ou nome de tipo acessvel a esse bloco, ento dentro desse bloco, o novo
rtulo tem precedncia e aquela varivel externa, mtodo ou tipo ocultada.
o Ele tem o escopo do bloco atual.
o O rtulo seguido por um sinal de dois-pontos.
o Os rtulos so usados apenas pelas instrues jump break e continue.
Observe o exemplo de instrues rotuladas:
writhing:
Pitcher. GrindsBall(Hip);
Casey.eye(Defiance Gleams);
Casey.lip(Curling Sneer);
pitch: while (strike++ <2) {
if(strike < 2) continue pitch;
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 19 de 70
break writhing;
}
A instruo, writhing, uma rotulao simples de uma instruo de expresso, nesse caso,
uma chamada de mtodo de um objeto mais complexo chamado Pitcher. A instruo pitch
o rtulo de uma instruo de iterao (while). Esse rtulo usado como parmetro para a
instruo continue.
Instruo de Declaraes define uma varivel, seja classe, interface, array, objeto
ou tipo primitivo. A forma de tal instruo depende de qual dos cinco tipos est
sendo declarado.
Instrues de Expresses A linguagem Java especifica sete tipos de instrues de
Expresses:
o Atribuio(Assignment); meu_valor = 15;
o Pr-incremental (Pre-increment); ++meu_valor;
o Pr-decremental (Pre-decrement); --meu_valor;
o Ps-incremental (Post-increment); meu_valor++;
o Ps-decremental (Post-decrement); meu_valor--;
o Chamada de Mtodo (Method Call); pessoa.andar(um passo);
o Expresso de Alocao (Allocation Expression); valor = new byte[5] [20];
Dentre os itens citadas gosto de dar uma nfase maior nas expresses pre-increment, pre-
decrement, post-increment e post-decrement.
Nas expresses pre-increment (++valor) ou pre-decrement (--valor) primeiro
realizado o incremento ou decremento da varivel para depois realizar uma
operao.
Nas expresses post-increment (valor++) ou post-decrement (valor--) primeiro
realizado a operao depois o incremento ou decremento da varivel.

Observe alguns exemplos para melhor visualizar estas operaes.

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 20 de 70


Exemplo 1.


Exemplo 2.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 21 de 70


Exemplo 3.
Para resolver o exemplo 3 precisamos ter em mente a seguinte regra: resolva a expresso
procurando sempre os valores dos fatores de expresso partindo da ESQUERDA para a
DIREITA.

Exemplo 4.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 22 de 70


Caractersticas de Instrues de Expresses:
o Todas as instrues de expresses so finalizadas com um ponto-e-vrgula;
o Todos os efeitos colaterais de uma instruo de expresso tero ocorrido
antes da prxima instruo ser executada.
o Uma instruo atribuio em Java pode ter uma expresso no lado direito do
operador de atribuio (=). Essa expresso pode ser qualquer um dos sete
tipos de instrues de expresses. Apenas o lado direito de tal atribuio
pode sofrer casting.
Instrues de Seleo O Java disponibiliza trs tipos de instrues de seleo:
o If Uma instruo if testa uma varivel ou expresso booleana para
determinar se deve executar uma instruo ou um bloco de instrues. Se a
varivel for true (verdadeiro), o bloco ser executado; caso contrrio, o
controle do programa passa para a instruo seguinte ao bloco.
If (condio ){
Bloco de comandos;
}
pessoa.andar(um passo); // primeira instruo aps o bloco if.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 23 de 70


o If-else Uma instruo if-else semelhante instruo if, exceto pelo fato
de que ela possui uma clusula else. A clusula else passa o controle para
uma instruo ou bloco se o booleano avaliado na poro if da instruo for
false (falso).
If (condio ){
Bloco de comandos;
} else {
Bloco de comandos;
}
pessoa.andar(um passo); // primeira instruo aps o bloco if.

Exemplo:


Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 24 de 70

o switch - permite a passagem de controle para uma das muitas instrues
dentro do seu bloco de subinstrues, dependendo do valor da expresso na
instruo. O controle passado para a primeira instruo seguindo um rtulo
case com o mesmo valor que a expresso. Caso no haja nenhum, o controle
passa para a primeira instruo aps o rtulo default.

switch (valor){
case 0: faa alguma coisa;
case 1: faa alguma coisa;
default: faa alguma coisa;
}

Exemplo:


Instrues de Iterao Estas instrues so usadas para controlar sequncias de
instrues que se repetem de acordo com as condies de run-time. O Java
disponibiliza trs tipos de instrues de iterao:
o while - A instruo while testa uma varivel ou expresso booleana, e se ela
for verdadeira, executa o bloco de comandos at que seja falsa.
While (expresso booleana){
Bloco de comandos;
}
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 25 de 70

Exemplo:




o do esta instruo muito parecida com a instruo while. De fato, ela tem
uma clusula while no final. Esta instruo utilizada quando precisamos que
pelo menos uma vez o bloco de comandos seja executado.
do {
Bloco de comandos;
} while (expresso booleana);

Exemplo:


o for As instrues for so as mais complexas das trs instrues de
iteraes. Ela composta de:
Clusula de
inicializao
Contm uma srie de declaraes separadas por vrgula e
instrues de atribuies finalizadas por um ponto-e-vrgula.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 26 de 70
As declaraes tm um escopo da instruo for e somente
suas subinstrues. As atribuies so feitas uma vez, antes
da primeira iterao da subinstruo ou bloco.
Clusula de teste
Contm uma varivel ou expresso booleana que avaliada
uma vez por loop. Se for falsa, o controle passa para a prxima
subinstruo aps a instruo for.
Clusula
incremental
Contm uma srie de expresses separadas por vrgulas que so
avaliadas uma vez por iterao do loop. So normalmente
usadas para incrementar um ndice que est sendo testado na
clusula de teste

Sintaxe:

For([clusula inicializao]; [clusula de teste]; [clusula incremental]){
Bloco de comandos
};

Exemplo:


5- Classes No contexto das linguagens de computador, as classes representam uma
parte do paradigma objeto. Falando de uma maneira bem simples, as classes
definem o estado e o comportamento de um objeto. As classes, um conjunto de
dados e ferramentas que lidam com dados, so ferramentas claramente definidas
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 27 de 70
que podem estar integradas, combinadas e estendidas para criar programas
avanados e, ainda assim, precisos.
Cada classe formada por duas partes:
1- Propriedades: as propriedades, denominadas campos, definem as classes. Elas
so principalmente variveis que podem ser acessadas pela classe inteira.
2- Mtodos: a capacidade de gerenciar as propriedades. Os mtodos so
semelhantes a funes nas linguagens estruturais. No entanto, elas diferem um
pouco das funes porque possuem acesso integral aos campos, ou estados, da
classe.
Em termos prticos, uma classe um grupo de mtodos e informaes
relacionadas que so combinados para atingir determinado fim.
6- Interfaces Os desenvolvedores do Java tm conscincia do valor da herana
mltipla, mas descobriram uma maneira mais simples de atender s mesmas
necessidades, ao mesmo tempo em que minimizam a ambiguidade e as dvidas
gerais sobre sua utilizao. Isso conhecido como interface. Uma interface a
reunio de declaraes de mtodos e constantes que uma ou mais Classes de
Objetos iro utilizar. As interfaces no podem conter variveis ou cdigos para
implementar especificamente nenhum mtodo que seja.
7- Pacotes No Java, Pacotes so grupos de classes. Eles so como bibliotecas em
vrias linguagens de computador. Um pacote de classes Java, geralmente, conter
classes relacionadas.
Enquanto um pacote pode conter muitas classes (relacionadas ou no), cada arquivo
que cria um pacote contm, no mximo, uma definio de Classe pblica.
A tabela abaixo trs alguns pacotes padro da linguagem Java.
Pacote Descrio
Java.applet
Contm classes necessrias para criar applets
Java que iro rodar em navegadores
compatveis com o Java
Java.awt
Contm classes teis para escrever
aplicativos GUI (interface grfica com o
usurio) independentes de plataforma. Ele
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 28 de 70
vem com diversos subpacotes, incluindo o
java.awt.peer e o java.awt.image
Java.io
Contm classes para E/O (entrada/sada).
aqui que so mantidas as classes de fluxo de
dados.
Java.lang
Contm as classes essenciais do Java.
importado implicitamente, portanto, voc
no precisa faz-lo.
Java.net
Contm as classes usadas para estabelecer as
conexes de rede. Eles so usados em
associao com o java.io para ler e gravar
dados da rede.
Java.util
Contm remanescentes, como codificao,
decodificao, vetores, pilhas, etc.

Operadores Java
Precisamos estar atentos tambm aos operadores oferecidos pela linguagem Java, eles
expressam qual operao deve ser realizada em um determinado valor ou valores. Os
operadores esto descritos em vrias categorias relacionadas e geralmente so citados em
questes de concurso. Abaixo vou descrever os principais operadores de acordo com sua
categoria.

Operadores Aritmticos
O operadores aritmticos recebem dois valores, inteiro ou ponto flutuante, e retornam um
terceiro valor cujo tipo pode ser determinado da seguinte forma:
Dois tipos de inteiros (byte, short, int ou long) produzem um tipo int ou um tipo long
(long se e somente se um dos operandos for um long, ou caso o resultado s possa
ser expresso como um long).
Dois tipos de ponto flutuante produzem um tipo de ponto flutuante (se um dos dois
tipos for um double, produzido um double).
Temos os seguintes operadores aritmticos.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 29 de 70
Operador Operao
+ Adio
- Subtrao
* Multiplicao
/ Diviso
% Mdulo (fornece o resto da diviso)

Operadores Aritmticos de Atribuio
Com exceo do operador(=) de atribuio (direta), os demais operadores aritmticos de
atribuio podem ser considerados como um tipo de atalho.
Operador Operao
= Atribuio
+= Adio e atribuio
-= Subtrao e atribuio
*= Multiplicao e atribuio
/= Diviso e atribuio
%= Mdulo e atribuio
Observe este exemplo:


Operadores Aritmticos Bit a Bit
A aritmtica bit a bit definida para os quatro tipos de inteiros e char, mas no para os tipos
de ponto flutuante e booleanos.
Operador Operao
& Operador And
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 30 de 70
| Operador OR
^ Operador Xor
~ Operador Compliment

Operadores de Deslocamento Bit a Bit
As operaes de deslocamento bit a bit giram os bits em um inteiro. Os bits do primeiro
operando so girados pelo nmero de posies dadas no segundo operando. No caso de
deslocamento para a esquerda, sempre um zero que deslocado para direita.
Operador Operao
<< Deslocamento para a esquerda
>> Deslocamento para a direita
>>> Deslocamento para a direita com
preenchimento de zeros.

Observe os seguintes exemplos:
(0100_1111) << 1 = (1001_1110). Neste exemplo deslocamos 1 (um) bit para esquerda.
(0011_1100) << 2 = (1111_0000). Neste exemplo deslocamos 2(dois) bits para a esquerda.
(0100_1111) >> 1 = (0010_0111). Neste exemplo deslocamos 1(um) bit para a direita.
(0100_1111) >>> 1 = (0010_0111). Deslocamos os bits para a direita com preenchimento de
zeros.

Operadores de Atribuio Bit a Bit.
Os operadores de atribuio Bit a Bit realizam a operao determinada no segundo
operando e atribuem o resultado como contedo do primeiro operando.
Operador Operao
&= And de atribuio
|= Or de atribuio
^= Xor de atribuio
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 31 de 70
<<= Atribuio bit a bit de deslocamento a
esquerda
>>= Atribuio bit a bit de deslocamento a
direita
>>>= Atribuio bit a bit de deslocamento a
direita com preenchimento de zeros.

Operadores de Comparao
Operadores de comparao comparam dois nmeros inteiros ou de ponto flutuante e
retornam um valor booleano.
Operador Operao
== Igualdade
!= Desigualdade
< Menor que
> Maior que
<= Menor que ou igual
>= Maior que ou igual

Operadores Lgicos de Comparao
Estes operadores produzem resultados booleanos com base em operandos booleanos.
Operador Operao
&& Operador lgico And
|| Operador lgico Or
! Operador lgico Not

Acesso a Banco de Dados
JDBC Java DataBase Connectivity / Padro Java de Conectividade a Banco de Dados a
interface que possibilita s aplicaes Java acessarem bancos de dados relacionais e demais
arquivos de dados.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 32 de 70
A API JDBC suporta tanto o modelo de duas camadas quanto o modelo de trs camadas para
o processamento de acesso a dados.
No modelo de duas camadas, uma aplicao Java comunica-se diretamente com a fonte de
dados. Isso requer um driver JDBC que pode se comunicar com uma fonte de dados
especfica que est sendo acessado. Comandos de um usurio so entregues ao banco de
dados ou outra fonte de dados, e os resultados dessas declaraes so enviadas de volta
para o usurio. A fonte de dados pode estar localizada em outra mquina se o usurio
estiver conectado atravs de uma rede. Conhecemos esta arquitetura como cliente/
servidor, onde a mquina do usurio o cliente, e a mquina que armazena a fonte de
dados o servidor.

Figura: Arquitetura de duas camadas de acesso a dados.
No modelo de trs camadas, os comandos so enviados a uma "camada intermediria" de
servios, que, em seguida, envia os comandos para a fonte de dados. A fonte de dados
processa os comandos e envia os resultados de volta para a camada intermediria, que, em
seguida, envia-os para o usurio. Esta camada intermediria faz com que seja possvel
manter o controle sobre o acesso e os tipos de atualizaes que podem ser feitas para os
dados corporativos. Outra vantagem que simplifica o desenvolvimento de aplicaes.
Finalmente, em muitos casos, a arquitetura de trs camadas podem oferecer vantagens de
desempenho.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 33 de 70

Figura: Arquitetura de trs camadas para acesso a dados

Instalando um driver JDBC do fornecedor do banco de dados
Para que voc possa realizar uma conexo com o seu banco de dados preciso antes
instalao do driver (um tipo de software que tem por finalidade permitir a comunicao
entre sistemas.) especifico do seu SGBD. Caso voc esteja usando Java DB, o SGBD padro
do Java EE, ele j vem com um driver JDBC. Porm, se voc estiver usando outro banco de
dados como o MySQL, preciso instalar a ltima verso do Connector/J.
Existem diversas implementaes possveis de drivers JDBC. Essas implementaes so
classificados da seguinte forma:
Tipo 1: Drivers que implementam a API JDBC como um mapeamento para outro API de
acesso a dados, como ODBC (Open Database Connectivity). Drivers deste tipo so
geralmente dependentes de uma biblioteca nativa, o que limita a sua portabilidade. A ponte
JDBC-ODBC um exemplo de um driver do tipo 1.
Tipo 2 : Drivers que esto escritas em parte na linguagem de programao Java e parte em
cdigo nativo. Esses drivers usam uma biblioteca cliente nativa especfica para a fonte de
dados para que eles se conectem. Mais uma vez, devido ao cdigo nativo, a sua
portabilidade limitada. OCI (Oracle Call Interface) motor do lado do cliente da Oracle um
exemplo de um driver tipo 2.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 34 de 70
Tipo 3: Drivers que usam um cliente Java puro e se comunicar com um servidor de
middleware usando um protocolo independente de banco de dados. O servidor de
middleware, em seguida, comunica os pedidos do cliente para a fonte de dados.
Tipo 4: Drivers que so puro Java e implementam o protocolo de rede para uma fonte de
dados especfica. O cliente conecta-se diretamente fonte de dados.

Estabelecendo uma conexo
Normalmente, um aplicativo JDBC conecta a uma fonte de dados de destino usando uma
das duas classes:
DriverManager: Essa classe totalmente implementada, conecta um aplicativo a uma fonte
de dados, que especificado por uma URL do banco de dados. Quando esta primeira classe
tenta estabelecer uma conexo, ele carrega automaticamente todos os drivers JDBC 4.0
encontrados dentro do caminho da classe. Note-se que a sua aplicao deve carregar
manualmente os drivers JDBC anteriores verso 4.0.
DataSource: prefervel usar esta interface do que a interface DriverManager, pois ela
permite um detalhamento sobre a fonte de dados, o que a torna mais transparente para a
sua aplicao. Propriedades do DataSource do objeto so definidas para que ele represente
uma fonte de dados particular.
Observe o exemplo a seguir, o mtodo a seguir estabelece uma conexo com o banco de
dados:
Conn = DriverManager.getConnection (
"Jdbc:" + this.dbms + ":/ /" +
this.serverName +
":" + This.portNumber + "/",
connectionProps);
O mtodo DriverManager.getConnection estabelece uma conexo de banco de dados. Este
mtodo requer um URL do banco de dados, o que varia de acordo com seu DBMS. A seguir
esto alguns exemplos de URLs de banco de dados:
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 35 de 70

1. MySQL jdbc:mysql://localhost:3306/, onde localhost o nome do servidor que
hospeda o banco de dados, e 3306 o nmero da porta.
2. Java DB jdbc:derby:testdb;create = true, onde bdteste o nome do banco de
dados para conectar e create=true instrui os DBMS para criar o banco de dados.

A sintaxe bsica para criar a conexo com o banco de dados usando o Java DB :
jdbc:derby:[subsubprotocol:][databaseName]
[;attribute=value]*
Onde:
subsubprotocol especifica onde o JavaDB deve procurar o banco de dados, seja em
um diretrio, na memria, em um caminho de classe, ou em um arquivo JAR. Ele
geralmente omitido.
databaseName o nome do banco de dados para se conectar.
attribute = valor representa uma lista opcional, separados por ponto e vrgula de
atributos. Estes atributos permitem instruir JavaDB para executar vrias tarefas,
incluindo o seguinte:
o Crie o banco de dados especificado na URL de conexo.
o Criptografar o banco de dados especificado na URL de conexo.
o Especifique os diretrios para armazenamento de registros e informaes de
rastreio.
o Especifique um nome de usurio e senha para se conectar ao banco de
dados.

A sintaxe bsica para criar a conexo com o banco de dados usando o conector para MYSQL
Conector/J :
jdbc:mysql://[host][,failoverhost...]
[:port]/[database]
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 36 de 70
[?propertyName1][=propertyValue1]
[&propertyName2][=propertyValue2]...

Onde:
host:port o nome do host e o nmero da porta do computador que hospeda seu
banco de dados. Se no for especificado, os valores padres de configurao so
127.0.0.1 e 3306, respectivamente.
database o nome do banco de dados para se conectar. Se no for especificado,
uma conexo feita com nenhum banco de dados padro.
failover o nome de um banco de dados standby.
propertyName=propertyValue representa uma lista opcional de atributos. Estes atributos
permitem instruir MySQL Connector/J para executar vrias tarefas.


Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 37 de 70
4. Questes Comentadas
01. (CESPE/2013/BACEN/ANALISTA DE SISTEMAS/Q.90) Considere que as linhas abaixo
foram retiradas de um programa escrito em Java, e que no h modificaes destas ao
longo do programa.
int i = 10;
int n = ++i%5;
Diante disso, os valores finais das variveis i e n sero, respectivamente, 11 e 1.
Comentrios
Para voc resolver esta questo preciso estar atento a dois pontos:
1) A Banca usa uma expresso de pre-increment (++valor), onde primeiro realizado o
incremento da varivel para depois realizar a funo.
2) A nossa expresso possui o operador aritmtico mdulo (%) que retorna o resto da
diviso.
Agora vamos entender a questo?
1) A varivel i inicializada com o valor 10;
2) A varivel n inicializada com uma expresso (++i%5) onde a sua execuo feita
em duas etapas:
a. ++i, aqui a varivel i ser incrementada para depois realizar a operao,
ento i aqui est valendo 11;
b. Na segunda etapa da expresso o valor de i ser dividido por 5 e o operador
mdulo (%) retornar o resto desta diviso. Ento teremos 11%5 = 1, ou seja,
a varivel n ser inicializada com o valor 1.
Sendo assim, os valores finais das variveis i e n sero, respectivamente, 11 e 1.
GABARITO: C.

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 38 de 70
02. (CESPE/2013/BACEN/ANALISTA DE SISTEMAS/Q.90) No paradigma orientado a objetos,
o polimorfismo est relacionado herana de mtodos. O Java possui duas modalidades
de polimorfismo: overriding, que consiste em alterar o mtodo em uma subclasse
mantendo-se sua mesma assinatura da superclasse; e overloading, no qual h mtodos
de mesmo nome associados por meio da herana, porm, com argumentos diferentes.
Comentrios
No paradigma orientado a objetos, Polimorfismo o princpio pelo qual uma classe derivada
de uma superclasse pode invocar mtodos que tm a mesma identificao (assinatura) mas
comportamentos distintos, especializados para cada classe derivada, usando para tanto uma
referncia a um objeto do tipo da superclasse, sendo assim, o polimorfismo est
relacionado herana de classes e no herana de mtodos.
No Java podemos usar as duas modalidades de polimorfismo. Podemos criar vrios mtodos
com o mesmo nome desde que tenham parmetros diferentes. Isso o que chamamos de
(overloading) - sobrecarga de mtodos. E tambm podemos alterar o mtodo em uma
subclasse mantendo-se sua mesma assinatura da superclasse, temos aqui o (overriding) -
Mtodos Sobrecarregados.
GABARITO: E.

03. (CESPE/2013/CNJ/PROGRAMAO DE SISTEMAS/Q.87) Ao ser executado o programa
abaixo, feito com cdigo em Java, o resultado ser 2013.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 39 de 70

Comentrios
O primeiro detalhe importante desta questo so as novas instancias da classe Processo
herdadas pelo objeto a e pelo objeto b, onde cada nova instancia possui as mesmas
propriedades, mas que so independentes uma das outras, ou seja, se eu alterar o valor da
propriedade v1 do objeto a o valor da propriedade v1 do objeto b no ser alterado.
O outro item importante o objeto system.out.print que permite exibir strings no console
de comando. Da forma que este objeto foi usado na classe, ele vai exibir os valores sem
espao e na sequencia que for sendo solicitado.
Sendo assim, analisando o cdigo temos:
Linha Descrio
Processo a = new Processo()
A varivel a recebe uma nova instancia da classe Processo.
O Objeto a agora possui as propriedades v1 = 2 e v2=13 e
o mtodo troca()
Processo b = new Processo()
A varivel b recebe uma nova instancia da classe Processo.
O Objeto b agora possui as propriedades v1 = 2 e v2=13 e
o mtodo troca()
a.v2 = 0 A propriedade v2 do objeto a recebe o valor 0
System.out.print(a.v1) exibido no console o valor de a.v1 que igual a 2.
a.troca
Executa o mtodo troca do objeto a. Agora a.V1 = a.V2,
ou seja, a.V1 = 0.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 40 de 70
System.out.print(a.v2)
exibido no console o valor de a.v2 que igual a 0 logo
depois do valor que j existia que 2. Temos agora no
console a string 20.
System.out.print(b.v2)
exibido no console o valor de b.v2 que igual a 13 logo
depois do valor que j existia que 20. Temos agora no
console a string 2013.

GABARITO: C.

04. (CESPE/2013/INPI/DESENVOLVIMENTO E MANUTENO DE SISTEMAS/Q.80) Com
relao linguagem Java, julgue os prximos itens.
Uma classe pode acessar atributos de uma superclasse mesmo quando eles so declarados
como private.
Comentrios
Os atributos e mtodos declarados como private so informaes escondidas que
pertencem classe que os declararam, sendo assim, nem mesmo as subclasses desta classe
podem acess-los.
GABARITO: E.

05. (CESPE/2013/INPI/DESENVOLVIMENTO E MANUTENO DE SISTEMAS/Q.81) Com
relao linguagem Java, julgue os prximos itens.
Aps a execuo do cdigo abaixo, a varivel a ter o valor da varivel c.
int a = 3;
int b = 4;
int c = 5;
a = b < c ? b:c;
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 41 de 70
Comentrios
O cdigo usou um if Inline - uma forma alternativa de implementao da estrutura
condicional if.

Esta estrutura trabalha da seguinte forma: Se A for verdadeiro, execute B, seno execute C;
Temos ento: a = b < c ? b: c, ou seja, se b for menor do que c ento a=b seno a=c;
Substituindo os valores das variveis na expresso veremos que a= b, ou seja, a = 4;
GABARITO: E.

06. (CESPE/2013/INPI/DESENVOLVIMENTO E MANUTENO DE SISTEMAS/Q.82) Com
relao linguagem Java, julgue os prximos itens.
Os comandos dentro de um lao do sempre sero executados pelo menos uma vez.
Comentrios
Como eu expliquei em nossa aula a instruo do muito parecida com a instruo while. De
fato, ela tem uma clusula while no final. Esta instruo utilizada quando precisamos que
pelo menos uma vez o bloco de comandos seja executado.
do {
Bloco de comandos;
} while (expresso booleana);
GABARITO: C.

07. (CESPE/2013/TRT10/TECNOLOGIA DA INFORMAO/Q.57) Com relao linguagem
de programao Java, julgue os itens seguintes.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 42 de 70
No cdigo abaixo, caso a varivel salario assuma o valor igual a 5000, o valor b da
varivel avaliacao ser atribudo corretamente.
if (salario > 10000) {
avaliacao=a;
else
avaliacao=b;
}
Comentrios
Correto. A instruo de seleo IF verifica se a varivel salario maior que 10000. Se
esta condio for verdadeira, ento o valor a atribudo a varivel avaliacao. Se a condio
for falsa, ou seja, salario for menor que 10000, ento o valor b atribudo a varivel
avaliacao.
Se a varivel salario assumir o valor igual a 5000, ela ser menor que 10000 e executar o
bloco de cdigo da clausula else.
GABARITO: C.

08. (CESPE/2013/TRT10/TECNOLOGIA DA INFORMAO/Q.59) Com relao linguagem
de programao Java, julgue os itens seguintes.
Aps a edio de um programa que tiver sido salvo com o nome programa.java, para
compil-lo via linha de comando, ser suficiente executar o comando javac programa.java.
Comentrios
Correto. Aps a edio de um programa que tiver sido salvo com o nome programa.java,
para compil-lo via linha de comando, ser suficiente executar o comando javac
programa.java. Como sabemos, o javac o compilador otimizador do Java. Porm,
poderamos usar o javac_g, a verso do compilador no otimizador, para executar est
compilao. Geralmente usamos este compilador para fins de depurao, gerando cdigos
de bytes para interpretao por jdb ou outro depurador compatvel.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 43 de 70
A sintaxe seria a mesma: javac_g programa.java;
GABARITO: C.

09. (FCC/2014/CMARA MUNICIPAL SP/INFORMTICA/Q.44) Considere os trechos de
cdigo abaixo:



Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 44 de 70
Os cdigos esto em diferentes linguagens e o trecho
a) 3 est escrito em VB Script. Somente funciona no ambiente .net, devendo ser compilado
neste ambiente antes de ser executado.
b) 1 apresenta as strings "camara municipal de so paulo" e 'cmsp' na tela, atravs do
comando echo gettype.
c) 2, escrito em Java, apresenta erros de sintaxe no trecho Scanner sc = new
Scanner(System.in); int[ ] numeros = new int[MAX];
d) 1, em PHP, ser compilado sem erros. O cdigo funcionar em qualquer navegador da
Internet.
e) 2 poder ser compilado usando a linha de comando javac Inverte.java, desde que tenha
sido salvo num arquivo com este nome e terminao.
Comentrios
Item A errado. O VBScript uma linguagem interpretada e no compilada, esta uma
caracterstica das linguagens scripts.

Item B errado. O comando gettype do PHP retorna o tipo da varivel e no o seu valor como
afirmado no item. Estas linhas vo imprimir string string.

Item C errado. A classe Scanner do Java utilizada para receber dados do usurio. Esta
classe faz parte do pacote java.util e sua declarao possui a seguinte sintaxe:
Scanner entrada = new Scanner(System.in);
Observe que o cdigo est examente igual
Scanner sc = new Scanner(Sytem.in);

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 45 de 70
Item D errado. O PHP uma linguagem interpretada e no compilado como afirmado no
item.
Item E correto.
Como j foi dito, a linguagem Java compilada e interpretada. Se compilada precisa de um
compilador. O Javac o compilador Java, ele compila (traduz) o cdigo-fonte do Java para
um cdigo de nvel intermedirio chamado cdigos de bytes (Bytecodes). Esses cdigos de
bytes no so diretamente executveis em qualquer plataforma de hardware que
atualmente existe; em vez disso, os cdigos so interpretados pelo interpretado do Java, o
qual pode operar por si mesmo ou como parte de um navegador Web.
Podemos ento encontrar duas formas do compilador Java:
3- javac o compilador otimizador do Java, e certamente o que normalmente
usamos.
4- javac_g a verso do compilador no otimizadora. Geralmente usamos este
compilador para fins de depurao, gerando cdigos de bytes para interpretao por
jdb ou outro depurador compatvel.
O importante a ressaltar que ambos os compiladores, javac e javac_g possuem a mesma
sintaxe.
O compilador javac ativado na linha de comandos. A sintaxe geral a seguinte:
$ javac [ opes ] nomedoarquivo
GABARITO: E.

10. (FCC/2013/TRT15/TECNOLOGIA DA INFORMAO/Q.27) Considere as classes
abaixo, existentes em uma aplicao Java que utiliza a relao de herana.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 46 de 70

Para que as classes sejam consideradas corretas, a lacuna I deve ser preenchida com o
comando
a) this.id=id; this.nome=nome;
b) super(id,nome );
c) parent(id,nome );
d) ClasseA classe = new ClasseA(id,nome );
e) main(id, nome );
Comentrios
Herana, de forma simplificada a capacidade de uma classe derivar de outra classe. Na
linguagem Java quando precisamos que uma classe herde as caractersticas de outra classe,
usamos a palavra reservada extends logo aps a definio da classe. Escrevemos da
seguinte forma:
Public class Secundaria extends Principal;

importante lembrar que o Java no permite heranas mltiplas, possvel que uma classe
herde caractersticas apenas de uma outra classe.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 47 de 70
J a palavra reservada Super usada dentro de uma definio do mtodo sub-classe para
chamar um mtodo definido na super classe. Mtodos privados da super-classe no podem
ser chamados. Somente mtodos pblicos e protegidos podem ser chamado pelo super().
Ele tambm usado por construtores de classe para invocar construtores de sua classe pai.
Sintaxe:
Super (<method-name>);


A palavra reservada This usada para referenciar um objeto na classe atual sem a
necessidade de instanci-lo. Sua sintaxe :
this.method();
ou
this.variable;
this resolve ambiguidade entre as variveis de instncia e parmetros e pode ser
usada para passar um objeto corrente como um parmetro para outro mtodo.
GABARITO: B.

11. (FCC/2013/TRT5/TECNOLOGIA DA INFORMAO/Q.52) Considere o exemplo de
programa Java a seguir:

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 48 de 70
Para que o programa acima utilize a recursividade para resolver corretamente o clculo do
fatorial de n, a lacuna deve ser preenchida por
a) return (n * fatorial (n - 1);
b) return (n == 0 ? 1 : n * fatorial (n - 1);
c) JOptionPane.showMessageDialog(null, n * fatorial (n - 1);
d) return (n = 0 : 1 ? n * fatorial (n - 1);
e) return (n == 0 ? 1 : n-1 * fatorial (n);
Comentrios
Na programao de computadores, a recurso uma tcnica que define um problema em
termos de uma ou mais verses menores deste mesmo problema. Diz-se que uma funo
recursiva se ela puder fazer uma referencia a si prpria enquanto uma condio for
verdadeira.
Para que o programa acima utilize a recursividade para resolver corretamente o clculo do
fatorial de n, a lacuna deve ser preenchida por return (n == 0 ? 1 : n * fatorial (n - 1)
encontrada no item B.
Esta linha possibilita uma condio de parada para a chamada da funo recursiva, que ser
quando n for igual zero. Enquanto n no for igual zero a funo fatorial ser chamada de
forma recursiva.
O item A esta errado. Se esta linha for includa teremos um loop interminvel pois no ela
no apresenta uma condio de parada, o que ocasionar um erro de estouro de pilha de
memria.
O item C est errado. Se usarmos JOptionPane.showMessageDialog(null, n * fatorial (n - 1)
apresentar um erro de execuo, pois estamos tentando exibir uma janela de dialogo com
outra janela de dialogo.
O item D e E esto errado, pois a sintaxe do SE inline est escrita errado, o correto seria
Condio?verdadeiro:errado;
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 49 de 70
GABARITO: B.

12. (FCC/2013/ALE-RN/ANALISTA DE SISTEMAS/Q.33) Em uma aplicao web
desenvolvida utilizando a plataforma Java EE 6, h a seguinte classe Java:

Em uma pgina JSP da mesma aplicao, para instanciar um objeto desta classe pode-se
utilizar a tag
a) <jsp:setBean name="cliente" class="dados.Cliente"/>
b) <jsp:setBean id="cliente" class="dados.Cliente"/>
c) <jsp:useBean name="cliente" class="dados.Cliente"/>
d) <jsp:useBean id="cliente" class="dados.Cliente"/>
e) <jsp:newInstance id="cliente" class= "dados.Cliente"/>
Comentrios
Como j foi explicado, os JavaBeans so definidos na JSP usando-se a tag <jsp:useBean>.
Essa tag cria uma instncia de um JavaBean e o associa a um nome para uso na JSP.
O nome a classe do bean so definidos pelos atributos id e class da tag useBean. Sua
sintaxe :
<jsp:useBean id=<nome do bean> class=<classe do bean> scope=<escopo>>
Com isso temos que o item D apresenta a resposta correta.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 50 de 70
<jsp:useBean id="cliente" class="dados.Cliente"/>
GABARITO: D.

13. (FCC/2013/ALE-RN/ANALISTA DE SISTEMAS/Q.34) Analise a classe Java a seguir
(note que a numerao de linhas simblica e no faz parte da declarao da Classe):

Pode-se afirmar corretamente que
a) a declarao do vetor contida na linha 4 est incorreta.
b) apesar dos valores armazenados no vetor serem classificados em ordem crescente, eles
sero exibidos em ordem decrescente.
c) h um erro nas linhas 13 e 14, pois o operador != no existe na linguagem Java.
d) a instruo contida na linha 8 est incorreta, pois o mtodo showInputDialog da classe
JOptionPane requer o parmetro null precedendo o texto.
e) ocorrer um erro em tempo de execuo na linha 9, pois o ndice de um vetor na
linguagem Java comea na posio 1 e no na posio 0.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 51 de 70
Comentrios
Item A errado. A declarao da array na linha 4 est correta. Em Java, um array um objeto.
Esse objeto tem um determinado tipo para os tipos contidos sejam eles primitivos ou
objetos (int, char, string, ...). Uma matriz pode ser declarada de vrias maneiras, inclusive a
maneira que foi usada na linha 4, veja alguns exemplos:
int[] array1 = null;
array1 = new int[10];
char[] array4 = {'a', 'b', 'c', 'd', 'e'};
int vet[] = new int [10];

Item C errado. O operador != existe sim na linguagem java e quer dizer diferente de
Aqui est uma lista dos operadores comparativos em Java:
Operador Descrio
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
== Igual a
!= Diferente de

Item D errado. No objeto JOptionPane, h o mtodo showInputDialog() que responsvel
em criar uma caixa de dilogo requisitando uma entrada de dado. Existem diversas formas
de usar este mtodo que pode ter alguns dos seguintes argumentos:
1 ParentComponent - janela principal que chama a caixa Input Dialog. Voc pode
especificar este valor ou deixar que assuma o padro null.
2 - Mensagem - A mensagem que deve ser exibida ao usurio.
3 - O ttulo da caixa de texto.
4 - messageType - Define o estilo da mensagem.
PLAIN_MESSAGE (valor: -1): Mensagem limpa, sem nenhum cone.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 52 de 70
ERROR_MESSAGE (valor: 0): Mensagem de erro.
INFORMATION_MESSAGE (valor: 1): Mensagem informativa.
WARNING_MESSAGE (valor: 2): Mensagem de alerta.
QUESTION_MESSAGE (valor: 3): Mensagem de requisio ou pergunta. Esta a
opo padro do mtodo showInputDialog().
Um exemplo mais complexo deste mtodo seria:
JOptionPane.showMessageDialog (null, "alerta", "alerta", JOptionPane.ERROR_MESSAGE);
Um exemplo mais simples deste mtodo seria:
JOptionPane.showInputDialog("Digite um valor:")

Item E errado. Cuidado, o primeiro ndice em um array no Java 0 e no 1.
Item B correto. A instruo for contida da linha 25 a linha 27 adiciona string dados os
valores contidos no vetor vet[] pegando-os do final para o inicio, ou seja, ela vai pegar o
valor do vetor com ndice 9 e adicionar a string, depois pegar o valor do vetor com ndice 8
e adicionar a string e assim at que o ndice seja igual a zero. Como o vetor vet[] est
classificado em ordem crescente, depois que a instruo o lao for finalizado, a string
dados ter recebido os valores do vetor em ordem decrescente.
GABARITO: B.

14. (FCC/2013/ALE-RN/PROGRAMADOR/Q.39) Servlets so componentes da plataforma
Java EE que recebem no servidor requisies dos computadores cliente. Considere uma
aplicao web composta por uma pgina HTML e uma servlet. A pgina contm no seu
corpo o seguinte formulrio:

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 53 de 70
Ao clicar no boto Enviar, o contedo do campo submetido servlet Controle.java no
servidor. Nessa servlet, h um objeto request da interface HttpServletRequest. Para receber
o contedo do campo texto do formulrio e armazenar em uma varivel, pode-se utilizar a
instruo
a) int id = Integer.parseInt(request.getParameter("id");
b) int id = request.getParameter("id");
c) int id = request.getInt("id");
d) String id = request.getParameter("ID");
e) String id = request.getString("id");
Comentrios

Observe a figura acima, os clientes da Web (navegadores da Web) interagem com a Servlet
usando o protocolo de Request (requisio) / Response (resposta) HTTP. Os Servlet esto
instalados junto aos Servlet container ou Container Web, responsveis pelo gerenciamento
e execuo dos Servlets.
Dentre os mtodos pertencentes interface HttpServletRequest, temos o mtodo
getParameter(String n) que retorna o valor associado com um parmetro enviado para o
Servlet com parte de uma associao Get ou Post. O argumento n representa o nome do
parmetro.
O mtodo Integer.parseInt usado para retorna um inteiro (apenas decimal).
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 54 de 70
GABARITO: A.

15. (IADES/2011/PGE-DF/ANLISE DE SISTEMAS/Q.56) Analise o cdigo fonte em Java a
seguir e assinale a alternativa que apresenta o resultado da execuo do programa.

a) Valores = 16
b) Valores = 548
c) Valores = 18
d) Valores = 649
e) Valores = 19
Comentrios
Para analisar este cdigo precisamos conhecer sobre pre-increment post-increment.
Nas expresses pre-increment (++ valor) primeiro realizado o incremento da
varivel para depois realizar uma operao.
Nas expresses post-increment (valor++) primeiro realizado a operao depois o
incremento da varivel.
Analisando o cdigo:
c = a++ + ++b;
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 55 de 70
Nesta linha de cdigo a varivel a sofrer o incremento do valor depois de realizar a
operao adio, neste caso a ser igual a 5 para realizar o calculo e 6 depois de realizar o
calculo. Enquanto a varivel b ser incrementada antes de realizar o calculo. Sendo assim,
teremos a varivel b valendo 4 na hora do calculo. Ao fim da operao C ser igual a 9.
Quando os valores forem impressos na linha System.out.println("valores =" + a + b + c);
a=6; b=4; c=9. O valor a ser impresso ser 649 devido o uso do operador de concatenao
de string +.
GABARITO: D.

16. (IADES/2011/PGE-DF/ANLISE DE SISTEMAS/Q.56) Qual ser o valor exibido na
execuo da seguinte classe Java?

a) 11
b) 39
c) 13
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 56 de 70
d) 9
e) 78
Comentrios
o do esta instruo muito parecida com a instruo while. De fato, ela tem
uma clusula while no final. Esta instruo utilizada quando precisamos que
pelo menos uma vez o bloco de comandos seja executado.
do {
Bloco de comandos;
} while (expresso booleana);

Nosso cdigo realizara o loop enquanto r>0;
O operador % usado na linha r = a % b, retorna o resto da diviso do primeiro pelo segundo.
Realizando o teste de mesa teremos
A B R
Inicializao 78 117 1
r=a%b 78 117 78
a=b 117 117 78
b=r 117 78 78
r>0 True
r=a%b 117 78 39
a=b 78 78 39
b=r 78 39 39
r>0 true
r=a%b 78 39 0
a=b 39 78 0
b=r 39 0 0
r>0 False

A linha de cdigo System.out.println("valor =" + a ); exibira o valor 39.
GABARITO: B.

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 57 de 70
17. (FJG/2008/IPLARIO/ANALISTA DE SISTEMAS/Q.66) A figura abaixo indica o emprego
da estrutura if em Java.

A alternativa que indica a sintaxe que emprega a estrutura seleo / caso correspondente :


a)
b)

c)

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 58 de 70
d)


Comentrios
O Comando switch permite a passagem de controle para uma das muitas instrues dentro
do seu bloco de sub-instrues, dependendo do valor da expresso na instruo. O controle
passado para a primeira instruo seguindo um rtulo case com o mesmo valor que a
expresso. Caso no haja nenhum, o controle passa para a primeira instruo aps o rtulo
default.
Observe o exemplo:
switch (valor){
case 0: faa alguma coisa;
case 1: faa alguma coisa;
default: faa alguma coisa;
}

A questo apresenta uma instruo condicional IF a alternativa que indica a sintaxe que
emprega a estrutura seleo/caso (Switch) correspondente esta instruo a
demonstrada no item A.
GABARITO: A.

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 59 de 70
5. Lista de Questes Utilizadas na Aula
01. (CESPE/2013/BACEN/ANALISTA DE SISTEMAS/Q.90) Considere que as linhas abaixo
foram retiradas de um programa escrito em Java, e que no h modificaes destas ao
longo do programa.
int i = 10;
int n = ++i%5;
Diante disso, os valores finais das variveis i e n sero, respectivamente, 11 e 1.

02. (CESPE/2013/BACEN/ANALISTA DE SISTEMAS/Q.90) No paradigma orientado a objetos,
o polimorfismo est relacionado herana de mtodos. O Java possui duas modalidades
de polimorfismo: overriding, que consiste em alterar o mtodo em uma subclasse
mantendo-se sua mesma assinatura da superclasse; e overloading, no qual h mtodos
de mesmo nome associados por meio da herana, porm, com argumentos diferentes.

03. (CESPE/2013/CNJ/PROGRAMAO DE SISTEMAS/Q.87) Ao ser executado o programa
abaixo, feito com cdigo em Java, o resultado ser 2013.

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 60 de 70

04. (CESPE/2013/INPI/DESENVOLVIMENTO E MANUTENO DE SISTEMAS/Q.80) Com
relao linguagem Java, julgue os prximos itens.
Uma classe pode acessar atributos de uma superclasse mesmo quando eles so declarados
como private.

05. (CESPE/2013/INPI/DESENVOLVIMENTO E MANUTENO DE SISTEMAS/Q.81) Com
relao linguagem Java, julgue os prximos itens.
Aps a execuo do cdigo abaixo, a varivel a ter o valor da varivel c.
int a = 3;
int b = 4;
int c = 5;
a = b < c ? b:c;

06. (CESPE/2013/INPI/DESENVOLVIMENTO E MANUTENO DE SISTEMAS/Q.82) Com
relao linguagem Java, julgue os prximos itens.
Os comandos dentro de um lao do sempre sero executados pelo menos uma vez.

07. (CESPE/2013/TRT10/TECNOLOGIA DA INFORMAO/Q.57) Com relao linguagem
de programao Java, julgue os itens seguintes.
No cdigo abaixo, caso a varivel salario assuma o valor igual a 5000, o valor b da
varivel avaliacao ser atribudo corretamente.
if (salario > 10000) {
avaliacao=a;
else
avaliacao=b;
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 61 de 70
}

08. (CESPE/2013/TRT10/TECNOLOGIA DA INFORMAO/Q.59) Com relao linguagem
de programao Java, julgue os itens seguintes.
Aps a edio de um programa que tiver sido salvo com o nome programa.java, para
compil-lo via linha de comando, ser suficiente executar o comando javac programa.java.

09. (FCC/2014/CMARA MUNICIPAL SP/INFORMTICA/Q.44) Considere os trechos de
cdigo abaixo:


Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 62 de 70

Os cdigos esto em diferentes linguagens e o trecho
a) 3 est escrito em VB Script. Somente funciona no ambiente .net, devendo ser compilado
neste ambiente antes de ser executado.
b) 1 apresenta as strings "camara municipal de so paulo" e 'cmsp' na tela, atravs do
comando echo gettype.
c) 2, escrito em Java, apresenta erros de sintaxe no trecho Scanner sc = new
Scanner(System.in); int[ ] numeros = new int[MAX];
d) 1, em PHP, ser compilado sem erros. O cdigo funcionar em qualquer navegador da
Internet.
e) 2 poder ser compilado usando a linha de comando javac Inverte.java, desde que tenha
sido salvo num arquivo com este nome e terminao.

10. (FCC/2013/TRT15/TECNOLOGIA DA INFORMAO/Q.27) Considere as classes
abaixo, existentes em uma aplicao Java que utiliza a relao de herana.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 63 de 70

Para que as classes sejam consideradas corretas, a lacuna I deve ser preenchida com o
comando
a) this.id=id; this.nome=nome;
b) super(id,nome );
c) parent(id,nome );
d) ClasseA classe = new ClasseA(id,nome );
e) main(id, nome );

11. (FCC/2013/TRT5/TECNOLOGIA DA INFORMAO/Q.52) Considere o exemplo de
programa Java a seguir:

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 64 de 70
Para que o programa acima utilize a recursividade para resolver corretamente o clculo do
fatorial de n, a lacuna deve ser preenchida por
a) return (n * fatorial (n - 1);
b) return (n == 0 ? 1 : n * fatorial (n - 1);
c) JOptionPane.showMessageDialog(null, n * fatorial (n - 1);
d) return (n = 0 : 1 ? n * fatorial (n - 1);
e) return (n == 0 ? 1 : n-1 * fatorial (n);

12. (FCC/2013/ALE-RN/ANALISTA DE SISTEMAS/Q.33) Em uma aplicao web
desenvolvida utilizando a plataforma Java EE 6, h a seguinte classe Java:

Em uma pgina JSP da mesma aplicao, para instanciar um objeto desta classe pode-se
utilizar a tag
a) <jsp:setBean name="cliente" class="dados.Cliente"/>
b) <jsp:setBean id="cliente" class="dados.Cliente"/>
c) <jsp:useBean name="cliente" class="dados.Cliente"/>
d) <jsp:useBean id="cliente" class="dados.Cliente"/>
e) <jsp:newInstance id="cliente" class= "dados.Cliente"/>
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 65 de 70

13. (FCC/2013/ALE-RN/ANALISTA DE SISTEMAS/Q.34) Analise a classe Java a seguir
(note que a numerao de linhas simblica e no faz parte da declarao da Classe):

Pode-se afirmar corretamente que
a) a declarao do vetor contida na linha 4 est incorreta.
b) apesar dos valores armazenados no vetor serem classificados em ordem crescente, eles
sero exibidos em ordem decrescente.
c) h um erro nas linhas 13 e 14, pois o operador != no existe na linguagem Java.
d) a instruo contida na linha 8 est incorreta, pois o mtodo showInputDialog da classe
JOptionPane requer o parmetro null precedendo o texto.
e) ocorrer um erro em tempo de execuo na linha 9, pois o ndice de um vetor na
linguagem Java comea na posio 1 e no na posio 0.

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 66 de 70
14. (FCC/2013/ALE-RN/PROGRAMADOR/Q.39) Servlets so componentes da plataforma
Java EE que recebem no servidor requisies dos computadores cliente. Considere uma
aplicao web composta por uma pgina HTML e uma servlet. A pgina contm no seu
corpo o seguinte formulrio:

Ao clicar no boto Enviar, o contedo do campo submetido servlet Controle.java no
servidor. Nessa servlet, h um objeto request da interface HttpServletRequest. Para receber
o contedo do campo texto do formulrio e armazenar em uma varivel, pode-se utilizar a
instruo
a) int id = Integer.parseInt(request.getParameter("id");
b) int id = request.getParameter("id");
c) int id = request.getInt("id");
d) String id = request.getParameter("ID");
e) String id = request.getString("id");

15. (IADES/2011/PGE-DF/ANLISE DE SISTEMAS/Q.56) Analise o cdigo fonte em Java a
seguir e assinale a alternativa que apresenta o resultado da execuo do programa.
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 67 de 70

a) Valores = 16
b) Valores = 548
c) Valores = 18
d) Valores = 649
e) Valores = 19

16. (IADES/2011/PGE-DF/ANLISE DE SISTEMAS/Q.56) Qual ser o valor exibido na
execuo da seguinte classe Java?

Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 68 de 70
a) 11
b) 39
c) 13
d) 9
e) 78

17. (FJG/2008/IPLARIO/ANALISTA DE SISTEMAS/Q.66) A figura abaixo indica o emprego
da estrutura if em Java.

A alternativa que indica a sintaxe que emprega a estrutura seleo / caso correspondente :


a)
Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 69 de 70
b)

c)

d)




Desenvolvimento de Sistemas TCU
Aula 00 - Teoria e Exerccios Comentados
Prof. Jnior Martins


www.tiparaconcursos.net Pgina 70 de 70
6. Gabaritos
01 02 03 04 05
C E C E E
06 07 08 09 10
C C C E B
11 12 13 14 15
B D B A D
16 17 18 19 20
B A