Data Types Flashcards
O que é uma variável de instância?
São os atributos dos objetos.
Declaradas fora de qualquer método ou construtor
Existe uma cópia para cada objeto
Uma variável de instância pode ser declarada dentro do método da classe?
Não!
São consideradas variáveis de instância aquelas variáveis declaradas fora de métodos e construtores.
Existe uma cópia para cada objeto da classe.
Quando duas variáveis podem ter o mesmo nome?
Quando estiverem em escopos diferentes
O que é uma variável literal?
São variáveis cujo o valor é passado diretamente para a variável.
‘a‘ // literal char
12 // literal int
true // literal boolean
23.4 // litreal double
O que é uma inicialização Explicita?
Quando a inicialização de uma variável é feita pelo desenvolvedor.
O valor é inserido diretamente na variável.
Se uma variável for declarada como membro de uma classe, ela é implícita ou explicita?
Implícita.
Quando uma variável é membro de uma classe, ela é inicializada implicitamente junto com o objeto com um valor default.
Qual a saída do código abaixo?
public class teste(){ int[] numbers = new int[10]; [...] System.out.println(numbers[0]);
A saída é 0
Pois a inicialização é implícita, ou seja, não é declarado um valor, mas o
O que é uma inicialização implícita?
Quando uma variável primitiva de instância ou de classe não é inicializada explicitamente pelo programador, ela assume um valor padrão implicitamente. No caso do tipo int, esse valor é 0. E no caso do tipo double, esse valor é 0.0.
Qual o range pode ser armazenado em uma variável do tipo byte?
1 byte (8 bits, de -128 a 127);
Qual o range de valores que podem ser armazenados em variáveis do tipo short?
16bits
-32.768 e 32.767
Como armazenar um valor de base octal?
Deve começar com zero a esquerda e usar apenas algarismos de 0 a 7.
int i = 0761; // octal
System.out.println(i); // 497
int i = 0769; // compile error
Por que o valor abaixo não compila?
int i = 0769;
Pois todo valor que começa com zero pertence a base octal.
Podendo receber valores de 0 a 7.
Como armazenar valores hexadecimal em java?
Deve começar com 0X ou 0x e usar algarismos de 0 a 15, sendo as letras de A a F.
int j = 0xAB3400; // hexadecimal
System.out.println(j); // 11219968
Como armazenar um valor binário em uma variável java?
Deve começar com 0b ou 0B e usar somente 0 e 1.
int b1 = 0b100001011; // binary
System.out.println(b1); // 267
Por que a linha abaixo não compila?
float i = 5.0;
Por definição todo valor decimal é tratado como double em java.
Portanto é preciso especificar o tipo manualmente.
float i = 5.0f;
É possível armazenar um numero em uma variável do tipo char?
Sim
Char é considerado um tipo numérico, portanto armazena números.
char c = 65;
char c = ‘A’;
O que é uma classe Wrapper?
Cada tipo primitivo possui uma classe correspondente.
O nome dessa classe começa sempre em maiúsculo.
Boolean para tipos boolean
Integer para tipos int
etc…
Para que serve o método ValueOf?
Converte um valor para um tipo especifico.
Retorna um tipo wrapper. Diferente dos métodos parse que retorna um tipo primitivo.
Byte.valueOf("2"); Integer.valueOf("2"); Integer.valueOf(58); String.valueOf(2.2); String.valueOf('c');
Para que serve os métodos parse?
Convertem Strings para outros tipos.
Retorna um tipo primitivo. Diferente dos métodos ValueOf que retorna um tipo wrapper.
Boolean.parseBoolean(“true”);
Byte.parseByte(“1”);
Integer.parseInt(“1”);
Double.parseDouble(“1”);
Porque o código abaixo não compila?
Byte by = new Byte(1); // Não compila
Pois todo valor literal em java é por padrão um int.
Portanto é obrigatório o cast na hora da inicialização.
Vale lembrar que esta regra somete é aplicada para as classes Wrappers. Valores nativos sofrem autobox e não precisam da conversão.
Byte by = new Byte((byte)1); // ok
O que o código abaixo imprime?
String s = “Java”;
System.out.println(s.length());
4
Lembre-se que em string, lenght é um método, portanto precisa de parenteses.
O método size() não existe em string.
O que o código abaixo imprime?
String s = “Java”;
System.out.println(s.length);
Não compila
Lembre-se que em string, lenght é um método, portanto precisa de parenteses.
O método size() não existe em string.
O que o código abaixo imprime?
String s = “Java”;
System.out.println(s.size());
Não compila
Lembre-se que em string, lenght é um método, portanto precisa de parenteses.
O método size() não existe em string.
Para que serve o método concat() da classe String?
Como é usado?
Concatena o parâmetro ao fim da String atual e devolve o resultado;
Lembre-se que que as instancias de String são imutáveis. portanto o cósigo abaixo não faz nada se não retornar um valor.
s2.concat(“3”);
O correto é:
String s2 = s1.concat(“2”);
Qual a sintaxe do método replace() da classe String?
Substitui todas as ocorrências de determinado char por outro;
String replace(char oldChar, char newChar)
System.out.println(“abcabc”.replace(‘a’, ‘A’)); // AbcAbc
System.out.println(“abcabc”.replace(“a”, “A”)); // AbcAbc
Qual a diferença entre os metodos equals() e compareTo() da classe String?
Ambos fazem uma comparação entre os caracteres de uma String. A diferença fica por conta do retorno.
equals() retorna um boolean dizendo se os objetos são iguais ou diferentes.
compareTo() retorna um int que é a distancia entre os dois primeiros caracteres que diferem.
Qual método usado para descobrir uma posição de um caractere em uma String?
int indexOf(char) e int indexOf(String)
devolvem o índice da primeira ocorrência do parâmetro
String string = “animals”;
System.out.println(string.indexOf(‘a’)); // 0
Qual método é usado para criar uma string secundária em java?
String substring(int beginIndex, int endIndex)
Devolve a substring a partir dos índices de começo e fim
O método concat() da classe String faz o que?
String concat(String)
Concatena o parâmetro ao fim da String atual e devolve o resultado;
Qual método é usado para concatenar um valor ao final de uma StringBuilder?
append()
Concatena um novo valor à String atual. Aceita vários tipos de dados, não somente String
StringBuilder sb = new StringBuilder().append(1).append(‘c’);
Qual método é usado para inserir valores no meio de uma StringBuilder?
insert()
Permite inserir valores no meio. Para isso use o índice.
StringBuilder sb = new StringBuilder("animals"); sb.insert(7, "-"); // sb = animals-sb.insert(0, "-"); // sb = -animals-
StringBuilder sb = new StringBuilder("www.com"); sb.insert(3, ".google"); //www.google.com
O que o método reverse() da classe StringBuilder faz?
Inverte o valor da string:
System.out.println(new StringBuffer(“guilherme”).reverse()); // emrehliug
Qual a diferença entre os métodos delete() e deleteCharAt()?
O método delete() remove uma sequencia de caracteres entre dois intervalos.
O método deleteChatAt() remove um caractere especifico no índice especifico.
StringBuffer sb = new StringBuffer(); sb.append("012345678"); sb.delete(1, 3); System.out.println(sb);
0345678
StringBuffer sb = new StringBuffer(); sb.append("Saulo Victor"); sb.delete(5, 8); System.out.println(sb)
Sauloctor
Qual a diferença entre o método equals() da classe StringBuilder para o da classe String?
Não existe uma implementação para o método na classe StringBuilder.
Ainda é possível usar o método. Mas ele não faz uma comparação entre valores. Mas sim uma comparação entre referencias.
Para que serve a classe LocalDate?
Trabalha apenas com informações de data. Não armazenando informações sobre hora.
Para que serve a classe LocalTime?
Trabalha apenas com informações de Hora. Não armazenando informações sobre Data.
Para que serve a classe LocalDateTime?
Trabalha com informações sobre Data e Hora.
Armazenando informações sobre ambos os valores.