ID 142285 Banca CESGRANRIO Órgão BNDES Ano 2009 Provas CESGRANRIO - 2009 - BNDES - Profissional Básico - Análise de Sistemas - Desenvolvimento Disciplina Programação Assuntos Java Linguagens de programação Qual das afirmações a seguir faz uma apreciação correta a respeito da linguagem de programação Java? Alternativas O conceito de herança múltipla é implementado nativamente. Uma classe pode implementar somente uma interface ao mesmo tempo. Uma classe pode implementar uma interface ou ser subclasse de outra classe qualquer, mas não ambos simultaneamente. A construção de um método que pode levantar uma exceção, cuja instância é uma subclasse de java.lang.RuntimeException, não exige tratamento obrigatório por parte do programador dentro daquele método. Objetos da classe java.lang.String têm comportamento otimizado para permitir que seu valor seja alterado sempre que necessário, liberando imediatamente a memória usada pelo conteúdo anterior. Responder Comentários a) O conceito de herança múltipla é implementado nativamente. Java não tem herança multipla.b) Uma classe pode implementar somente uma interface ao mesmo tempo. Uma classe pode implementar várias interfaces.c) Uma classe pode implementar uma interface ou ser subclasse de outra classe qualquer, mas não ambos simultaneamente. Complementando o comentário.d) qualquer exceção não precisa ser tratada pelo método que a origina, este pode obrigar qualquer outro método que o envoque a tratar esta excessão com a clausula throwe) /toda a gerência de memória é feita pelo garbage collector Complementando a afirmativa d): as exceções do tipo RuntimeException são exceções que podem ser lançadas durante a execução da JVM e que podem ser tratadas, porém não precisam obrigatoriamente ser tratadas com throws ou com try catch. Bernardo,Quanto a letra E, o erro está em dizer que Strings, em java, podem ser alterados quando necessário. Strings são IMUTAVEIS. Marcelo,como assim Strings são imutáveis? É possível sim alterar o seu valor em qualquer momento em que o programa é executado. Arthur Rodriges Stilben o Marcelo tem razão.Objetos String são imutáveis.Sempre que você faz algo do tipoString a = "123";String b = "234";a = a + b;Você não está alterando a String original a; o que você está fazendo é alocar um novo objeto string com valor "123234"; finalmente o ponteiro a é direcionado para a nova String "123234"; Exatamente por este motivo é mais eficiente em Java utilizar um StringBuffer para concatenar varias Strings. Mesmo assim o GC continua sendo o único responsável por desalocar objetos :)