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.
Como recuperar a hora local?
System.out.println(localTime.now());
Como recuperar a data local?
System.out.println(localDate.now());
Como somar 2 dias em uma data?
date = date.plusDays(2);
Como somar 3 dias e 1 hora em uma data?
date = date.plusDays(3).plusHours(1);
Como reduzir 4 segundos em uma variável de data?
date = date.minusSeconds(4);
Como criar um objeto com a data e hora atual?
LocalDateTime agora = LocalDateTime.now();
Como criar um período de um ano e um mês?
Period everyYearAndAWeek = Period.of(1, 1, 0);
Como criar um período de três anos e cinco semanas?
Period everyYearAndAWeek = Period.of(3, 1, 5);
Como somar um período a uma data?
upTo = upTo.plus(period);
Qual método usar para saber se uma data é anterior a outra?
upTo.isBefore(end);
while (upTo.isBefore(end))
Como criar um periodo de 7 anos?
Period annually = Period.ofYears(7);
Como criar um periodo de 4 semanas?
Period everyThreeWeeks = Period.ofWeeks(3);
Como criar um periodo de 12 meses?
Period quarterly = Period.ofMonths(12);
Como imprimir uma data no formato abaixo:
27, outubro, 2019
DateTimeFormatter DTF = DateTimeFormatter.ofPattern(dd,MMMM,yyyy);
System.out.println(DTF.format(tipoData);
Como imprimir somente o mês de uma Data?
System.out.println(date.getMonth());
Como imprimir somente o dia da semana uma Data?
System.out.println(date.getDayOfWeek());
Como imprimir somente o ano de uma Data?
System.out.println(date.getYear());
Como imprimir o dia do ano de uma Data?
System.out.println(date.getDayOfYear());
O que são varArgs?
É o recurso usado para receber um número não fixo de parâmetros em um método.
public int sum(int… nums){
Porque o método abaixo não compila?
public int sum(int[ ] nums, String[ ] Vars ){ }
O método recebe dois parâmetros varArgs. Em java só é permitido um.
Porque o método abaixo não compila?
public int sum(int[ ] nums, String Var ){ }
O método recebe um parâmetro do tipo String depois de uma varArgs.
Em java o parâmetro varArgs deve ser o último da assinatura.
O código abaixo compila?
public int sum(String Var, int[ ] nums ){ }
Sim!
Mesmo que o método receba dois parâmetros, o último é um varArgs.
O código abaixo compila?
public static void main(String str[]){
public int var = 10;
}
Não
Uma variável local não pode ter modificadores.
O código abaixo compila?
public void metodo(){
private int var = 50;
}
Não
Uma variável local não pode ter modificadores.
O código abaixo compila?
public void metodo(){
static int var = 50;
}
Não
Uma variável local não pode ter modificadores. Static é um modificador.
Quais são os dois construtores da classe Boolean?
Boolean(String);
Boolean(boolean);
Qual o resultado da comparação abaixo? new Boolean("true") == new Boolean("true")
False
O resultado será um false, pois é feita a comparação entre as referências.
O que é autoboxing?
É conversão automática de tipos de dados primitivos em seu objeto equivalente.
Integer integer = 9;
O que é unboxing?
É a conversão automática de objetos wrappers para tipos primitivos. int in = 0; in = new Integer(9);
O código abaixo compila?
int k = new Integer(5 ) + new Integer(10);
Sim
Neste caso ocorre o autoboxing. Os valores do tipo Integer são convertidos automaticamente para seu tipo primitivo.
O código abaixo compila?
int k = new Integer(5 ) + 10;
Sim
O valor Integer é convertido automaticamente para seu tipo primitovo.
O código abaixo compila? void method(int a) { double x; if(a > 1) { x = 6; } System.out.println(x); }
Não
Pois tentamos acessar uma variável que pode não ter sido inicializada.
O código abaixo compila? void method(int a) { double x; if(a > 1) { x = 6; }else{ x = 0; } System.out.println(x); }
Sim
Todas as variáveis foram inicializadas, e não existe chance de tentar imprimir uma variável não inicializada.
O código abaixo compila? void method(int a) { double x; if(a > 1) { x = 6; }else{ return; System.out.println(x); }
Compila
Pois não existe a possibilidade de imprimir uma variável não inicializada.
O código abaixo compila?
class MyString extends String{ MyString(){ super(); } }
Não
String é Final, portanto não pode ser herdada.
O que o código abaixo faz?
StringBuilder b1 = new StringBuilder("CANADA"); System.out.println(b1.substring(4));
DA
str.substring(int start, int end); //Retorna o intervalo
str.substring(int start); //Retorna a partir deste ponto
Qual metodo da classe StringBuilder não altera o valor da variável mas retorna uma nova variável?
substring
Diferente de append, insert e delete que faz as alterações na própria string e retorna uma referência para a mesma, o método substring retorna uma nova string.
O que o código abaixo retorna?
StringBuilder sb = new StringBuilder(); sb.append("Teacher,"); String s = sb.append(" Good").append("Morning!").toString();
Teacher, GoodMorning!
O código abaixo compila?
String nulled = null;
System.out.println(“value: “ + nulled);
Sim! Imprime:
value: null
O código abaixo compila?
StringBuffer sb2 = new StringBuffer("Java"); String name = new String(sb2);
Sim
Uma String pode receber um StringBuilder.
O que imprime o código abaixo?
String value = 15 + 00 + “ certification”;
15 certification
Porque o código abaixo não compila?
LocalDate data = new LocalDate.now();
Pois está tentando instanciar uma classe LocalDate. Estas classes não possuem construtores. Apenas variáveis e métodos estáticos. Portanto não podem ser inicializadas.
Como criar um LocalDate com as informações abaixo?
25 de julho de 2008
LocalDate data = LocalDate.of(2008,07, 25);
Como criar um LocalTime com as informações abaixo?
8: 50
9: 30:05
13: 15:31:40
LocalTime time = LocalTime.of(8,50);
LocalTime time = LocalTime.of(9,30,05);
LocalTime time = LocalTime.of(13,15,31,40);
Quais os métodos de busca para String e StringBuilder?
Para String pode se usar o constains e o indexOf.
O primeiro retorna um boolean e o segundo um int,
Para StringBuilder temos apenas o indexOf.
Como criar uma substring nas classes StringBuilder e String?
Substring
Vale ressaltar que o método substring da classe StringBuilder não altera o valor da variável, mas sim retorna uma nova.
Como adicionar um valor ao final de uma String e StringBuilder?
Concat - Adiciona um valor a uma String e retorna um novo valor.
append - Adiciona um valor a uma StringBuilder, alterando o valor atual.
o método append pertence a qual classe?
StringBuilder
o método substring pertence a qual classe?
StringBuilder e String
o método indexOf pertence a qual classe?
StringBuilder e String
o método contains pertence a qual classe?
String
o método insert pertence a qual classe?
StringBuilder
o método concat pertence a qual classe?
String
o método equals pertence a qual classe?
String
o método replace pertence a qual classe?
String
o método charAt pertence a qual classe?
String
o método delete pertence a qual classe?
StringBuilder
o método toString pertence a qual classe?
StringBuilder
o método compareTo pertence a qual classe?
String
o método reverse pertence a qual classe?
StringBuilder