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