Mini-teste
-
Dado:
package devmedia; public class StringTeste { public static void main(String args[]){ StringBuffer buffer = new StringBuffer("123"); sb.append("456").reverse().insert(2, "…"); System.out.println("strbuffer: "+ buffer); } }
- 1
- 2
- 3
- Nenhum
- Não compila
- É lançada uma Exception
-
Quais declarações sobre as classes String, StringBuffer e StringBuilder são corretas?
- Todas as três classes têm métodos append() sobrecarregados.
- O “+” é um operador sobrecarregado para as três classes.
- Todas as três classes têm um método lenght().
- Os objetos do tipo StringBuffer são seguros em relação aos threads.
- De acordo com a API, StringBuffer será mais rápida do que StringBuilder na maioria das implementações.
- O valor de uma instância de qualquer um desses três tipos pode ser modificado por meio de vários métodos da API.
-
Observe o seguinte código:
package devmedia; public class Main { /** * @param args */ public static void main(String[] args) { String e="-"; Integer x = 343; long L343 = 343L; if(x.equals(L343))e+=".a1"; if(x.equals(343))e+=".a2"; Short s1 = (short)(new Short((short)343)/(new Short((short)49))); if(s1==7)e+="=e"; if(s1< new Integer(7+1)) e+="run"; System.out.println(s); } }
- =e
- .a2
- run
- .a1
- Nenhuma das anteriores
- A compilação falha
- É lançada uma exceção em tempo de execução
-
Dado o seguinte código:
package devmedia; import java.io.File; import java.io.IOException; public class WriterTest { /** * @param args */ public static void main(String[] args) { try { File file = new File("arquivo.txt"); file.createNewFile(); System.out.println(file.exists()); } catch (IOException e) { e.printStackTrace(); } } }
- SQLException
- Error
- Throwable
- Exception
- Object
GABARITO COMENTADO
-
Resposta A
Instâncias de StringBuilder não são imutáveis como Strings. Desse modo apenas uma instância é produzida e, de fato, essa única instância terá o mesmo endereço, sendo, nessa situação, sucessivamente modificada.
-
Resposta C e D
Evidentemente, as 3 classes possuem o método length(), que retorna o tamanho da String, ou StringBuffer, ou StringBuilder. A diferença entre StringBuilder e StringBuffer é que StringBuffer é menos performática devido a ser seguro em relação aos threads. StringBuilder foi introduzida na versão 5, não é thread-safe e por esse motivo é mais rápida que sua antecessora, menos segurança, mais rapidez.
O “+” serve como operador sobrecarregado de concatenação somente para a classe String. Por fim, Strings são instâncias imutáveis. Cada vez que você tenta alterar, uma nova String é produzida e a anterior fica sujeita ao coletor de lixo.
-
Resposta A,B e C
A 1ª comparação retorna false. Um tipo long nunca será igual a um tipo Integer. Na 2ª comparação, um int pode ser comparado a um Integer, então ela retorna true. Em seguida, s1 recebe 7 e a comparação 7==7 retorna true. A opção C mostra que é possível criar um objeto wrapper com uma expressão e fazer unboxing dele para compará-lo com um tipo primitivo.
-
Resposta C e D
No lugar de IOException, só existe a possibilidade de entrar exceções mais genéricas e que façam parte da mesma hierarquia. Sendo assim, no caso, só há duas possibilidades: Throwable e Exception.
Na próxima parte abordaremos mais algumas questões.
Leia todos artigos da série
- Desmistificando a Certificação SCJP6 - Parte I
- Desmistificando a Certificação SCJP6 - Parte II
- Desmistificando a Certificação SCJP6 - Parte III
- Desmistificando a Certificação SCJP6 - Parte IV - Parte 1
- Desmistificando a Certificação SCJP6 - Parte IV - Parte 2
- Desmistificando a Certificação SCJP6 - Parte V - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte V - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte V - Parte 3/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte VI - Parte 3/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 1/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 2/3
- Desmistificando a Certificação SCJP6 - Parte VII - Parte 3/3
- Operadores apropriados - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 1
- Instruções if e switch - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 2
- Iteradores e loops - Desmistificando a Certificação SCJP6 - Parte VIII - Parte 3
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte VIII - Parte 4 - A
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte VIII - Parte 4 - B
- Tratamento de Exceções em Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 1
- Definindo Exceções em Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 2
- Assertivas Java: Desmistificando a Certificação SCJP6 - Parte IX - Parte 3
- Mini-Teste: Desmistificando a Certificação SCJP6 - Parte IX - Parte 4
- String: Desmistificando a Certificação SCJP6 - Parte X - Parte 1
- StringBuilder/StringBuffer e File: Desmistificando a Certificação SCJP6 - Parte X - Parte 2
- Combinação de Classes E/S: Desmistificando a Certificação SCJP6 - Parte X - Parte 3
- Utilizando Arquivos e Diretórios: Desmistificando a Certificação SCJP6 - Parte X - Parte 4
- Console e Serialização: Desmistificando a Certificação SCJP6 - Parte X - Parte 5
- Mini-teste: Desmistificando a Certificação SCJP6 - Parte X - Parte 6 B
- Expressões Regulares: Desmistificando a Certificação SCJP6 Parte XI - Parte 1
- Lista Negada e Metacaracteres: Desmistificando a Certificação SCJP6 Parte XI - Parte 2
- Metacaracteres Âncora e Busca: Desmistificando a Certificação SCJP6 Parte XI - Parte 3