Flashcards
01

Cards in this deck (149)
- 1—Erro (3) : Variáveis declaradas no for não tem escopo fora dele.

- 2—Erro (6) : O escopo da variável local é somente o método a qual ele pertence, a variável s não pode ser usada fora do método m1;

- 3—Erro (3) : Não podemos ter uma variável estática e outra não estática com o mesmo nome no mesmo escopo.
Erro (5) : Não podemos declarar uma variável com o mesmo nome do parâmetro recebido dentro de um método.
- 4—Imprime 20 : Podemos ter uma variável local com mesmo nome de uma variável membro da classe pois são escopos diferentes. Este processo é chamado de Shadowing.

- 5—Erro (4) : Falta (;) no final da instrução.

- 6—Imprime de 0 a 19 e 15. As duas variáveis i estão em contextos diferentes.

- 7—Erro (4) : Se o método recebe um array de Strings como parâmetro, então não pode atribuir um int para tal variável.

- 8—Imprime de 10 a 99 : Como a variável é estática é usada apenas uma variável que atua como variável local, e não criado uma variável para cada new.

- 9—Compila e executa : Construtor pode ter um return funcionando como break, mas não pode retornar nem objeto nem variável.

- 10—Erro (12) : Import não pode estar no meio da classe, deve vir sempre depois do pacote e antes da definição da primeira classe. Lembrando que foreach não altera o objeto por trabalhar com variáveis locais que se tornam inacessíveis após o final do bloco.

- 11—Executa e não imprime nada : Teste( ) é método e não construtor por ter retorno explícito.

- 12—As definições de pacote e importação estão corretas.

- 13—Erro (2) : Apenas a classe com o nome do arquivo pode ser pública, e cada arquivo só pode ter uma classe pública. Se o arquivo tem nome A.java, B não pode ser público.
Erro (4) : Não pode existir (,) entre a definição de composição e herança, apenas pode ser usada para separar várias heranças ou composições.
- 14—Todas as definições de main estão corretas : podemos trocar a ordem do public e static, mas não o retorno; O nome da variável não importa; Como em qualquer definição de array os ([ ]) podem vir em qualquer lugar exceto antes do tipo da variável ou no meio da palavra (arg[ ]s).

- 15—Erro (2) : Não podemos trocar o retorno ou o nome de lugar, apenas o public com static.
Erro (3) : Em uma definição de array o ([ ]) não podem vir antes do tipo da variável ou no meio de uma palavra.![Erro (2) : Não podemos trocar o retorno ou o nome de lugar, apenas o public com static. Erro (3) : Em uma definição de array o ([ ]) não ...](https://examtimeassets.s3.amazonaws.com/uploads/media/image/14199765/desktop_7a2f4c1e-c013-470e-b20f-64a051539689.png)
- 16—Erro (1) : Só pode usar java com o arquivo .class, sem a extensão

- 17—Compila e executa : Usa o javac com o arquivo .java explicitando a extensão para compilar para bytecode. E usamos o comando java com o arquivo .class ocultando a extensão para a JVM chamar e executar a classe.

- 18—Erro (2) : Usamos javac com o arquivo .java.

- 19—Compila e imprime Hello Mario : Podemos passar argumentos para o programa na linha de comando usando o comando java (nunca javac);

- 20—Erro no prompt : Não podemos passar argumentos no javac, só no comando java.

- 21—Compila e executa : Se for definido um pacote em uma classe do arquivo, este pacote deverá ser explícito tanto na compilação como na execução, mesmo que a página atual do prompt seja a do arquivo.

- 22—correto, define a versão em que o arquivo fonte foi escrito.

- 23—Erro : o comando java não executa arquivos .java e sim arquivos .class, e não podemos definir a versão do java em que foi escrito o código usando o java, e sim usando o javac.

- 24—Erro (2) : Definição de classe não pode ter parênteses, pois classe não recebe argumento, só método e construtores. O resto está correto, usamos / para separar os pacotes na compilação com javac e . para separar os pacotes na execução com java.

- 25—Usamos -D para passar parâmetros e propriedades antes do nome da classe na execução usando java, e argumentos depois do nome da classe também na execução do arquivo usando java.

- 26—classpath define arquivos e pastas que serão usadas para achar as classes do aplicativo, usamos tanto no javac quanto no java, e podemos usar vários arquivos e pastas em locais diferentes separados por (; - windows ou : - mac).

- 27—comando jar é utilizado para criar um arquivo .jar. -c create cria o arquivo -f file informa o nome do arquivo. Ao executar com o java usamos -cp pois passaremos vários arquivos, no mínimo o jar e a classe main.

- 28—jar cria um arquivo .jar da aplicação. -c create cria o arquivo, -m manifest define um arquivo manifest que informa a classe main, -f file indica o nome do arquivo. na frente vem o nome do arquivo, o nome do arquivo manifest e a pasta da aplicação. Ao executar usamos java -jar e o nome do jar.

- 29—Erro (1) : Definição de classe não tem parênteses, pois classes não recebem argumentos, somente métodos e construtores.
Erro (2) : O método main não tem retorno, mas definir o retorno como int compila como um método não executável, mas não foi definido um int para retorno.
- 30—Compila mas ao executar diz que não há classe executável : mas não imprime nada, não existe método executável, pois o método executável é public, não protected.

- 31—javac b/A.java
compila o programa, e
java b.A
executa o programa
- 32—Erro (2) : Void é escrito com letra minúscula.
(Null pointer exception) : Podemos imprimir um array null, imprime null. Podemos acessar o tamanho de um array null, que vai dar 0. Mas acessar qualquer posição de um array null resulta em erro de execução.
- 33—Para compilar usamos
javac b/A.java
Para criar o arquivo jar:
jar -cf programa.jar b.A.java
Para executar o jar usamos
java -cp programa.jar b.A
- 34—javac -cp programa.jar:. b/A.java
pois devemos adicionar na busca o programa e o diretório atual. No mac usamos : e no windows ; para separar as pastas ou arquivos inclusos na busca.
- 35—Erro (3/0) : Para usarmos o fully qualified name da classe cliente ou importar esta classe, ela precisa ser pública e não default. Classes default só podem ser acessadas dentro do próprio pacote.

- 36—Erro (2) : Não podemos importar duas classes com o mesmo nome, a segunda deve usar o fully qualified name.

- 37—d1 é do tipo java.util.Date : Na importação é válido o mais específico e não a ordem em que foi importado.

- 38—Erro (0/2) : Gerente não tem pacote definido, então pertence ao pacote padrão, e portanto não pode ser importada em outro pacote. Tanto que todo import deve ter pacote.classe ou pacote.* nunca o nome da classe sozinha.

- 39—Erro (4) : Não compila pois o compilador não sabe qual dos Date usar, se do util ou se do sql, deve ser informado o fully qualified name.

- 40—Erro (0/4) : Não foi importada a classe A, para isso o import deveria ser:
import sistema.Prova.*;
pois importar um pacote não importa seus sub pacotes, apenas o atual.
- 41—Erro (4) : A variável idade não foi inicializada mas foi realizada tentativa de usá-la.

- 42—Erro (7) : Variável está sendo utilizada dentro do contexto que foi declarada (método metodo( )) mas está sendo utilizada fora do contexto que foi inicializada (if).

- 43—Imprime de 0 a 10 : INICIALIZAR uma variável na assinatura do for faz com que ela seja visível também no contexto externo ao for. Mas se DECLARAR também na assinatura do for, a variável passa a ser visível apenas dentro do for.

- 44—Erro (6) : Se a variável foi DECLARADA e inicializada na assinatura do for então não é visível fora dele. Apenas se for declarada fora e INICIALIZADA na assinatura do for.

- 45—Imprime 0.0 : Ao dar new em uma classe, todos os atributos delas são inicializados com o valor padrão, (0, null ou false) e podem ser impressas na tela usando a instância da classe, mesmo O ATRIBUTO tendo valor null, agora a INSTÂNCIA que não pode ser null (variável prova).

- 46—Imprime null : Não dá null pointer exception pois null é o atributo não a instância, e ao dar new os atributos são todos inicializados com os valores padrões. Se prova recebesse null aí sim daria erro de execução.

- 47—(Null Pointer Exception) : Não podemos acessar um atributo de um objeto null usando o operador (.), o atributo pode ser null, o objeto que a instância aponta não. O erro é de execução não de compilação.

- 48—Erro (3) : Variável float não pode receber um literal decimal, pois o literal decimal é por padrão double, que não pode ser atribuído a uma variável float. É necessário usar 7.3f ou 7.3F;
Erro (3) : Faltou (;) ao final da instrução.
- 49—Erro (4) : O número é muito grande para ser impresso como literal, pois é por padrão int, deve ser colocado um l ou L ao final do literal para ser reconhecido pelo compilador como um long e não como um int.
System.out.println(737821237891232L);
- 50—Imprime um número inteiro : i é um octal, só pode receber números de 0 a 7; j é um hexadecimal e pode receber números de 0 a 9 e letras de A a F; b é um binário e só pode receber 0 e 1;

- 51—Erro (3) : i é um octal pois começa com 0, e portanto só pode receber números de 0 a 7; Ter um 8 ou 9 faz com que não compile.

- 52—Erro (5) : b é binário pois começa com 0b e não pode receber 2 apenas 0 e 1;

- 53—compila a, e (AF representa números), g e h
NÃO COMPILA:
b e c : não pode "_" ao lado de x.
d : não pode "_" ao lado de b.
f : não pode "_" no início ou fim.
i e h : não pode "_" ao lado de e.
- 54—Imprime dois caracteres : o primeiro não é o número sete e sim o 7º número da tabela ASCII e o segundo é o 03A9º número da tabela unicode.

- 55—Imprime 100 : Quebras de linhas não interferem no código, desde que estejam onde estaria um espaço em branco, não cortando a palavra.

- 56—Erro (9) : A variável deve ser inicializada tanto no if quanto no else.
Erro (9) : não existe a classe system, o correto é System.
- 57—Compila e executa : Por mais que estejamos usando a variável que foi inicializada dentro da estrutura de controle, ela sempre será inicializada, seja no if ou no else. O mesmo não vale para for, pois não tem como o compilador dar a certeza que vai entrar no for.

- 58—Erro (3) : Não é possível atribuir um array para uma variável primitiva, ou a referência deve ser um array ou a instância um boolean.
Erro (3) : Não existe o tipo Boolean, somente o tipo boolean.
- 59—Erro (5,7) : Variável booleana não pode receber 1 ou 0 apenas true ou false.

- 60—Erro (3) : Se o literal inteiro começa com 0 então ele é um octal, e não poderá receber 8 ou 9.

- 61—Imprime de a a z : char tem valor inteiro então pode ser usado em operações, iterações, e outros usos semelhantes a um int.

- 62—Não imprime nada : boolean é palavra reservada e não pode ser nome de variável, mas java é case sensitive, o que permite que BOOLEAN não seja palavra reservada.

- 63—Imprime 10 : Alterar b não altera a pois são variáveis diferentes.

- 64—Imprime 5 : Quando atribuímos a para b, as duas referências passaram a referenciar o mesmo objeto, qualquer alteração em uma vai também alterar na outra, pois o objeto é um só.

- 65—Imprime 47 : Alterar uma variável não altera nenhuma outra, apenas ela mesma.

- 66—Imprime 48 : Todas as referências apontam para um único objeto, alterar os atributos usando uma referência alterar também nas outras, pois o objeto é um só.

- 67—Imprime "Palio 2014" : Ao dar new na classe Carro o construtor seta a variável ano para 2014, pois não existe variável local de nome ano, por isso a JVM atribui o valor à variável membro.

- 68—Imprime "Indefinido 2014" : Dentro do construtor acessamos uma variável membro diretamente e a outra através de this, as duas maneiras estão corretas, mas se tiver uma variável local com o mesmo nome da variável membro, this é obrigatório para indicar a variável membro

- 69—Imprime 10 e 10 : A classe c não tem um construtor e sim um método pois o retorno é explícito, por isto não passamos atributo no argumento do new. Ao tentar alterar a variável c através do método, ele altera só a variável local, recebida como argumento, o atributo permanece com o mesmo valor anterior.

- 70—i = 0; i < 10 executa o loop de 0 a 9, criando 10 objetos, mas ao fim do for apenas o último criado ficará acessível, através da referência b, o restante pode ou não ser garbage coletados.

- 71—Cria 100 objetos que permanecem acessíveis através do ArrayList carros : Este é um exemplo de referência indireta, apesar dos objetos serem instanciados dentro de um for, são alocados em uma lista acessível em todo o pacote, mantendo os objetos acessíveis.

- 72—i = 0; i < 10 executa o loop de 0 a 9, criando 10 objetos, mas ao fim do for apenas o último criado ficará acessível, através da referência b, o restante pode ou não ser garbage coletados.

- 73—i = 0; i < 10 executa o loop de 0 a 9, criando 10 objetos, tornado 11 com o que já foi criado antes, mas ao fim do for apenas o último criado ficará acessível, através da referência b, o restante pode ou não ser garbage coletados.

- 74—Nenhum objeto é criado : Ao inicializar um array, suas posições são inicializadas com uma referência de valor padrão, mas 0, null e false não são objetos. Damos new em B[100], mas não chamamos um construtor, portanto não podemos dizer que estamos criando um objeto só por usar new.

- 75—Imprime "Caelum - Ensino e Inovação" : O método append "acrescenta" uma String ao final de outra. Lembrando que StringBuffer e StringBuilder são Strings mutáveis. Append modifica a String e retorna ela mesma.

- 76—Imprime nada no primeiro sysout e 0 no segundo : Passar um StringBuilder com tamanho apenas reserva este tamanho na memória, não é criado nada neste espaço e podemos passar uma String maior que a quantidade disponível.

- 77—Erro (2) : Não pode ser passada uma String literal para um String builder. O que podemos é passar uma String como parâmero no new assim:
new StringBuilder("String");
- 78—Erro (6) : Podemos passar uma String maior que o tamanho especificado, mas StringBuilder não tem método size( ), para saber o tamanho dele usamos length( );

- 79—Imprime "Caelum Ensino e Educação" : Métodos que retornam o objeto que o acessa podem ser encadeados. O método append pega o objeto sb, faz as alterações e dá um return no sb.

- 80—Imprime Caelum - Ensino e Inovação : O método insert insere a String passada na posição informada, empurrando para o final o que estava ali inicialmente. Lembrando que a posição começa em 0 e não 1, ou seja será inserido onde antes era o "I".

- 81—Imprime "012389" : delete exclui os caracteres entre a primeira posição (incluso, o 4º caractere é apagado) e a segunda posição (exclusa, o 8º caractere não é apagado, só até o 7º). Lembrando que o primeiro caractere é a posição 0 e não 1.

- 82—Imprime "gulherme" : Apaga apenas a posição 2, pois a segunda posição informada não é apagada, só o que vem antes dela.

- 83—Imprime "Curso de Certificação Java" : Todas são maneiras corretas de criar uma String.

- 84—Imprime "nula: null" : Se concatenar uma String null com outra não nula, o valor null se tornar texto null. O memos ocorre com String null + String null, que imprime nullnull.

- 85—Erro (4) : 08 é octal por começar com 0, e octal não pode receber 8 e 9.

- 86—Imprime "15 certificação 023 java" : Na String a, os inteiros foram concatenados à String, já na String b foi primeiro realizado a soma e depois concatenado. 00 se transformou em 0.

- 87—Imprime "caelum" : Strings são imutáveis, os métodos que trabalham com Strings retornam a String modificada, mas a original continua com o mesmo valor.

- 88—Imprime "CAELUM" : Strings são imutáveis, e como os métodos retornam uma String com o valor modificado, podemos mudar o objeto apontado pela referência, passando a referenciar o novo objeto.

- 89—(String index out of bounds) : Compila, mas ao executar a JVM percebe que o objeto tem posição de 0 a 11, por não ter a 12ª dá erro de EXECUÇÃO, a prova pode tentar te confundir com Array index ao invés de String index.

- 90—(String index out of bounds) : Compila, pois o compilador não consegue verificar valores de variáveis, mas não executa pois não existe posição -1. A prova pode tentar te confundir com Array index ao invés de String index.

- 91—Imprime 4 : O método correto para verificar o tamanho de uma String é length(), não size() nem o atributo length.

- 92—Erro (4) : A classe String não possui o atributo length e sim o método length(), quem tem atributo length é array e só ele.

- 93—Erro (4) : A classe String não possui o método size(), o método para saber o tamanho de uma String é length().

- 94—Imprime true, false e false : no primeiro print a String é vazia mas na última, espaço em branco é considerado um caractere, portanto não é vazio.

- 95—Imprime true e . . : No primeiro print imprime apenas a quebra de linha do println, no segundo o espaço e tirado tornando a String vazia, portanto true, e na ultima, não modifica a String pois trim apaga apenas os espaços do início e fim da String, não os do meio.

- 96—Imprime "ava", "Java","ava" : Quando substring tem apenas um int, será retornado uma String desse caractere em diante e não apenas o caractere da posição. Quando usado com duas, retornara os caracteres entre o primeiro (incluso) e o último (excluso). A String não tem posição 4 mas compila pois só retorna até a 3, não está tentando retornar a 4;

- 97—(String index out of bounds) : A String não tem posição -1 nem posição 4 (tenta retornar a posição 4 e não 5), mas compila, o erro ocorre na EXECUÇÃO, pois o compilador não consegue analisar o conteúdo de Strings, apenas literais numéricos.

- 98—Imprime true : "Certificado" == "Certificado".

- 99—Imprime false : Java é case sensitive então "Certificado" != "certificado".

- 100—Imprime true : Apesar de java ser case sensitive, o método equal ignore case não leva em consideração a diferença entre maiúsculas e minúsculas.

- 101—Imprime número positivo (2) : A referencia que chama o método (s) vem depois do argumento passado no método (Arnaldo);

- 102—Imprime número negativo (-32) : O valor da String apontada pela referência que chama o método (s) vem antes do argumento passado no método (certificado);

- 103—Imprime 0 : compareTo retorna int não boolean.

- 104—Imprime 3 -1 13 : indexOf retorna um int com a posição da primeira ocorrência da String informada, ou -1 se a String não existir.

- 105—Imprime false e true : Java é case sensitive portanto Certificação Java não começa com certificação mas acaba com Java.

- 106—Imprime 30 : Podemos usar += com String. o for roda de 0 a 8 (9 vezes) mais 1 que já foi na declaração (10 vezes) a String tem 3 letras (10*3=30). Imprime o length e não a string final que seria abaabaabaabaabaabaabaabaabaaba

- 107—Erro (7) : String não tem atributo length, e sim método length().

- 108—(Null pointer exception) : Acessar um objeto null com o operador (.) ocorre erro de EXECUÇÃO, caso msg estivesse dentro do método imprime como variável local não compilaria por conta da variável não ter sido inicializada.

- 109—Erro (4) : Variável não foi inicializada, isto por ser variável local, se fosse atributo da classe compilaria, mas daria null pointer exception na execução pois o objeto seria nulo.

- 110—Imprime "Caelum" : Strings são imutáveis, então o método concat não altera s, mas retorna uma String nova com a alteração, podemos fazer s = s.concat(), para que s aponte para a nova String e a antiga se perde para ser coletada.

- 111—Imprime Caelum - Ensino e Inovação : StringBuffer é mutável, os métodos dela além de mudar a String também retorna ele mesmo, permitindo concatenar vários métodos.

- 112—Imprime "Bem vindo full" : Se usarmos uma String nula somando com uma com conteúdo, elas serão concatenadas.

- 113—Erro (4) : Estamos tentando usar uma variável que ainda não foi inicializada. Não compila.

- 114—Erro (4) : Se a variável é um atributo da classe não estático, então só poderá ser acessado através de uma instância da classe. Se for estática pode ser usada sem inicializar.

- 115—Imprime "Bem vindo full" : Variáveis estáticas não precisam ser inicializadas para serem usadas, recebem valor padrão.

- 116—(Null pointer exception) : O compilador não consegue verificar o que tem dentro da variável, portanto compila, se fosse new String(null) não compilava. Mas não executa por ser null.

- 117—Imprime "uda" : Pega os caracteres 3,4 e 5, o 6 não é pego, e a contagem começa em 0 e não 1;

- 118—Erro (3) : Classe String não possui nenhum construtor que receba null.

- 119—Imprime "14" : Primeiro soma depois concatena com a String.
Imprime 2.010 : 10/4 vai ser 2 pois são dois int depois é colocado no double virando 2.0, no print primeiro concatena e não soma.
- 120—Erro (4) : Podemos usar replace com duas Strings ou dois char, mas não um de cada. Mesmo se não houvesse erro, não modificaria, pois String é imutável e a referência não foi mudada para a String gerada retornada pelo método.

- 121—Erro (4) : Método não recebe String. Apenas variáveis ou referências recebem retorno de métodos ou literais.

- 122—Erro (5) : Literais decimais são por padrão double e não podem ser atribuídas para uma variável float sem casting.

- 123—Erro (5) : Literal long não cabe em uma variável int.

- 124—Imprime 50.0 : double pode receber float, float pode receber qualquer inteiro, inclusive long, e double pode receber int.

- 125—Erro (4) : byte só vai de -128 a 127, valores neste intervalo são convertidos automaticamente pelo compilador se forem literais.

- 126—Erro (4) : Char não pode receber valor negativo. Por este motivo uma variável byte não pode receber um char e vice versa, apesar de ter o mesmo tamanho.

- 127—Imprime 20 : O resultado de uma operação é sempre do maior tipo envolvido ou no mínimo um int. int mais long retorna um long.

- 128—Erro (5) : Operações com variáveis sempre retornam o tipo maior envolvido ou no mínimo um int. Operações int com long retorna um long, tentar colocar este resultado em um int sem casting não compila.

- 129—Imprime 3 : Operações com variáveis retornam no mínimo um int, como byte e short são menores que int retorna um int.

- 130—Erro (5) : Operações com variáveis retornam no mínimo um int, que não cabe em um byte.

- 131—Imprime 3 : Operações entre variáveis retornam no mínimo um int ou o maior tipo envolvido. Regra não vale para literais, que são convertidos automaticamente.

- 132—(Arithmetical Exception) : Compila, pois o compilador não consegue verificar o conteúdo das variáveis, mas ao executar não pode dividir número natural por 0;

- 133—Imprime 0 : 0 dividido para qualquer número é zero.

- 134—Erro (4) : Não podemos colocar um double em um int.

- 135—Imprime infinity : Apesar de divisão por 0 compilar mas não executar, se a divisão for por 0.0 dá infinity, positivo ou negativo.

- 136—Imprime infinity : O que não executa é dividir um número natural por 0, números decimais podem ser divididos por 0. Ambos compilam, mas só com decimal executa.

- 137—Imprime true : apesar de ser de tipos diferentes, ambas possuem o mesmo valor.

- 138—Imprime true : Podemos fazer uma comparação mesmo cada variável sendo de um tipo.

- 139—Erro (5) : b é double e não pode ser atribuída a uma variável int.

- 140—Imprime 1.0 : Quando colocamos uma atribuição dentro de um print, se for uma atribuição correta, imprimirá o que a variável recebeu, no caso b recebeu 1 de a, mas como b é double imprimirá 1.0.

- 141—Imprime true : Podemos comparar um char com um int.

- 142—Imprime false : char representa um int, portanto pode usar operadores de comparação diferentes de == ou !=.

- 143—Erro (5) : Com objetos apenas podemos usar == ou != para comparação. Apenas numéricos aceitam outros comparadores além dele.

- 144—Erro (4) : true é boolean, e 1 é int, não podem ser comparadas.

- 145—Imprime false : realizando as duas comparações.
Imprime true : realizando as duas comparações.
Imprime false: o ou exclusivo somente dá true se um for verdadeiro e o outro falso.
Imprime false : negativo da expressão.
- 146—Imprime false e true, mas por ser short circuit não verifica a segunda expressão, pois a primeira já define o resultado.

- 147—Erro (3) : Para um ou exclusivo ser true, um deve ser true e o outro false, portanto não existe short circuit de ou exclusivo, as duas expressões sempre serão verificadas.

- 148—Imprime false 11 : Podemos colocar expressões junto com as comparações e operadores lógicos.

- 149—Imprime false 10 : Por ser short circuit, não verifica a segunda expressão, pois se a primeira é false então vai retornar false independente da segunda expressão, e o incremento não é feito.

Information
- Description
- Certificação OCJP Flashcards on 01, created by Joab Martins on 22/02/2018.
- Created by
- Joab Martins · Feb 2018
- Updated
- Mar 12, 2018
- Views
- 2
- Rating