Fala galera… consegui passar no exame, com um score de 79% - (57 acertos de 72). Antes de postar algumas das questões que cairam na prova, gostaria de agradecer a galera do GUJ que sempre contribui com duvidas e dicas para que todos possam aumentar seus conhecimentos.
Quanto a prova, fiz em inglês, achei a escolha certa porque como fiquei somente fazendo simulados em ingles, mesmo nao sendo nenhum Guru do inglês, dá pra acostumar fácil com as palavras e concordâncias.
qto as questoes… ja vou falando: generics + collections + threads foram apenas 20 das 72 questoes da prova, alem de terem sido provavelmente as questoes mais dificeis… entao… na ponta da lingua com esse assunto… todo o conteudo da prova foi bem dentro do livro da kathy, sem taaanta complexidade… somente as questoes de thread e genericos que pegou um pouco as vezes.
Ah, outra coisa… pra minha alegria, a prova foi recheadissima de questoes de O.O. … sobrecarga, subscrita, declaracoes de interfaces, construtores, etc… foram no minimo 15 questoes… esse assunto é bem melhor de estudar que decoreba de API.
tinha uma string que inicializava com o valor “null” e tinham alguns ifs-elses aninhados perguntando qual era a resposta certa… tinha uma opcao que perguntava se a String era nula, o que nao era, apenas tinha o conteudo null dentro dela
tinha uma questao de Drag and Drop que abordava relacionamento IS-A e HAS-A…
por exemplo, tinha um campo preenchido com Animal, e várias opcoes para preencher… Por exemplo, para Animal preenchi Dog IS-A Animal, lembrando que Dog e Is-A eram opcoes do drag and drop…
tinha também Retangle has-a side, lembrando que retangle tava preenchido automaticamente e eu preenchi has-a side.
tinha um codigo que lançava um AssertionError(); dentro de um try, mas sem catch, apenas com um finally e a função chamadora tentava tratar com Exception, o que nao aconteceria… apenas imprimiria o codigo no finally e depois lançaria a exceção
perguntava apenas o que imprimia na saida: “finally” …
tinha um Thread.sleep(1000) que nao estava dentro de um try-catch, porem o main() lançava throws Exception, nao ocasionando em exceção em tempo de execucao
tinha um metodo que lançava nullPointerException sem catch, apenas com finally… e a função chamadora tratava com Exception… executava o codigo do finally e o do Exception da funcao chamadora
tinha uma questao de assert que tinha um metodo publico chamado doSomething(Object o) e dizia que essa variavel o não podia ser nula em hipotese alguma… e de várias opcoes perguntou qual era a mais apropriada…
a - assert(o != null):“cannot be null”;
b - if (o == null) { throw new IllegalArgumentException(); }
marquei letra b, porque nem é recomendado usar assert em metodos publicos que tem parametro de entrada e a letra b lança a exceção que realmente detecta o problema.
tinha uma que tentava dar um setLocale para DateFormat, o que era erro de compilacao pq setLocale() nao existe.
tinha outra questao de Locale que perguntava como que eu pego o locale que está sendo usado no momento
Locale.getDefault() é o correto… tinha até alternativa com Locale.getLocale(), este metodo nao existe.
tinham 2 questoes de thread parecidas com a numero 4, mas que usavam join() e o metodo main() lançava throws Exception… nao dava erro de compilacao e o main esperava a thread rodar para poder continuar sua execucao depois do join().
tinha uma com algo parecido com isso “%f %b”,Math.PI,Math.E … perguntava a saida
tinha uma que tentava pegar um nextInt() em um Scanner sendo que o proximo valor era um String… lançava exceção