Buscar

Java SE para o concurso do Banco do Brasil 2021

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 225 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 225 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 225 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Ferramentas e Linguagens de Programação para manipulação de dados
2
Java SE 11
3
Módulos
4
Básico da Linguagem Java
POO com Java
Mais da Linguagem Java
Básico da Linguagem Java
5
Introdução ao Java
Variáveis
Tipos primitivos e valores literais
Operadores
Expressões, declarações e blocos
Controle de fluxos
Arrays
Programação orientada a objetos com Java
6
Introdução à POO
Classes e objetos
Herança
Polimorfismo
Classes e métodos abstratos
Interfaces
Tipos enumerados
Annotations
Mais da Linguagem Java
7
Tratamento de exceções
Threads
Números e Strings
Generics
Reflection
Collections
Expressões lambda
I/O
Algoritmos em geral
Básico da Linguagem Java
8
Introdução ao Java
9
Introdução e conceituação
10
O que é Java?
11
Java
Linguagem de programação de alto nível 
Plataforma
Plataformas da tecnologia Java
12
Java SE
Java EE
Java ME
JavaFX
Java Standard Edition
Java Enterprise Edition
Java Micro Edition
Plataforma de software multimídia
Visão geral das plataformas Java
13
Java SE
14
Java Standard Edition
Sua API fornece a funcionalidade principal da linguagem Java
É a plataforma principal e a base para
Java EE
Java ME
JavaFX
Java SE
15
Define
Desde os tipos básicos e objetos da linguagem Java
Até classes de alto nível que são usadas para
Redes
Segurança
Acesso à base de dados
Desenvolvimento de interface gráfica para usuário (GUI)
Análise de XML
Java SE
16
É bastante utilizada para o desenvolvimento de aplicações desktop 
Gráfica
Criada com as bibliotecas
Acessada através de linha de comando
Swing
AWT
Com interface
Java SE
17
Consiste
Da API
De uma máquina virtual
De ferramentas de desenvolvimento
De outras bibliotecas de classes e kits de ferramentas
Java EE
Java Enterprise Edition
É construída em cima da plataforma Java SE
Fornece uma API e ambiente de tempo de execução para desenvolvimento e execução de aplicações distribuídas baseadas em Internet e Intranet:
De grande escala
Multi-camadas
Escaláveis
Confiáveis
Seguras
18
Java ME
Java Micro Edition
Fornece uma API e uma pequena máquina virtual para desenvolvimento e execução de aplicações para pequenos dispositivos
Por exemplo:
Telefones celulares
Palmtops
Tablets
19
Java ME
API Java ME 
É um subconjunto da API Java SE
Juntamente com bibliotecas de classes especiais úteis para o desenvolvimento de aplicações para pequenos dispositivos
Aplicações Java ME 
São muitas vezes clientes de serviços da plataforma Java EE
20
JavaFX
É uma plataforma para a criação de aplicações ricas para internet 
Usando uma API leve de interface para usuário
Bibliotecas JavaFX
São instaladas como parte do Java SE
Aplicações Java FX
Podem ser executadas em vários dispositivos diferentes
Desktop
Browser
Telefones celulares
São muitas vezes clientes de serviços da plataforma Java EE
21
Questões de concursos
[CESGRANRIO 2011 Petrobras] A linguagem de programação Java, lançada em 1995, tem demonstrado ser muito estável. A respeito dessa linguagem, considere as afirmativas a seguir. (Marque o texto do item como CERTO ou ERRADO)
[III] Java é uma linguagem multiplataforma, com enfoque no desenvolvimento de aplicações para a Web. 
22
Questões de concursos
[CESGRANRIO 2011 Petrobras] A linguagem de programação Java, lançada em 1995, tem demonstrado ser muito estável. A respeito dessa linguagem, considere as afirmativas a seguir. (Marque o texto do item como CERTO ou ERRADO)
[III] Java é uma linguagem multiplataforma, com enfoque no desenvolvimento de aplicações para a Web de vários tipos. 
Gabarito: ERRADO.
23
Questões de concursos
[CESGRANRIO 2012 LIGUIGAS – Profissional Júnior – Tecnologia da Informação – Análise de Sistemas] Uma certa tecnologia Java foi projetada para permitir que desenvolvedores criem facilmente aplicações Web com interfaces ricas (RIAs) que se comportem de forma consistente em múltiplas plataformas. 
24
Questões de concursos
[CESGRANRIO 2012 LIGUIGAS – Profissional Júnior – Tecnologia da Informação – Análise de Sistemas] Essa tecnologia é a
[A] JavaServer Faces
[B] JavaFX
[C] JSP
[D] EJB
[E] JRE
25
Questões de concursos
[CESGRANRIO 2012 LIGUIGAS – Profissional Júnior – Tecnologia da Informação – Análise de Sistemas] Essa tecnologia é a
[A] JavaServer Faces
[B] JavaFX
[C] JSP
[D] EJB
[E] JRE
26
Visão geral do desenvolvimento com Java
27
Arquivos .java e .class
28
Arquivos .java
São arquivos textos que contêm o código fonte
Arquivos .class
São arquivos gerados da compilação dos arquivos .java pelo compilador javac
Arquivos .class
29
Não contêm código nativo para um processador específico
Contêm bytecodes
É uma linguagem da Máquina do Virtual Java (JVM)
São interpretados e executados
Pelo comando java 
Para criar uma instância da JVM
Compilação, interpretação e execução
30
.java
javac
.class
JVM
10001
01101
10010
Linux
Compilação, interpretação e execução
31
JDK
Java Development Kit
É o conjunto de ferramentas necessárias para realizar o desenvolvimento de aplicações Java
Inclui:
Java Runtime Environment (JRE)
Ferramentas de programação:
javac: compilador
java: interpretador
appletviewer: visualizador de applets 
javadoc: gerador de documentação
jar: empacotador de aplicações
32
JRE
Java Runtime Environment
É a plataforma Java
É composto por dois componentes:
Java Virtual Machine
JVM
Java Application Programming Interface
Java API
É uma biblioteca de componentes que:
Possui vários recursos úteis
É utilizada para execução de aplicações Java
33
JRE
JRE específico de uma plataforma
É necessário instalá-lo um para a plataforma desejada
Pois junto com ele vem uma JVM que:
Saberá lidar com essa plataforma
Conseguirá executar aplicações Java naquele ambiente
34
JVM
Java Virtual Machine
É a peça-chave para fornecer capacidade de multiplataforma para as aplicações Java
“Write once, run everywhere”
Está disponível em muitos sistemas operacionais diferentes
Com isso, os mesmos arquivos .class são capazes de funcionar nesses sistemas operacionais
Microsoft Windows, Solaris OS, Linux, Mac OS, etc
Pode ser desenvolvida por qualquer organização
Desde que siga as especificações para construção de uma JVM
35
JVM
É responsável por interpretar e executar o bytecode
É provedora de formas e meios de o aplicativo conversar com o sistema operacional
No tempo de execução:
Carrega os arquivos de classe que contém bytecodes
Determina a semântica de cada bytecode individual
Executa a computação apropriada
O uso adicional do processador e da memória durante a interpretação significa que um aplicativo Java executa mais lentamente do que um aplicativo nativo
36
JIT
Compilador Just-in-time
É um componente do JRE que melhora o desempenho de aplicativos Java no tempo de execução
Ajuda a melhorar o desempenho de programas Java
Compilando bytecodes no código de máquina nativo no tempo de execução
É ativado quando um método Java é chamado
Os bytecodes desse método são compilados no código de máquina nativo
Quando um método tiver sido compilado:
A JVM chama o código compilado desse método diretamente
Em vez de interpretá-lo
37
Esquema 1
38
Esquema 2
39
Esquema 3
40
Esquema 4
41
Questões de concursos
[CESGRANRIO 2018 Transpetro – Analista de Sistemas Júnior – Processos de Negócio] O modo de execução de uma linguagem de programação, apesar de não ser obrigatório, é fortemente determinado por características do projeto da linguagem. Isso permite que as linguagens de programação sejam agrupadas pelo modo como são tipicamente processadas. Algumas linguagens são normalmente compiladas diretamente para linguagem de máquina, outras são normalmente interpretadas e, ainda, existe um grupo de linguagens híbridas que são, normalmente, compiladas para uma linguagem intermediária que é interpretada por uma máquina virtual. 
42
Questões de concursos
[CESGRANRIO 2018 Transpetro – Analista de Sistemas Júnior – Processos de Negócio] Que lista possuium exemplo de cada um dos três grupos de linguagens?
[A] C, C++ e Java
[B] JavaScript, PHP e Python
[C] Perl, Prolog e Cobol
[D] Java, Fortran e Prolog
[E] Cobol, Fortran e LISP 
43
Classificação das linguagens de programação
44
Compiladas
Interpretadas
C
C++
COBOL
Fortran
Javascript
Python
PHP
LISP
Perl
Prolog
Híbridas
Java
C#
Questões de concursos
[CESGRANRIO 2018 Transpetro – Analista de Sistemas Júnior – Processos de Negócio] Que lista possui um exemplo de cada um dos três grupos de linguagens?
[A] C, C++ e Java
[B] JavaScript, PHP e Python
[C] Perl, Prolog e Cobol
[D] Java, Fortran e Prolog
[E] Cobol, Fortran e LISP 
45
Questões de concursos
[CESGRANRIO 2011 Transpetro – Analista de Sistemas Júnior] Muito utilizada para desenvolvimento de aplicativos Web, a tecnologia Java tem como principal característica gerar aplicações que rodam em qualquer dispositivo que tenha acesso a Internet, utilizando, entre outros recursos, o software
[A] JBC (Java Bytecode Console)
[B] JDB (Java Developer Builder)
[C] MS (Java Management Server)
[D] JAC (Java Application Controler)
[E] JVM (Java Virtual Machine)
46
Questões de concursos
[CESGRANRIO 2011 Transpetro – Analista de Sistemas Júnior] Muito utilizada para desenvolvimento de aplicativos Web, a tecnologia Java tem como principal característica gerar aplicações que rodam em qualquer dispositivo que tenha acesso a Internet, utilizando, entre outros recursos, o software
[A] JBC (Java Bytecode Console)
[B] JDB (Java Developer Builder)
[C] MS (Java Management Server)
[D] JAC (Java Application Controler)
[E] JVM (Java Virtual Machine)
47
Questões de concursos
[CESGRANRIO 2012 BR Distribuidora – Profissional Júnior – Formação Analista de Sistemas – Ênfase em Java – CRM e Web] Analise o código de um programa Java a seguir.
public class TestaArgs {
public static void main(String[] args) {
System.out.println(args[5]);
}
}
48
Questões de concursos
[CESGRANRIO 2012 BR Distribuidora – Profissional Júnior – Formação Analista de Sistemas – Ênfase em Java – CRM e Web] Considere o seguinte comando:
java –hotspot TestaArgs um dois três quatro cinco seis sete
O que será impresso pelo programa ao executar esse comando?
[A] dois
[B] três
[C] quatro
[D] cinco
[E] seis
49
Questões de concursos
[CESGRANRIO 2012 BR Distribuidora – Profissional Júnior – Formação Analista de Sistemas – Ênfase em Java – CRM e Web] Considere o seguinte comando:
java –hotspot TestaArgs um dois três quatro cinco seis sete
O que será impresso pelo programa ao executar esse comando?
[A] dois
[B] três
[C] quatro
[D] cinco
[E] seis
50
JVM
Java Virtual Machine
51
Estrutura da JVM
52
Estrutura
53
Java Heap Space
Java Stack Memory
Java Stack Memory
É usada para:
Alocação de memória estática
Execução de uma thread
Contém:
Valores primitivos específicos para um método
Referências a objetos que estão em um heap
Referenciados a partir do método
54
Java Heap Space
É usada para alocação de memória dinâmica para objetos e classes em tempo de execução
Armazena os objetos
As referências a esses objetos são armazenadas na memória stack
Esses objetos, na aplicação:
Têm acesso global
Podem ser acessados ​​de qualquer lugar
55
Java Heap Space
56
Young Generation
Old Generation
Permanent Generation
É onde os objetos recém-criados começam
É para onde os objetos de longa duração são eventualmente movidos da Young Generation
Armazena metadados como classes e métodos
Questões de concursos
[CESGRANRIO 2008 CAPES – Analista de Sistemas] Em que porção da JVM (Java Virtual Machine) são armazenados objetos instanciados em um programa JAVA ?
[A] Heap
[B] GUnit
[C] Stack Pool
[D] Dump Buffer
[E] Text Segment
57
Questões de concursos
[CESGRANRIO 2008 CAPES – Analista de Sistemas] Em que porção da JVM (Java Virtual Machine) são armazenados objetos instanciados em um programa JAVA ?
[A] Heap
[B] GUnit
[C] Stack Pool
[D] Dump Buffer
[E] Text Segment
58
Questões de concursos
[CESGRANRIO 2010 BNDES – Analista de Sistemas – Suporte] Se um servidor de aplicação JAVA está com a HEAP configurada com valor abaixo do necessário, é possível que, por esse motivo, ocorram
[A] problemas de data e hora nas aplicações durante o horário de verão.
[B] erros de java.lang.OutOfMemoryError nas aplicações.
[C] erros de charset, no caso de comunicação entre sistemas heterogêneos.
[D] ataques de buffer overflow em códigos vulneráveis.
[E] ataques de força bruta nas aplicações que solicitam senha.
59
Questões de concursos
[CESGRANRIO 2010 BNDES – Analista de Sistemas – Suporte] Se um servidor de aplicação JAVA está com a HEAP configurada com valor abaixo do necessário, é possível que, por esse motivo, ocorram
[A] problemas de data e hora nas aplicações durante o horário de verão.
[B] erros de java.lang.OutOfMemoryError nas aplicações.
[C] erros de charset, no caso de comunicação entre sistemas heterogêneos.
[D] ataques de buffer overflow em códigos vulneráveis.
[E] ataques de força bruta nas aplicações que solicitam senha.
60
Garbage collection e garbage collector
61
Garbage collection
62
Coleta de lixo
É o processo em que o JRE exclui objetos 
Quando aquele determina que estes não estão mais sendo usados
Não é necessário a destruição explícita dos objetos criados
Garbage collection
Um objeto é elegível para coleta de lixo quando não houver mais referências a esse objeto
Todas as referências a um objeto devem ser descartadas antes que o objeto seja elegível para coleta de lixo
Referências mantidas em uma variável são normalmente descartadas quando:
A variável sai do escopo em que ela se encontra
Um valor null é atribuído à variável-objeto
Explicitamente
63
Garbage collector
64
É um programa que está dentro do JRE
Não é controlado pelo programador
A JVM decide quando executá-lo
Libera periodicamente a memória usada por objetos que não são mais referenciados
Garbage collector
65
Faz o seu trabalho automaticamente quando determina que é a hora certa
Não há um momento pré-determinado
Há a possibilidade do programador chamar o gabarge collector
Mesmo assim não há garantia de que este irá realmente ser executado no momento que é chamado
Método finalize() da classe Object
protected void finalize()
Pertence à classe Object
É chamado pelo Garbage Collector para um objeto 
Quando o processo Garbage Collection determina que não há mais referências para esse objeto
66
Método gc() da classe System
public static void gc()
Pertence à classe System
Força chamar o Garbage Collector
Chamar esse método sugere que a JVM envie esforços para a reciclagem de objetos não utilizados
A fim de tornar a memória que eles atualmente ocupam disponível para reutilização rápida
Nada garante que ele realmente vá coletar lixo naquele momento
Mesmo tentando “forçar” a coleta de lixo
67
Exemplo
Classe a;
Classe b;
Classe c;
a = new Classe(“A”);
b = a;
c = new Classe(“C”);
68
Exemplo
b = null;
c = new Classe(“D”);
69
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Analista de Sistemas Júnior - Engenharia de Software] Considere o seguinte código Java, contido no arquivo R.java
70
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Analista de Sistemas Júnior - Engenharia de Software] No momento imediatamente anterior à execução da linha 10, quantos objetos do tipo P, que foram criados na linha 9, tornaram-se elegíveis para ser apanhados para a garbage collection?
[A] 0
[B] 1
[C] 4
[D] 5
[E] 9
71
Comentário
72
Objetos elegíveis para coleta de lixo 
p1
p1
null
new P(0)
p1
new P(1)
p1
new P(2)
p1
new P(3)
p1
new P(4)
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Analista de Sistemas Júnior - Engenharia de Software] No momento imediatamente anterior à execução da linha 10, quantos objetos do tipo P, que foram criados na linha 9, tornaram-se elegíveis para ser apanhados para a garbage collection?
[A] 0
[B] 1
[C] 4
[D] 5
[E] 9
73
Operadores
74
Operadores aritméticos
75
Operadores aritméticos
76
Adição
+
Subtração
-Multiplicação
*
Divisão
/
Módulo ou resto da divisão
%
Adição +
77
Adição entre tipos numéricos
Concatenação de strings
Adição +
Adição entre tipos numéricos
int x = 3 + 6;
Concatenação de strings
String y = “Kal-El ” + “Gildo Araújo ” + x;
y terá valor de “Kal-El Gildo Araujo 9”
78
Adição +
Concatenação de strings
Se forem usados vários operadores de adição e vários operandos, a partir do primeiro operando do tipo String:
Terão a função de concatenar strings:
O operador de adição antes desse operando
Todos os operadores de adição após ele 
Exemplo: 
String z = 15 + 8 + “Kal-El” + 15 + 8;
z terá valor de “23Kal-El158”
15 + 8 antes do operando “Kal-El” foram somados (23)
15 + 8 depois do operando “Kal-El” foram concatenados (158)
79
Questões de concursos
[CESGRANRIO 2008 TJ/RO – Agente Judiciário – Analista de Sistemas (Desenvolvimento)] O que imprimirá a linha de código em Java a seguir?
System.out.println("1+1+1="+1+1+'1’);
[A] 1+1+1=21
[B] 3=21
[C] 1+1+1=111
[D] 3=111
[E] 111=111
80
Questões de concursos
[CESGRANRIO 2008 TJ/RO – Agente Judiciário – Analista de Sistemas (Desenvolvimento)] O que imprimirá a linha de código em Java a seguir?
System.out.println("1+1+1="+1+1+'1’);
[A] 1+1+1=21
[B] 3=21
[C] 1+1+1=111
[D] 3=111
[E] 111=111
81
Operadores unários
82
Operadores unários
83
Mais +
Indica valor positivo
Não é necessário usá-lo em números positivos
Menos -
Nega uma expressão ou um número
Incremento ++
Incrementa um valor em um
Decremento --
Diminui um valor em um
Complemento lógico !
Inverte o valor de um boolean
Operadores de igualdade e relacionais
84
Operadores de igualdade e relacionais
85
Igual a
==
Diferente de
!=
Maior que
>
Menor que
<
Maior que ou igual a
>=
Menor que ou igual a
<=
instanceof
Tipo do resultado da operação
É boolean
Exemplo:
boolean x = 1 < 2;
x recebe true porque 1 é menor que 2
86
Questões de concursos
[CESGRANRIO 2008 BR Distribuidora – Analista de Sistemas Júnior – Engenharia de Software] Considere o trecho de código a seguir.
87
Questões de concursos
[CESGRANRIO 2008 BR Distribuidora – Analista de Sistemas Júnior – Engenharia de Software] Se x for da classe String e tiver sido inicializado, esse trecho de código Java
[A] imprimirá a mensagem, apenas se x não for "0".
[B] imprimirá a mensagem, apenas se x não tiver sido inicializado com null.
[C] imprimirá a mensagem, independente do valor de x.
[D] gerará um erro de compilação.
[E] compilará, mas nunca imprimirá a mensagem.
88
Questões de concursos
[CESGRANRIO 2008 BR Distribuidora – Analista de Sistemas Júnior – Engenharia de Software] Se x for da classe String e tiver sido inicializado, esse trecho de código Java
[A] imprimirá a mensagem, apenas se x não for "0".
[B] imprimirá a mensagem, apenas se x não tiver sido inicializado com null.
[C] imprimirá a mensagem, independente do valor de x.
[D] gerará um erro de compilação.
[E] compilará, mas nunca imprimirá a mensagem.
89
Operadores de bits
90
Transformação da base 10 para base 2
91
Transformação da base 10 para base 2
92
	Valor incial	128	64	32	16	8	4	2	1	Valor final
	93	0	1	0	1	1	1	0	1	93
	20	0	0	0	1	0	1	0	0	20
	13	0	0	0	0	1	1	0	1	13
	-21	1	1	1	0	1	0	1	1	-21
Números binários negativos
A linguagem Java utiliza a notação de complemento de dois
-21 (10) representa 11101011 (2) em byte:
Transformar-se o número negativo para positivo
21 
Transformar-se o número positivo da base 10 para a base 2
00010101
Inverte-se os bits
11101010
Soma-se 1 aos bits
11101011
93
Números binários negativos
A linguagem Java utiliza a notação de complemento de dois
11101011 (2) em byte representa -21 (10):
O bit de sinal é 1
Então é um número negativo
Diminui-se 1 dos bits
11101010
Inverte-se os bits
00010101
Transformar-se o número de base 2 para base 10
21
Conclui-se que 11101011 (2) é -21 (10)
94
Operadores de bits
95
Complemento ~
AND
&
OR
|
XOR
^
Deslocamento à esquerda
<<
Deslocamento à direita
>>
Deslocamento à direita sem sinal 
>>>
Operador complemento ~
Inverte o bits de um número
Exemplo:
byte x = ~20;
x recebe -21
Operador unário complemento lógico !
Inverte o valor de um boolean
96
Operador complemento ~
	Valor incial	128	64	32	16	8	4	2	1	Valor final
	20	0	0	0	1	0	1	0	0	20
	~20	1	1	1	0	1	0	1	1	-21
97
Operadores AND &, OR | e XOR ^
Operam sobre literais inteiros
Se os operandos forem booleanos:
O resultado será:
Igual ao obtido com operadores:
AND condicional &&
OR condicional ||
Mas sem curto-circuito
Todos os operandos serão avaliados
Mesmo sem necessidade
Possuem apenas um símbolo cada operador
Os operadores condicionais AND && e OR || possuem dois símbolos cada
98
Operadores AND &, OR | e XOR ^
	Valor incial	128	64	32	16	8	4	2	1	Valor final
	93	0	1	0	1	1	1	0	1	93
	-21	1	1	1	0	1	0	1	1	-21
	AND &	0	1	0	0	1	0	0	1	73
	OR I	1	1	1	1	1	1	1	1	-1
	XOR ^	1	0	1	1	0	1	1	0	-74
99
Operador de descolamento à esquerda
Operador de descolamento à esquerda <<
Desloca:
Os bits do primeiro operando
Para esquerda 
Pelo número especificado pelo segundo operando
Preenche na direita com zero
100
Operador de descolamento à esquerda
Exemplo:
byte x = 13 << 2; // x recebe 52.
13: 00000000000000000000000000001101
52: 00000000000000000000000000110100
byte y = -21 << 2; // y recebe -84.
-21: 11111111111111111111111111101011
-84: 11111111111111111111111110101100
101
Operador de descolamento à esquerda
	Valor incial	128	64	32	16	8	4	2	1	Valor final
	13	0	0	0	0	1	1	0	1	13
	13 << 2	0	0	1	1	0	1	0	0	52
	-21	1	1	1	0	1	0	1	1	-21
	-21 << 2	1	0	1	0	1	1	0	0	-84
102
Operador de descolamento à direita
Operador de descolamento à direita >>
Desloca:
Os bits do primeiro operando
Para direita 
Pelo número especificado pelo segundo operando
Preenche na esquerda com zero ou um
Dependendo do bit de sinal
103
Operador de deslocamento à direita
Exemplo:
byte x = 13 >> 2; // x recebe 3.
13: 00000000000000000000000000001101
03: 00000000000000000000000000000011
byte y = -21 >> 2; // y recebe -6.
-21: 11111111111111111111111111101011
-06: 11111111111111111111111111111010
104
Operador de deslocamento à direita
	Valor incial	128	64	32	16	8	4	2	1	Valor final
	13	0	0	0	0	1	1	0	1	13
	13 >> 2	0	0	0	0	0	0	1	1	3
	-21	1	1	1	0	1	0	1	1	-21
	-21 >> 2	1	1	1	1	1	0	1	0	-6
105
Operador de deslocamento à direita sem sinal
Operador de deslocamento à direita sem sinal >>>
Desloca:
Os bits do primeiro operando
Para direita 
Pelo número especificado pelo segundo operando
Preenche na esquerda com zero
Independentemente do bit de sinal
106
Operador de deslocamento à direita sem sinal
Exemplo:
byte x = 13 >>> 2; // x recebe 3.
13: 00000000000000000000000000001101
03: 00000000000000000000000000000011
byte y = (byte) (-21 >>> 2); // y recebe -6.
-21: 11111111111111111111111111101011
1073741818 (byte, -6): : 00111111111111111111111111111010
107
Operador de deslocamento à direita sem sinal
	Valor incial	128	64	32	16	8	4	2	1	Valor final
	13	0	0	0	0	1	1	0	1	13
	13 >>> 2	0	0	0	0	0	0	1	1	3
	-21	1	1	1	0	1	0	1	1	-21
	-21 >>> 2	1	1	1	1	1	0	1	0	-6
108
Questões de concursos
[CESGRANRIO 2010 Petrobrás – Analista de Sistemas Júnior – Engenharia de Software] Abaixo são exibidas expressões na linguagem Java, nas quais a e b são variáveis do tipo boolean. Qual, dentre as expressões que, ao ser avaliada, resulta em um valor diferente das demais?
[A] (!a | b) ^ true
[B] a ^b
[C] (a | b) & ! (a & b)
[D] (!a | !b) & ( a | b)
[E] (a | (b^false)) & ( (a^true) | ! b)
109
Comentários
	a	b	A	B	C	D	E
	V	V	F	F	F	F	F
	V	F	V	V	V	V	V
	F	V	F	V	V	V	V
	F	F	F	F	F	F	F
110
Questões de concursos
[CESGRANRIO 2010 Petrobrás – Analista de Sistemas Júnior – Engenharia de Software] Abaixo são exibidas expressões na linguagem Java, nas quais a e b são variáveis do tipo boolean. Qual, dentre as expressões que, ao ser avaliada, resulta em um valor diferente das demais?
[A] (!a | b) ^ true
[B] a ^b
[C] (a | b) & ! (a & b)
[D] (!a | !b) & ( a | b)
[E] (a | (b^false)) & ( (a^true) | ! b)
111
Questões de concursos
[CESGRANRIO 2010 Petrobrás– Analista de Sistemas Júnior – Engenharia de Software] Abaixo são exibidas expressões na linguagem Java, nas quais a, b e c são variáveis do tipo boolean. Qual, dentre as expressões que, ao ser avaliada, resulta em um valor diferente das demais? 
[A] (!c | b ) & ! (a & !b)
[B] ((!c & !(a & b )) | b )
[C] ((a & b) |(!a & !b & !c ) | (!a & b ))
[D] (!c | b ) & ! (a & !b)
[E] ((!a ^ c) | (b & (a ^c))) & !(a & !b & c)
112
Comentários
	a	b	c	A	B	C	D	E
	V	V	V	V	V	V	V	V
	V	V	F	V	V	V	V	V
	V	F	V	F	F	F	F	F
	V	F	F	F	V	F	F	F
	F	V	V	V	V	V	V	V
	F	V	F	V	V	V	V	V
	F	F	V	F	F	F	F	F
	F	F	F	V	V	V	V	V
113
Questões de concursos
[CESGRANRIO 2010 Petrobrás – Analista de Sistemas Júnior – Engenharia de Software] Abaixo são exibidas expressões na linguagem Java, nas quais a, b e c são variáveis do tipo boolean. Qual, dentre as expressões que, ao ser avaliada, resulta em um valor diferente das demais? 
[A] (!c | b ) & ! (a & !b)
[B] ((!c & !(a & b )) | b )
[C] ((a & b) |(!a & !b & !c ) | (!a & b ))
[D] (!c | b ) & ! (a & !b)
[E] ((!a ^ c) | (b & (a ^c))) & !(a & !b & c)
114
Questões de concursos
[CESGRANRIO 2012 Petrobrás - Analista de Sistemas Júnior – Engenharia de] Seja o seguinte trecho de código Java, onde o operador >> representa um shift à direita:
115
Comentários
Analisando o resultado da execução da classe:
(short) ffff9c: 1111 1111 1001 1100
ffff9c >> 2: 1111 1111 1111 1111 1110 0111
(short): 1111 1111 1110 0111
Transformando o valor binário acima em decimal:
O bit de sinal é 1: então é um número negativo
Diminui-se 1 dos bits: 1111 1111 1110 0110
Inverte-se os bits: 0000 0000 0001 1001
Transformando o número na base 2 para base 10: 25
Conclui-se que o valor na base 2 é -25 na base 10
116
Questões de concursos
[CESGRANRIO 2012 Petrobrás - Analista de Sistemas Júnior – Engenharia de Software] O que será exibido no console quando for executado o método main()?
[A] -400
[B] -200
[C] -25
[D] 25
[E] 400
117
Questões de concursos
[CESGRANRIO 2012 Petrobrás - Analista de Sistemas Júnior – Engenharia de Software] O que será exibido no console quando for executado o método main()?
[A] -400
[B] -200
[C] -25
[D] 25
[E] 400
118
Operadores de atribuição
119
Operadores de atribuição
120
Atribuição simples
=
Atribuição composta
op=
Operador de atribuição simples =
É o operador mais comum de ocorrer
Possui função diferente do operador de igualdade ==
Não é usado para comparação
Copia um valor do lado direito para a variável do lado esquerdo
Sendo esse valor de:
Uma variável
Um literal 
121
Operador de atribuição simples =
Exemplo:
int x = 15;
Copia o valor literal inteiro 15 para a variável x
int y = x;
Copia o valor do variável x para a variável y
122
Operadores de atribuição composta
123
Com os operadores aritméticos
Incremental +=
Decremental -=
Multiplicativa *=
Divisória /=
Modular %=
Com os operadores de bits
&=
^=
|=
<<=
>>=
>>>=
Operadores de atribuição composta
Sintaxe:
x op= y;
É equivalente a x = (T) (x op y);
Casting implícito
Sendo:
x e y:
Operandos
op:
Operação
T:
Tipo de x
124
Questões de concursos
[CESGRANRIO 2008 TJ/RO – Analista Judiciário – Análise de Sistemas - Desenvolvimento] Em Java, a atribuição composta x += y é equivalente a x = (T) (x + y), onde T é o tipo de x. Com base nesta premissa, considere as duas linhas de programa a seguir.
x += y;
x = x + y;
125
Questões de concursos
[CESGRANRIO 2008 TJ/RO – Analista Judiciário – Análise de Sistemas - Desenvolvimento] A primeira linha compilará, e a segunda linha irá gerar um erro em tempo de compilação, se x e y forem declarados, respectivamente, como:
[A] short e int
[B] int e short
[C] int e char
[D] String e int
[E] int e String
126
Comentários
[A] short e int
x += y;
Não gera erro
Há o casting embutido
x = (short) (x + y)
x = x + y;
Gera erro
O resultado da operação é do tipo int
É necessário o casting para que x possa receber o resultado
127
Comentários
[B] int e short
x += y;
Não gera erro
Há o casting embutido
x = (int) (x + y)
x = x + y;
Não gera erro
x é do tipo int
O resultado será atribuído a ela é também do tipo int
128
Comentários
[C] int e char
Variáveis do tipo char podem receber valores de 0 a 65.536
Há a conversão automática de char para int
x += y;
Não gera erro
Há o casting embutido
x = (int) (x + y)
x = x + y;
Não gera erro
x é do tipo int
O resultado será atribuído a ela é também do tipo int
129
Comentários
[D] String e int
O operador de adição também trabalha como concatenador de Strings
x += y;
Não gera erro
A variável x do tipo String pode receber a concatenação dela com a variável y do tipo int
x = x + y
x = x + y;
Não gera erro
A variável x do tipo String pode receber a concatenação dela com a variável y do tipo int
130
Comentários
[E] int e String
x += y;
Gera erro
A variável x do tipo int não pode receber a concatenação dela com a variável y do tipo String
x = x + y
x = x + y;
Gera erro
A variável x do tipo int não pode receber a concatenação dela com a variável y do tipo String
131
Questões de concursos
[CESGRANRIO 2008 TJ/RO – Analista Judiciário – Análise de Sistemas - Desenvolvimento] A primeira linha compilará, e a segunda linha irá gerar um erro em tempo de compilação, se x e y forem declarados, respectivamente, como:
[A] short e int
[B] int e short
[C] int e char
[D] String e int
[E] int e String
132
Declarações de controle de fluxo
133
Conceituação
134
Conceituação
Controlam a ordem que outras declarações serão executadas
Exemplo:
while (i < 10) {
…
i++;
}
135
Estruturas de condição e de repetição
136
if-else
switch
while
for
Estruturas de condição
Estruturas de repetição
do-while
Estruturas de quebra de controle de fluxo
137
break
continue
return
Questões de concursos
[CESGRANRIO 2012 CMB – Analista – Desenvolvimento de Sistemas] Na linguagem Java, a ordem em que as instruções de programa são executadas é denominada
[A] desvio condicional
[B] núcleo do loop
[C] fluxo de programa
[D] expressão lógica
[E] operação de sequência
138
Questões de concursos
[CESGRANRIO 2012 CMB – Analista – Desenvolvimento de Sistemas] Na linguagem Java, a ordem em que as instruções de programa são executadas é denominada
[A] desvio condicional
[B] núcleo do loop
[C] fluxo de programa
[D] expressão lógica
[E] operação de sequência
139
if-else
140
if
É a declaração mais comum 
Dentre todas as declarações de controles de fluxos
Instruções dentro dela
Serão executadas se a condição da estrutura for true
Condição da estrutura
Deve:
Vir entre parênteses
Retornar um valor booleano
141
if
Trecho de código:
int x = 15;
if (x <= 20)
System.out.prinltn(“x <= 20”);
Resultado da execução:
x <= 20
142
else
É opcional
É correspondente com o if mais próximo
Exemplo:
int x = 15;
if (x <= 15) if (x == 15) y = 0; else y = 1;
Utilização de chaves
É uma boa prática para organizar o código
Exemplo:
if (x <= 15) { if (x == 15) y = 0; else y = 1; }
143
else
Identação do código
Melhora ainda mais a visualização do código
Exemplo:
if (x <= 15) {
if (x == 15)
y = 0;
else
y = 1;
}
144
else
Trecho de código:
int x = 21;
if (x <= 20)
System.out.prinltn(“x <= 20”);
else
System.out.prinltn(“x > 20”);	
Resultado da execução:
x > 20
145
switch
146
Conceituação
Múltiplas seleções ou escolhas
É uma declaração mais fácil de entender e manter do que uma declaração if/else com várias condições com muitas alternativas
Corpo da declaração
Bloco switch
É composto por:
Um ou mais rótulos cases
Trabalham os casos específicos
Apenas um rótulo default
Trabalham os casos não específicos
147
Exemplo
Trecho de código:
int x = 15;
switch(x) {
case 14:
System.out.println(“x = 14.”);
break;
case 15:
System.out.println(“x = 15.”);
break;
default:
System.out.println(“x != 14 e x != 15.”);
}
Resultado da execução:
x = 15
148
Tipos trabalhados 
149
Tipos primitivos
byte
short
char
int
Classes wrappers
Byte
Short
Character
Integer
Strings
Tipos enumerados
Tipos trabalhados até ao Java 6
150
Tipos primitivos
byte
short
charint
if/else x switch
Declaração if/else
Pode testar expressões com base em faixas de valores ou condições
Declaração switch 
Testa expressões com base apenas em um único valor dos tipos:
Tipos primitivos:
byte, short, char e int
Classes wrappers:
Byte, Short, Character e Integer
String
Tipos enumerados
151
Questões de concursos
[CESGRANRIO 2014 Petrobras – Técnico(a) de Informática Júnior] Analise o programa Java a seguir.
152
Comentários
Resultado da execução:
22231-090
153
Questões de concursos
[CESGRANRIO 2014 Petrobras – Técnico(a) de Informática Júnior] Um técnico de informática identifica que esse programa
[A] não compila em nenhuma versão da linguagem Java
[B] compila apenas a partir da versão Java SE 6, porém apresentará um erro de execução.
[C] compila apenas a partir da versão Java SE 7, porém apresentará um erro de execução.
[D] compila e executa perfeitamente a partir da versão Java SE 6.
[E] compila e executa perfeitamente a partir da versão Java SE 7.
154
Questões de concursos
[CESGRANRIO 2014 Petrobras – Técnico(a) de Informática Júnior] Um técnico de informática identifica que esse programa
[A] não compila em nenhuma versão da linguagem Java
[B] compila apenas a partir da versão Java SE 6, porém apresentará um erro de execução.
[C] compila apenas a partir da versão Java SE 7, porém apresentará um erro de execução.
[D] compila e executa perfeitamente a partir da versão Java SE 6.
[E] compila e executa perfeitamente a partir da versão Java SE 7.
155
while
156
Conceituação
Executa uma instrução ou um conjunto de instruções enquanto uma condição for verdadeira
Condição da estrutura
É feita no início da declaração
Deve:
Vir entre parênteses
Retornar um valor booleano
157
Exemplo
Trecho de código:
int x = 1;
while (x < 11) {
System.out.print(x + “, ”);
x++;
}
Resultado da execução:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
158
Questões de concursos
[CESGRANRIO 2005 AL/TO – Programador de computador] Analise o algoritmo a seguir implementado em Java.
159
Questões de concursos
[CESGRANRIO 2005 AL/TO – Programador de computador] Se o método alg receber como parâmetros, respectivamente, os valores numéricos "100,0", "0,1" e "4", ele retornará o valor:
[A] 41
[B] 42
[C] 43
[D] 44
[E] 45
160
Comentários
	Iteração	C	T	X	TR	M	R	V
	1	100	0.1	4	1	100	-	0
	2 (while)	100	0.1	4	2	110	10	10
	3 (while)	100	0.1	4	3	110	11	21
	4 (while)	100	0.1	4	4	110	11	32
	5 (while)	100	0.1	4	5	110	11	43
161
Questões de concursos
[CESGRANRIO 2005 AL/TO – Programador de computador] Se o método alg receber como parâmetros, respectivamente, os valores numéricos "100,0", "0,1" e "4", ele retornará o valor:
[A] 41
[B] 42
[C] 43
[D] 44
[E] 45
162
do-while
163
Conceituação
Executa uma instrução ou um conjunto de instruções enquanto uma condição for verdadeira
Condição da estrutura
É feita no final da declaração
Deve:
Vir entre parênteses
Retornar um valor booleano
164
Exemplo
Trecho de código:
int x = 1;
do {
System.out.print(x + “, ”);
x++;
} while (x < 11);
Resultado da execução:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
165
while x do-while
166
Declaração
while
Testa a condição no início
Não há garantia de que um loop será executado
do-while
Testa a condição no final
Pelo menos um loop é executado
Diferença
Consequência
Declaração
for
167
Conceituação
É uma declaração que fornece uma forma compacta para repetir uma faixa de valores
Sintaxe:
for (inicialização; condição; incremento) {
Instruções;
}
168
Sintaxe
169
Expressão de inicialização
Armazena a inicialização de um contador do loop
É executada apenas uma vez
Expressão de condição
Contém a condição a ser testada antes de cada nova passagem no loop
Expressão de incremento
Atualiza o contador
Pode suportar mais de um contador
Porém, fica uma estrutura difícil de se manter
Exemplo
Trecho de código:
for (int x = 1; x < 11; x++) {
System.out.print(x + “, ”);
}
Resultado da execução:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10
170
for each 
É mais compacto e melhorado
É Utilizado para trabalhar com:
Collections
Arrays
O contador vai assumir o valor de cada componente de:
Uma collection
Um array
Recomenda-se a sua utilização sempre que possível
171
for each 
Trecho de código:
String[] meses = {"JAN", "FEV", "MAR"};
for (String valor : meses) {
System.out.print(valor + ", ");
}
System.out.println();
for (int i = 0; i < meses.length; i++) {
System.out.print(meses[i] + ", ");
}
Resultado da execução:
JAN, FEV, MAR, 
JAN, FEV, MAR,
172
for each 
Trecho de código:
List<String> meses2 = new ArrayList<>();
meses2.add("JAN");
meses2.add("FEV");
meses2.add("MAR");
for (String valor : meses2) {
System.out.print(valor + ", ");
}
System.out.println();
for (int i = 0; i < meses2.size(); i++) {
System.out.print(meses2.get(i) + ", ");
}
Resultado da execução:
JAN, FEV, MAR, 
JAN, FEV, MAR,
173
Questões de concursos
[CESGRANRIO 2012 Chesf – Profissional de Nível Superior – Analista de Sistemas] Considere o trecho de código que corresponde ao método principal de uma classe em linguagem Java.
174
Questões de concursos
[CESGRANRIO 2012 Chesf – Profissional de Nível Superior – Analista de Sistemas]
175
Questões de concursos
[CESGRANRIO 2012 Chesf – Profissional de Nível Superior – Analista de Sistemas] Qual o resultado produzido por esse método quando ele é corretamente executado?
[A] 0
[B] 1
[C] 2
[D] 3
[E] 5
176
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Técnico de Informática] Qual a instrução Java em que o valor da variável x será 13 após o loop ter executado 5 vezes? 
[A]
177
Comentários
	x	Loop
	3	1
	5	2
	7	3
	9	4
	11	5
	13	-
178
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Técnico de Informática] Qual a instrução Java em que o valor da variável x será 13 após o loop ter executado 5 vezes? 
[A]
179
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Técnico de Informática] Qual a instrução Java em que o valor da variável x será 13 após o loop ter executado 5 vezes? 
[B]
180
Comentários
	x	Loop
	1	1
	6	2
	11	3
	17	-
181
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Técnico de Informática] Qual a instrução Java em que o valor da variável x será 13 após o loop ter executado 5 vezes? 
[C]
Loop infinito
182
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Técnico de Informática] Qual a instrução Java em que o valor da variável x será 13 após o loop ter executado 5 vezes? 
[D]
183
Comentários
	x	Loop
	1	1
	2	2
	3	3
	4	4
	5	5
	6	6
	7	7
	8	8
	9	9
	10	10
	11	11
	12	12
	13	-
184
Questões de concursos
[CESGRANRIO 2011 Petrobrás – Técnico de Informática] Qual a instrução Java em que o valor da variável x será 13 após o loop ter executado 5 vezes? 
[E]
185
Comentários
	x	Loop
	5	1
	6	2
	7	3
	8	4
	9	5
	10	6
	11	7
	12	-
186
Estruturas de quebra de controle de fluxo
187
Estruturas
188
break
continue
return
break
Trecho de código:
for (int x = 1; x < 11; x++) {
if (x == 5) {
System.out.println("Parou no " + x);
break;
}
System.out.println(x);
}
Resultado da execução:
1
2
3
4
Parou no 5
189
continue
for (int x = 1; x < 11; x++) {
if (x == 2) {
System.out.println(“Saltou o 2”);
continue;
}
System.out.println(x + “, ”);
}
190
Arrays
191
Conceituação
São objetos que contém um conjunto de valores do mesmo tipo
Cada elemento de um array
Componente de array
É uma variável
É acessado por um índice 
De 0 a n – 1
Onde n é o tamanho do array 
Tamanho de um array 
É estabelecido quando o array é criado
É fixo
192
Etapas de um array
193
DC IA
Declaração
Criação
Inicialização
Acesso
Etapas de um array
194
Declaração de um array
Colchetes
São utilizados na declaração de um array
Duas formas:
tipo[ ] nomeArray; // É a forma mais recomendada.
tipo nomeArray[ ];
Exemplos:
byte[] arrayBytes;
Candidato arrayCandidatos[];
195
Criação de um array
É onde:
O tamanho do array é:
Definido
Fixado
Os componentes do array são inicializados automaticamente com valores padrões dos tipos
196
Criação de um array
197
Duas formas
Utilizando o operador newSeguido
Do tipo
Do tamanho do array
Fazendo junção com a fase de inicialização
Criação de um array
Utilizando o operador new seguido do tipo e o tamanho do array
tipo[ ] array = new tipo[n];
Sendo n o tamanho do array
Exemplos:
// Array declarado e criado.
byte[] arrayBytes = new byte[10];
// Array declarado e criado.
Candidato[] arrayCandidatos = new Candidato[5]; 
198
Criação de um array
Fazendo junção com a fase de inicialização
tipo[ ] array = {valo1, valo2, valo3, …, valorN};
Sendo o número de valores o tamanho do array
Os valores devem estar entre chaves { }
Exemplo:
// Array declarado, criado com tamanho 6 e inicializado.
byte[] arrayBytes = {4, 5, 7, 8, 23, 45}; 
199
Inicialização de um array
200
Duas formas
Fazendo junção com a fase de criação
Fazendo junção com a fase de acesso
Inicialização de um array
Fazendo junção com a fase de criação
tipo[ ] array = {valo1, valo2, valo3, …, valorN};
Sendo o número de valores o tamanho do array
Os valores devem estar entre chaves { }
Exemplo:
// Array declarado, criado com tamanho 6 e inicializado.
byte[] arrayBytes = {4, 5, 7, 8, 23, 45}; 
201
Inicialização de um array
Fazendo junção com a fase de acesso
array[0] = valo1;
array[1] = valor2;
array[n – 1] = valorN; // Sendo n o tamanho do array.
Exemplo:
byte[] arrayBytes = new byte[2];
arrayBytes[0] = 4;
arrayBytes[1] = 5;
202
Acesso aos componentes de um array
Cada elemento de um array
Componente de array
É:
Uma variável
Acessado por um índice 
De 0 a n – 1
Onde n é o tamanho do array 
Sintaxe:
array[0] = valo1;
array[1] = valor2;
array[n – 1] = valorN;
203
Tamanho de um array
Trecho de código:
byte[] array = {4, 5, 7, 8, 23}; 
System.out.println(array.length);
Resultado da execução:
5
204
for each 
Trecho de código:
String[] meses = {"JAN", "FEV", "MAR"};
for (String valor : meses) {
System.out.print(valor + ", ");
}
System.out.println();
for (int i = 0; i < meses.length; i++) {
System.out.print(meses[i] + ", ");
}
Resultado da execução:
JAN, FEV, MAR, 
JAN, FEV, MAR,
205
Arrays multidimensionais
São arrays de arrays
Sintaxe:
tipo[ ][ ] array = new tipo[n][m];
Onde o par [ ] define uma dimensão
206
Arrays multidimensionais
Exemplo:
// Dois candidatos e três notas para cada um.
double[][] notasProvas = new double[2][3];
notasProvas[0][0] = 9;
notasProvas[0][1] = 7;
notasProvas[0][2] = 7.5;
notasProvas[1][0] = 8;
notasProvas[1][1] = 10;
notasProvas[1][2] = 8.5;
207
Arrays multidimensionais
208
Questões de concursos
[CESGRANRIO 2012 Caixa – Técnico Bancário – Tecnologia da Informação] Considere o programa Java a seguir.
package teste;
public class Teste {
public static void main(String[] args) {
int i = 0;
int[] vet = {2,2};
for (;i<=1;i++){
vet[i] = i++;
System.out.println(“vet” + i + “=” + vet[i]);
}
}
}
209
Comentários
Código:
public class Teste {
public static void main(String[] args) {
int i = 0;
int[] vet = {2, 2};
for (; i <= 1; i++) {
vet[i] = i++; 
System.out.println("vet" + 0 + " = " + vet[0]);
System.out.println("vet" + i + " = " + vet[i]);
}
}
}
	i	vet	vet[i]	
	0	{2, 2}	vet[0]	0
	1	{0, 2}	vet[1]	2
210
Questões de concursos
[CESGRANRIO 2012 Caixa – Técnico Bancário – Tecnologia da Informação] O que será exibido no console quando esse programa for executado?
[A] vet1=1 vet2=2
[B] vet1=2 vet2=2
[C] java.lang.ArrayIndexOutOfBoundsException
[D] vet2=2
[E] vet1=2
211
Questões de concursos
[CESGRANRIO 2012 Caixa – Técnico Bancário – Tecnologia da Informação] O que será exibido no console quando esse programa for executado?
[A] vet1=1 vet2=2
[B] vet1=2 vet2=2
[C] java.lang.ArrayIndexOutOfBoundsException
[D] vet2=2
[E] vet1=2
212
Questões de concursos
[CESGRANRIO 2011 Petrobras – Analista de Sistemas Júnior – Infraestrutura] Considere o programa em linguagem Java abaixo.
213
Comentários
Código:
public class C{
public static void main(String []args){ 
int matriz[][] = {{0, 1, 1, 0}, 
{1, 1, 0, 1},
{0, 0, 1, 0}};
int[] vetor = new int[matriz.length];
// Array de três posições.
...
214
	matriz				
		[0]	[1]	[2]	[3]
	[0]	0	1	1	0
	[1]	1	1	0	1
	[2]	0	0	1	0
	vetor	
	[0]	0
	[1]	0
	[2]	0
Comentários
Código:
public class C{
...
for (int i = 0; i < matriz.length; i++) { 
int c = 1;
for (int j = 0; j < i; j++) {
if (matriz[i][j] == 1) {
if (c == vetor[j]) {
c++;
}
}
}
vetor[i] = c;
}
...
215
	vetor		
		Valor anterior	Novo valor
	[0]	0	1
	[1]	0	2
	[2]	0	1
	matriz				
		[0]	[1]	[2]	[3]
	[0]	0	1	1	0
	[1]	1	1	0	1
	[2]	0	0	1	0
Comentários
Código:
public class C{
...
for (int i = 0; i < matriz.length; i++) { 
System.out.print(vetor[i]);
}
}
}
	i	vet	vet[i]	
	0	{2, 2}	vet[0]	0
	1	{0, 2}	vet[1]	2
216
Questões de concursos
[CESGRANRIO 2011 Petrobras – Analista de Sistemas Júnior – Infraestrutura] O que é impresso pelo programa fornecido?
[A] 112
[B] 113
[C] 121
[D] 123
[E] 124
217
Questões de concursos
[CESGRANRIO 2011 Petrobras – Analista de Sistemas Júnior – Infraestrutura] O que é impresso pelo programa fornecido?
[A] 112
[B] 113
[C] 121
[D] 123
[E] 124
218
Questões de concursos
[CESGRANRIO 2010 BR Distribuidora – Analista de Sistemas Júnior – Infraestrutura]
219
Questões de concursos
220
Questões de concursos
[CESGRANRIO 2010 BR Distribuidora – Analista de Sistemas Júnior – Infraestrutura] O código acima (testApp.java) está sendo construído por um analista. Entretanto, ele apresenta um erro que é acusado durante o processo de compilação. 
221
Questões de concursos
[CESGRANRIO 2010 BR Distribuidora – Analista de Sistemas Júnior – Infraestrutura] Qual é a linha que contém este erro?
[A] Merge(arrayA, 4, arrayB, 6, arrayC)
[B] Display(arrayC, arrayC.length)
[C] while (aDex < sizeA && dDex < sizeB)
[D] if (arrayA[aDex] <> arrayB[aDex])
[E] System.out.println(theArray[j] + " ")
222
Questões de concursos
[CESGRANRIO 2010 BR Distribuidora – Analista de Sistemas Júnior – Infraestrutura] Qual é a linha que contém este erro?
[A] Merge(arrayA, 4, arrayB, 6, arrayC)
[B] Display(arrayC, arrayC.length)
[C] while (aDex < sizeA && dDex < sizeB)
[D] if (arrayA[aDex] <> arrayB[aDex])
if (arrayA[aDex] != arrayB[aDex])
[E] System.out.println(theArray[j] + " ")
223
224
225
Lavf58.29.100

Continue navegando