Chapter I - Java Building Blocks Flashcards

1
Q

Eu posso colocar “n” classes dentro do meu arquivo “.java”, entretanto, apenas uma delas pode ser pública e essa classe pública tem que dar match com o nome do arquivo.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Se eu tenho uma classe pública no meu arquivo.java, ela precisa dar match com o nome desse mesmo arquivo.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Posso criar “n” classes dentro do mesmo arquivo java e nenhuma delas ser publica. Uma classe pública não é obrigatória dentro de um arquivo.java

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Child packages são packages mais específicos dentro de outro package.

java.util.ArrayList é mais específico do que apenas java.util.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Wildcards não importam childpackes nem membros das classes, ele importa todas as classes daquele nível do package.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Wildcards não importam childpackes nem membros das classes, ele importa todas as classes daquele nível do package.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Importar classes que estão no mesmo package da classe que está importando é desnecessário/redundante (o Java vai faz essa busca por default);

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Importar classes que estão no mesmo package da classe que está importando é desnecessário/redundante (o Java vai faz essa busca por default);

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Wildcards só são permitidos e usados no fim do import.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Se eu explícitamente importar uma classe pelo nome, ela tem precedência sobre uma possível classe com o mesmo nome que tenha sido importada por wildcard.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Lembrar de verificar sempre se os imports estão na questão.
Se a linha da questão não começar em 1, significa dizer que não preciso me preocupar com os imports.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Escala dos tipos primitivos:

boolean -> true ou false
byte -> 8 bit int vale
short -> 16 bit int vale
int -> 32 bit int vale
long -> 64 bit int vale
float -> 32 bit float vale
double -> 64 bit float vale
char -> 16 bit unicode value

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Forma de descobrir o tamanho exato que um tipo primitivo suporta:

2 elevado ao numero de bits. O resultado dividido por 2 (lado negativo e positivo) e subtrai 1 do lado positivo para representar o 0.

byte -> 2 elevado a 8 = 256 / 2 = -128 a 128 menos 1 para o 0 = -128 a 127
short -> 2 elevado a 16 = 65536 / 2 = -32768 a 32767

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Quando um número está presente no código, é chamado de literal.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

O Java por default lê todos os números como inteiros. E os números de ponto flutuante como double.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Reference types é utilizado para categorizar objetos.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Reference type pode ser assigned para null, tipos primitivos não.
Reference type possuem métodos, tipos primitivos não possuem.

A
18
Q

double d1, double d2 // the code does not compile

Não posso declarar variáveis de tipos diferentes em uma única linha (mesmo que sejam do mesmo tipo, só posso ter uma keyword relacionada ao tpo da variável por linha, a não ser que as variáveis sejam separadas por ponto e vírgula, ai sim, cada uma delas pode (e deve) ter um tipo.

Dica: o “;” é o que separa os stetements em java.

int a; b; //nao compila, eu tenho uma variavel do tipo int e outra variável sem tipo.

A
19
Q

Regras para identifier em Java:

  • começar com letra, $ ou _
  • o restante pode ser tudo do anterior + números
  • não posso nomear algo com uma keyword.

*não posso ter @ em nome de variáveis

A
20
Q

Local variables (variáveis dentro de métodos) não possuem um valor default, precisam ser inicializadas (se eu quiser ler o valor, obviamente).

*Os parâmetros de um método também são considerados local variables.

A
21
Q

Instance variables são variáveis da instância, class variables são variáveis da classe (fazendo uso do optional specifier, static). Ambas não precisam ser inicializadas, o que significa dizer que elas possuem valor default.

A
22
Q

Todos os meus objetos ficam na memórida heap (exceto as literais do tipo string, que ficam na srting pool).

A
23
Q

System.gc() apenas sugere ao Java que agora ele poderia liberar uns objetos da memória, mas ele pode ingnorar. Executar o comando não garante que o GC vai trabalhar.

A
24
Q

Um objeto permanecerá na heap até não ser mais reachable, que acontece em dois casos:

  • o objeto não tem mais referência pra ele.
  • todas as referências para aquele objeto saíram do escopo.
A
25
Q

Objeto é o que fica na memória heap, referência é o nome que eu dou para uma instância que aponta para esse objeto na memória heap.

A
26
Q

Lembrar de desenhar as referencias apontando para os objetos quando houver uma questão de eligibilidade do GC.

A
27
Q

finalize() é o método que é chamado (apenas na primeira tentativa) que o GC tenta coletar o objeto. Se o GC não conseguir coletar esse objeto e tentar novamente depois, o método finalize não é chamado uma segunda vez,

A
28
Q

Números primitivos:

  • do tipo octal iniciam sempre com 0 (vai do 0 - 7)
  • do tipo hexadecimais sempre começam com 0x ou 0X (vai de 0 - f).
  • do tipo binário, sempre começa com 0b (vai de 0 - 1)
A
29
Q

Ter cuidado com alguma questão que mencione o fato de Java ter ponteiros. Porque ele não tem, não diretamente pelo menos.

Java trabalha com referências e essas referências por baixo dos panos têm seus ponteiros.

Preciso perceber o teor da questão antes de responder.

A
30
Q

O método main precisa ser public. Nenhum outro modificador de acesso é aceitável.

A
31
Q

Não posso ter múltiploas declarações de package dentro de uma classe porque cada classe pertencec exclusivamente a um único package.
Apenas imports podem ter várias declarações dentro da minha classe (quantas eu quiser/for necessário).

A
32
Q

Os únicos modifficadores de acesso que uma classe pode ter , são: public ou nenhum (default modifier).

Qualquer coisa que passe disso será um erro de compilação.

A
33
Q

Posso colocar vários ponto e vírgula ( ; ) em uma única linha. Isso não é erro, apesar de lógicamente não ser uma boa prática.

A
34
Q

Quando for executar qualquer classe java compilada, fazendo uso do classpath (java -cp), devo fazer a chamada com base não apenas na classe, mas tendo em conta o seu package. Em outras palavras, no classpath que eu passar como parâmetro, tudo o que vier depois da pasta “/classes” tem que vir como package (com pontos). Exemplo:

java -cp Quiz\Sec07\classes\ com.udayan.test.Exam

A
35
Q

final keyword pode ser usada quando estou a declarar o método main.

public static final void (String… args) {
//valid declaration
}

A
36
Q

Lembrar a estrutura de cada tipo de dados primitivo: byte por exemplo transforma um número em 0’s e 1’s. Nesse caso dos bytes o ‘1’ no começo do número significa que ele é negativo.

A
37
Q

Default value para o ptipo primitivo char é uma string vazia.

A
38
Q

O construtor do wrapper Boolean utiliza o método equalsIgnoreCase() para verificar se a string passada como parâmetro é “true” ou “false”. Portanto, qualquer texto que tenha um desses dois textos, independente da forma que estejam escritos, o wrapper vai aceitar. Qualquer string que não seja “true” o construtor vai considerar como “false”.

A
39
Q

Lembrar de que quando quero fazer uso dos valores do que está armazenado em um objeto de uma classe Wrapper, ele vai chamar por baixo dos panos o objeto.valor. Exemplo:

Double d1 = new Double();
System.out.println(d1);
//vai lançar uma exception porque ele vai fazer d1.doubleValue() o que vai gerar uma nullPointerException.

A
40
Q

A estrutura switch só aceita os valores char, byte, short, int, String ou enum.

A
41
Q

Boolean.valueOf() retorna “false” para tudo o que não seja “true” mesmo que seja um objeto null passado como parâmetro.

A