Q125258 - FADESP Professor - Informática 2018
Considere a execução dos códigos Java abaixo.
A saída correta é
Confira abaixo as principais questões de concursos sobre Java que cairam em provas de concursos públicos anteriores:
Considere a execução dos códigos Java abaixo.
A saída correta é
Analise as afirmações sobre as linguagens de programação.
I. O mecanismo de herança em Java ocorre em tempo de compilação, ou seja, todo reaproveitamento de código realizado por herança é imutável em tempo de execução. II. A linguagem C++ possui herança múltipla, Java possui somente herança simples para classes concretas e abstratas, mas possui herança múltipla para a “interface”, já Javascript não possui herança como funcionalidade nativa. III. C++ é uma linguagem compilada, Java é compilada para uma linguagem de máquina intermediária chamada de bytecodes, sendo esta interpretada e Javascript é interpretada.
É correto afirmar que
Considere o método abaixo, presente em uma classe Java que realiza uma conexão com um banco de dados MySQL.
É correto afirmar que
Considere o seguinte fragmento do pseudocódigo:
Em Java e PHP, mod e <> são representados, respectivamente, por:
Considere as seguintes afirmativas sobre os tipos de exceções que existem na linguagem Java e o que caracteriza cada um desses tipos.
I Todas as exceções em Java herdam direta ou indiretamente da classe Throwable.
II Existem dois tipos de exceções Java: (1) exceções checadas (checked exceptions) que herdam da classe Exception ou de outra exceção checada e (2) exceções não checadas que herdam da classe Throwable.
III Um exemplo de exceção não checada é a do tipo Error que geralmente representa restrições de recursos ou problemas internos à máquina virtual Java (JVM).
IV O compilador Java não permite que sejam definidos tratadores (cláusulas catch) para as exceções de tipo RuntimeException e Error.
Estão corretas as afirmativas
Para responder a questão considere a definição abaixo.
O Spring é um framework de aplicação e container de inversão de controle para aplicações Java.
A respeito do framework Spring, analise as afirmações abaixo.
I A anotação @Transactional do Spring é usada para indicar classes ou métodos específicos que irão delimitar transações com o banco de dados, podendo ser aplicada a classes ou métodos específicos.
II A demarcação de transações pode ser feita no Spring através da inclusão de configurações com a tag <transaction< no arquivo applicationContext.xml.
III A configuração através de arquivos XML oferece flexibilidade para indicar padrões de nomes de classes e métodos que serão demarcados com transações, assim como os respectivos modos de propagação.
IV Por default, todas as transações criadas pelo framework Spring possuem modo de propagação REQUIRES_NEW, o que significa que ele cria uma nova transação para cada método transacional chamado.
Estão corretas as afirmações
Em relação à categoria e à precedência de operadores na linguagem Java, atribua V (verdadeiro) ou F (falso) às afirmativas a seguir.
( ) Os operadores / e % possuem a mesma precedência, sendo avaliados da esquerda para a direita.
( ) O operador % possui uma precedência maior que o operador *.
( ) Os operadores + e − possuem a mesma precedência, sendo avaliados da direita para a esquerda.
( ) Os operadores == e != possuem a mesma precedência, sendo avaliados da esquerda para a direita.
( ) O operador * possui uma precedência maior que o operador ==.
Assinale a alternativa que contém, de cima para baixo, a sequência correta.
Sobre a programação orientada a objetos no Java, considere as afirmativas a seguir.
I. Métodos static herdados não podem ser sobrescritos.
II. Uma classe abstrata é criada com a palavra chave abstract.
III. Uma classe abstrata está impedida de possuir métodos abstratos.
IV. Construtores static podem ser declarados como abstract.
Assinale a alternativa correta.
Sejam as seguintes classes escritas em linguagem Java:
class A { public String m (String s) { return s + "a"; } }
class B extends A { public String m (String s) { return s + "b"; } }
class C extends B { public String m () { return "c"; } }
class D extends C { public String m (String s) { return s + "d"; } }
Considere ainda as sentenças a seguir:
D obj = new D(); C x = obj; B y = obj; A z = obj;
A execução da expressão x.m(y.m(z.m(obj.m(new C().m("#"))))) resulta no valor
Sejam as classes seguintes escritas em Java:
class A {int x; A(){setX(10);} int getX(){return x;} void setX(int y) {x=y;}}
class B extends A {B(){ x+=100; }}
class C extends B { C(){ this(10); x*=2; } C(int y) {setX(y+getX());}}
A execução da sentença new C().getX() retorna o valor