Passei na OCJP6 com 81%, relato

31 respostas
R
Bom dia a todos, o tão sonhado dia chegou, o dia de relatar que passei na prova OCJP6 com 81% de score.
Em primeiro lugar agradecer a Deus e minha esposa Joseane que aguentou meu mal humor quando fazia os mocks e tirava 
apenas 50%!, também agradecer a galera do Guj, em especial ao Viny(sei la como ele sabe tanta coisa deve ser de outro mundo) e principalmente a uma pessoa

que me mostrou todo o caminho, incluindo livros e que foi a maior inspiração - Roberto Platz(multi certificado).
Fiz a prova aqui em Curitiba na Softsell, marquei a prova para o dia 25/05/2012 mas não pude fazer, pois quando
sentei em frente a máquina, o servidor estava fora, em função de um apagão na região sul, pois uma máquina cortou a fibra
ótica parando tudo, conclusão, tive que remarcar.
Remarquei a prova para o dia 15, fui curtir o feriado e depois voltei para as revisões e testes(mock).
Comecei a estudar em Janeiro deste ano, já que fui mandado embora em Dezembro da empresa que trabalhava, tenho dois
anos de experiência, sempre trabalhando em Consultorias, mas nestes dois anos foram três delas, e em alguns destes lugares
parece que indiretamente minha qualidade como progamador foi colocada em “dúvida”.
Sendo assim os ultimos meses tem sido difíceis, estou fazendo Pós em Java, e sou casado, e estes resultados nos ultimos empregos não cooperaram muito para minha alto estima, sendo assim tinha dia que eu não tinha animo para estudar, tinha dia que eu virava a noite estudando… mas enfim passar na certificação foi um novo impulso para mim.
Usei o livro da Katy Sierra, o mock da Enthuare, o Test killer, e sempre tirava dúvidas aqui no Guj.
O que tirei de lição com a prova, é que você deve digitar muitos códigos, testar as questões que você erra nos testes, e o principal, ler o livro com muita calma, eu li o livro duas vezes, e na segunda estava entojado, percebi que você deve ler o livro com calma, escrever todos os códigos, e realmente fazer o seu resumo, vou falar de novo, faça o
seu resumo!. Digo isso por que eu sofri muito por ler o livro deitado as vezes… não anotar os pontos, dae quando ia fazer os testes não lembrava dos detalhes…, na Segunda vez eu anotei os pontos, e digitei os codigos… aquela imagem no Eclipse do x(erro) no canto e a mensagem de erro fica na sua cabeça.
Bom, eu sei o que todo mundo quer é saber o que mais caiu né…

Caiu muito, mas muito mesmo código envolvendo casting, ou seja o cara dava la um monte de classe uma herdando a outra implementando Interface, e depois coloca um monte de atribuição fazendo casting de tudo que e lado e perguntava:
Qual linha vai dar ClassCastingException?
Se retirarmos a linha tal vai compilar?
Se retirarmos mais de uma linha vai compilar?

Caiu também umas coisas, que acho que não tem no livro da Katy, por exemplo o que acontece se voce fizer
File dir = new dir("dir");    
File f = new File(dir, "texte.txt");

e o diretório dir estiver “empty”?

Vai compilar?, vai criar um arquivo “texte.txt” em dir…

Bom ae você tem que saber o que acontece se o diretorio estiver “vazio”, se o diretório “dir” existir, pois ele também pergunta:
Se o diretório “dir” não exisitr vai criar o arquivo na raiz? vai dar rumtime?

Bom, resumindo, voce tem que saber todas as possibilidades, entende, se exisitir, se não existir, se fizer f.makeDir(); se criar
um PrintWriter passando um File que não existe,
Como você ja sabe o PrintWriter cria o arquivo se não existir mas o File não, porém na situação de dir não existir da uma
exception, mas se existir e for null, o arquivo será criado na “root” do projeto…

Veja esse código de exemplo:

import java.io.File;
import java.io.IOException;


public class TesteCoisa extends Teste{
	public static void main(String[] args) {
		doStuff();
	}
	public final static void doStuff()  
	{
		File d = new File("d");
		d= null;
		File f = new File(d, "x.teste");
		try {
			System.out.println(f.createNewFile());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("teste");
	}
}
Isso cria um arquivo na raiz do projeto, mas e se voce retirar "d=null" e não existir o diretório "d"?, pior e se de exisitir   mas for um arquivo e não um diretório?
  Caiu também renomeação de arquivos, isso tem no livro da Katy, mas ler somente não adianta, tem que testar, pensar e se euf izer isso? e se fizer aquilo?, bom notei essa necessidade para muitos temas, como Collections, Formatação, IO, Serialização
  Bom, como uma dica para estas bibliotecas, que tem muitos detales eu diria que ler o java doc é uma boa pedida, no meu caso eu cliquei com o Ctrl apertado em uma classe, como por exemplo String, e no  "atach sources" linkei o source, ae fica mais fácil pois voce digita o codigo do metodo(ou construtor como é o caso do File), clica nele, pega o java doc, e ja tira

sua dúvida!
Bom isso ae foi interessante em vários pontos para mim, para fazer isso veja:

http://www.cavdar.net/2008/07/14/3-ways-of-jdk-source-code-attachment-in-eclipse/

Depois é so ler o java doc, por exemplo do construtor que vimos acima de File com dois argumentos:

/**
     * Creates a new <code>File</code> instance from a parent abstract
     * pathname and a child pathname string.
     *
     * <p> If &lt;code&gt;parent&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt; then the new
     * &lt;code&gt;File&lt;/code&gt; instance is created as if by invoking the
     * single-argument &lt;code&gt;File&lt;/code&gt; constructor on the given
     * &lt;code&gt;child&lt;/code&gt; pathname string.
     *
     * <p> Otherwise the &lt;code&gt;parent&lt;/code&gt; abstract pathname is taken to
     * denote a directory, and the &lt;code&gt;child&lt;/code&gt; pathname string is taken
     * to denote either a directory or a file.  If the &lt;code&gt;child&lt;/code&gt;
     * pathname string is absolute then it is converted into a relative
     * pathname in a system-dependent way.  If &lt;code&gt;parent&lt;/code&gt; is the empty
     * abstract pathname then the new &lt;code&gt;File&lt;/code&gt; instance is created by
     * converting &lt;code&gt;child&lt;/code&gt; into an abstract pathname and resolving
     * the result against a system-dependent default directory.  Otherwise each
     * pathname string is converted into an abstract pathname and the child
     * abstract pathname is resolved against the parent.
     *
     * @param   parent  The parent abstract pathname
     * @param   child   The child pathname string
     * @throws  NullPointerException
     *          If &lt;code&gt;child&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt;
     */
    public File(File parent, String child) {

    ///////////////////Resto do Construtor//////////////////////////////////

Caiu também muitas pegadinhas a respeito de variáveis sendo acessados fora do escopo, por exemplo declarado em um try
e tentando acessar:

try {
			String escopo = "x";
		} catch (IOException e) {
			System.out.println(escopo);
			e.printStackTrace();
		}

Bom, da para ver que não compila né, mas na prova a questão parece pedir algo voltado a exception, ou modificador de acesso, para tirar
sua atenção do problema real!, o escopo da variável!..

Cairam algumas perguntas sobre exception, e eu errei! lembro de uma mais ou menos assim:

public class TesteException {
	public static void teste()throws Exception{
		try{
			throw new Exception();
			
		}finally{
			System.out.println("finally");
		}
	}
	
	public static void main(String[] args) {
		try {
			teste();
			
		} catch (Exception e) {
			System.out.println("erro");
		}
		System.out.println("end");
		
	}
}

Ae a pergunta era a respeito da saída, bom agora parece muito simples, mais na hora eu me confundi…mas a saída seria:

finally
erro
end

mas e se você trocar o finally por um catch? tinha outras assim também…uma boa idéia é copiar esse código, ae e deixar
sua imaginação funcionar…e alterar com tudo que é bloco!

Cairam algumas coisas a respeito de coleções ordeandas, e a prova tentava te confundir a respeito das interfaces, SortedSet
List, as vezes dando new nelas, na verdade o que era correto era instanciar um TreeSet, para ordenação de uma coleção
por exemplo. Mas veja bem, não se engane, as resposta são maliciosas, sempre com muitos detales, que se você cochilar o
cachimbo cai!

Caiu uma a respeito de DateFormat, a prova procurava saber se você sabe como criar um, de novo não tem como dar new né em
uma Interface, então tem que saber como inicializar um DateFormat NumberFormat… isso tem que decorar não tem jeito!

Caiu o uso de atribuições usando variáveis de instancia não inicializadas, por exemplo

int x += a;

sendo a uma variavel wraper, sendo assim x + null é um NullPointer bem bonito…

Aquelas belas questões do tipo quem é um e tem, com um monte de código e depois dizendo escolha duas:

A é um B
B tem um X

Mas sempre com implicações mas detalhadas, como por exemplo B tem um A, mas A é um X, então B tem um X, entende?
neste caso um bom conhecimento de instanceOf garantiu umas questões…

bom vai mas uma dica, tinha também aquela história dos booleans literais passados para while e if

while(true){
System.out.println("compila");
}

if(true){
 System.out.println("compila");
}

E se for assim?

boolean b = false;
while(b){
System.out.println("compila");
}

if(true){
 System.out.println("compila");
}

Tambem a bizarrice abaixo caiu

Boolean b = new Bollean("TruE") //parece que não compila né? mas esse trem compila, veja o fonte do construtor usa o metodo abaixo:

private static boolean toBoolean(String name) { 
	return ((name != null) && name.equalsIgnoreCase("true"));
    }

reparou no equalsIgnoreCase?

Classes internas também tinha duas questões com classe interna em duas classes, só que tipo classe dentro de classe dentro de classe…
com três niveis, ae perguntava como instanciar em um main… mas o main tava dentro de uma classe que tinha classe interna statica… praticamente um espaguete,
tem que brincar muito com esse negocio…

Threads foi baba, umas tres questões básicas, uma de GC(tentando enganar um metodo passava a referencia para uma variavel de instancia), perguntando depois de qual linha o objeto
era elegível.

Uma sobre subMap, tilMap,headMap, com aquelas diferenças entre os dois, onde começa o subConjunto e onde termina, ou seja inclusive ou não,
Obs: veja a diferença entre headSet e tailSet, um inclui o ultimo elemento no conjunto e o outro não, tem que codificar usando esses caras!!! Veja um exemplo do livro adaptado:

package treeSetTreeMap; import java.util.Iterator; import java.util.TreeSet; public class Ferry { public static void main(String[] args) { TreeSet&lt;Integer&gt; times = new TreeSet&lt;Integer&gt;(); times.add(1205); times.add(1505); times.add(1545); times.add(1830); times.add(2010); times.add(2100); TreeSet&lt;Integer&gt; subset = new TreeSet&lt;Integer&gt;(); subset = (TreeSet&lt;Integer&gt;)times.tailSet(1830); Iterator&lt;Integer&gt; itIntegerr = subset.iterator(); System.out.println("metodo tailsSet"); while (itIntegerr.hasNext()) { Integer integer = itIntegerr.next(); System.out.println(integer); } subset = (TreeSet&lt;Integer&gt;)times.headSet(1830); itIntegerr = subset.iterator(); System.out.println("metodo headSet"); while (itIntegerr.hasNext()) { Integer integer = itIntegerr.next(); System.out.println(integer); } } }

Observação no método headSet o elemento passado não é adicionado ao conjunto, enquanto que tailSet inclui o elemento no conjunto, considera-se esse fator de grande importância.

TreeSet<Integer>)times.tailSet(1830,false);
Exclui o elemnto passado do conjunto

TreeSet<Integer>)times.headSet(1830,true);
Acrescenta o elemento no conjunto…

Bom, é o que lembro, desculpe o post enorme…
Uma boa dica é visitar o blog do Pedro Abs, e também ler os resumos do Camilo Lopes:


Abraço a todos e muito obrigado por tudo.

31 Respostas

A

Ótimo review do seu teste e parabéns!

O @Viny é uma lenda mesmo! = P

Abs!

P

Parabens!!
Tb tirei a minha semana passada, ñ foi nada facil!! mas fui super bem!!

R

Obrigado Alexandre e Priuli!

M

parabéns cara…

é bem legal conseguir, esperar a pessoa imprimir la o resultado e saber que você passou… é um alivio e uma certa alegria…

R

maior_abandonado, é verdade rapaz, a gente fica esperando olhando para a tela, e quando vê aquele pass… viche, o piano sai das costas, muito bom, um verdadeiro orgasmo binário!

C

Parabéns Claudemir! Você merece!!!

Excelente relato!

Abração!

Cris

F

Congratz… nice score.
Que venham as demais, faça disso um costume na sua vida sempre tentar aprender mais.

R

Caramba, cristianomariano, obrigado pela força… eu que vi você trabalhando e sempre vi você como uma ótima pessoa e um excelente profissional, tenho um elogio seu como incentivo
a continuar, e aproveitando para agradecer a indicação do livro de spring que você fez, tem ajudado bastante a entender os Patterns e o livro de Arquiterura e Design da Caelum…

Obrigado novamente, e agora começar a estudar para a certificação Web ou a de Jpa…

O que acha? qual tem que ser a próxima?

Abraço e sucesso.

C

Faaala Clau! Eu iria pela de WEB, lendo esse livro: http://books.google.com.br/books/about/Head_First_Servlets_JSP.html?id=HwBEBrMIh5IC&redir_esc=y

É batata!

Abração!

R

Opa, valeu, tenho ele em Português, aliás ja li uma vez, mas pensei não ser muito indicado no momento, pois com o advento dos frameworks, talvez não fosse tão efetivo o conhecimento,
sendo JPA mais aplicável, mas se você diz você diz né
heheh

Abraço.

F

Parabéns e bem vindo ao time!

R

Obrigado Fernando Franzini, esperei muito para ver essa frase famos sua!

ehehehe

Bem vindo ao Time!

F

ribclauport:
Obrigado Fernando Franzini, esperei muito para ver essa frase famos sua!

ehehehe

Bem vindo ao Time!

kkkkk…
:smiley:

H

Parabéns mano! [=

L

pow cara, meus sinceros parabéns a você,

a luta valeu a pena. Já desejo aqui sorte e sucesso para sua proxima certificação,

Abraço!

R

limaaq, muito obrigado!

D

Parabens amigo,

Eu lia suas duvidas direto aqui no guj, suas dicas vão ser de grande ajuda pra galera que esta na luta tambem.

Abs e sucesso.

R

System.out.println(“Parabéns ae…!!!”);

H

Parabéns!!!

S

Parabéns. A primeira de muitas. :wink:

T

Parabéns!
Muito obrigado por compartilhar sua experiência ,seu tópico ficou muito completo ja me deu uma boa ideia do que pode cair na prova, daqui a pouco sou eu que estou indo faze-la dia 31/05 :smiley:
Gostaria de saber quanto tempo você ficou resolvendo mocks e o testkiller.

V

Parabéns! :slight_smile:

Ei, agora que vi que vc é de Curitiba. Eu também sou daqui.

P

Parabéns pela conquista e obrigado por compartilhar conosco um review de seus estudos e da prova.

Abraço!

A

Parabéns cara!

São em pessoas como vc q eu procuro me espelhar. Espero conseguir tirar a minha em breve.

R

Parabéns!

Ei, agora que vi que vc é de Curitiba. Eu também sou daqui.


Opa, desculpa a demora, sei lá por que, não chegou no meu email os ultimos posts!, Opa Viny, estamos aqui em Curitiba, faço Pós em java na SPEI, ali perto do positivo, você é professor lá né?

Tamo estudando, para um dia ser um professor!

Valeu Viny, sabe que me ajudou para caramba! Como eu faço para receber novamente os posts?

V

ribclauport:
Opa, desculpa a demora, sei lá por que, não chegou no meu email os ultimos posts!, Opa Viny, estamos aqui em Curitiba, faço Pós em java na SPEI, ali perto do positivo, você é professor lá né?

Tamo estudando, para um dia ser um professor!

Valeu Viny, sabe que me ajudou para caramba! Como eu faço para receber novamente os posts?

Não sou professor na Positivo, só na PUC.
Na Positivo, trabalho na Tecnologia Educacional como coordenador técnico, na área de Novos Produtos.

R

Ok, bacana…

Abraço.

D

ribclauport … .quanto voce estava tirando em média nos tests da Enthuare semana antes de fazer a prova, aqueles principais… mais de 70% ?

Abs,

R

cerca de 60%

R

ribclauport:
Bom dia a todos, o tão sonhado dia chegou, o dia de relatar que passei na prova OCJP6 com 81% de score.
Em primeiro lugar agradecer a Deus e minha esposa Joseane que aguentou meu mal humor quando fazia os mocks e tirava
apenas 50%!, também agradecer a galera do Guj, em especial ao Viny(sei la como ele sabe tanta coisa deve ser de outro mundo) e principalmente a uma pessoa
que me mostrou todo o caminho, incluindo livros e que foi a maior inspiração - Roberto Platz(multi certificado).
Fiz a prova aqui em Curitiba na Softsell, marquei a prova para o dia 25/05/2012 mas não pude fazer, pois quando
sentei em frente a máquina, o servidor estava fora, em função de um apagão na região sul, pois uma máquina cortou a fibra
ótica parando tudo, conclusão, tive que remarcar.
Remarquei a prova para o dia 15, fui curtir o feriado e depois voltei para as revisões e testes(mock).
Comecei a estudar em Janeiro deste ano, já que fui mandado embora em Dezembro da empresa que trabalhava, tenho dois
anos de experiência, sempre trabalhando em Consultorias, mas nestes dois anos foram três delas, e em alguns destes lugares
parece que indiretamente minha qualidade como progamador foi colocada em “dúvida”.
Sendo assim os ultimos meses tem sido difíceis, estou fazendo Pós em Java, e sou casado, e estes resultados nos ultimos empregos não cooperaram muito para minha alto estima, sendo assim tinha dia que eu não tinha animo para estudar, tinha dia que eu virava a noite estudando… mas enfim passar na certificação foi um novo impulso para mim.
Usei o livro da Katy Sierra, o mock da Enthuare, o Test killer, e sempre tirava dúvidas aqui no Guj.
O que tirei de lição com a prova, é que você deve digitar muitos códigos, testar as questões que você erra nos testes, e o principal, ler o livro com muita calma, eu li o livro duas vezes, e na segunda estava entojado, percebi que você deve ler o livro com calma, escrever todos os códigos, e realmente fazer o seu resumo, vou falar de novo, faça o
seu resumo!. Digo isso por que eu sofri muito por ler o livro deitado as vezes… não anotar os pontos, dae quando ia fazer os testes não lembrava dos detalhes…, na Segunda vez eu anotei os pontos, e digitei os codigos… aquela imagem no Eclipse do x(erro) no canto e a mensagem de erro fica na sua cabeça.
Bom, eu sei o que todo mundo quer é saber o que mais caiu né…

Caiu muito, mas muito mesmo código envolvendo casting, ou seja o cara dava la um monte de classe uma herdando a outra implementando Interface, e depois coloca um monte de atribuição fazendo casting de tudo que e lado e perguntava:
Qual linha vai dar ClassCastingException?
Se retirarmos a linha tal vai compilar?
Se retirarmos mais de uma linha vai compilar?

Caiu também umas coisas, que acho que não tem no livro da Katy, por exemplo o que acontece se voce fizer
File dir = new dir("dir");    
File f = new File(dir, "texte.txt");

e o diretório dir estiver “empty”?

Vai compilar?, vai criar um arquivo “texte.txt” em dir…

Bom ae você tem que saber o que acontece se o diretorio estiver “vazio”, se o diretório “dir” existir, pois ele também pergunta:
Se o diretório “dir” não exisitr vai criar o arquivo na raiz? vai dar rumtime?

Bom, resumindo, voce tem que saber todas as possibilidades, entende, se exisitir, se não existir, se fizer f.makeDir(); se criar
um PrintWriter passando um File que não existe,
Como você ja sabe o PrintWriter cria o arquivo se não existir mas o File não, porém na situação de dir não existir da uma
exception, mas se existir e for null, o arquivo será criado na “root” do projeto…

Veja esse código de exemplo:

import java.io.File;
import java.io.IOException;


public class TesteCoisa extends Teste{
	public static void main(String[] args) {
		doStuff();
	}
	public final static void doStuff()  
	{
		File d = new File("d");
		d= null;
		File f = new File(d, "x.teste");
		try {
			System.out.println(f.createNewFile());
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		System.out.println("teste");
	}
}
Isso cria um arquivo na raiz do projeto, mas e se voce retirar "d=null" e não existir o diretório "d"?, pior e se de exisitir   mas for um arquivo e não um diretório?
  Caiu também renomeação de arquivos, isso tem no livro da Katy, mas ler somente não adianta, tem que testar, pensar e se euf izer isso? e se fizer aquilo?, bom notei essa necessidade para muitos temas, como Collections, Formatação, IO, Serialização
  Bom, como uma dica para estas bibliotecas, que tem muitos detales eu diria que ler o java doc é uma boa pedida, no meu caso eu cliquei com o Ctrl apertado em uma classe, como por exemplo String, e no  "atach sources" linkei o source, ae fica mais fácil pois voce digita o codigo do metodo(ou construtor como é o caso do File), clica nele, pega o java doc, e ja tira

sua dúvida!
Bom isso ae foi interessante em vários pontos para mim, para fazer isso veja:

http://www.cavdar.net/2008/07/14/3-ways-of-jdk-source-code-attachment-in-eclipse/

Depois é so ler o java doc, por exemplo do construtor que vimos acima de File com dois argumentos:

/**
     * Creates a new &lt;code&gt;File&lt;/code&gt; instance from a parent abstract
     * pathname and a child pathname string.
     *
     * <p> If &lt;code&gt;parent&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt; then the new
     * &lt;code&gt;File&lt;/code&gt; instance is created as if by invoking the
     * single-argument &lt;code&gt;File&lt;/code&gt; constructor on the given
     * &lt;code&gt;child&lt;/code&gt; pathname string.
     *
     * <p> Otherwise the &lt;code&gt;parent&lt;/code&gt; abstract pathname is taken to
     * denote a directory, and the &lt;code&gt;child&lt;/code&gt; pathname string is taken
     * to denote either a directory or a file.  If the &lt;code&gt;child&lt;/code&gt;
     * pathname string is absolute then it is converted into a relative
     * pathname in a system-dependent way.  If &lt;code&gt;parent&lt;/code&gt; is the empty
     * abstract pathname then the new &lt;code&gt;File&lt;/code&gt; instance is created by
     * converting &lt;code&gt;child&lt;/code&gt; into an abstract pathname and resolving
     * the result against a system-dependent default directory.  Otherwise each
     * pathname string is converted into an abstract pathname and the child
     * abstract pathname is resolved against the parent.
     *
     * @param   parent  The parent abstract pathname
     * @param   child   The child pathname string
     * @throws  NullPointerException
     *          If &lt;code&gt;child&lt;/code&gt; is &lt;code&gt;null&lt;/code&gt;
     */
    public File(File parent, String child) {

    ///////////////////Resto do Construtor//////////////////////////////////

Caiu também muitas pegadinhas a respeito de variáveis sendo acessados fora do escopo, por exemplo declarado em um try
e tentando acessar:

try {
			String escopo = "x";
		} catch (IOException e) {
			System.out.println(escopo);
			e.printStackTrace();
		}

Bom, da para ver que não compila né, mas na prova a questão parece pedir algo voltado a exception, ou modificador de acesso, para tirar
sua atenção do problema real!, o escopo da variável!..

Cairam algumas perguntas sobre exception, e eu errei! lembro de uma mais ou menos assim:

public class TesteException {
	public static void teste()throws Exception{
		try{
			throw new Exception();
			
		}finally{
			System.out.println("finally");
		}
	}
	
	public static void main(String[] args) {
		try {
			teste();
			
		} catch (Exception e) {
			System.out.println("erro");
		}
		System.out.println("end");
		
	}
}

Ae a pergunta era a respeito da saída, bom agora parece muito simples, mais na hora eu me confundi…mas a saída seria:

finally
erro
end

mas e se você trocar o finally por um catch? tinha outras assim também…uma boa idéia é copiar esse código, ae e deixar
sua imaginação funcionar…e alterar com tudo que é bloco!

Cairam algumas coisas a respeito de coleções ordeandas, e a prova tentava te confundir a respeito das interfaces, SortedSet
List, as vezes dando new nelas, na verdade o que era correto era instanciar um TreeSet, para ordenação de uma coleção
por exemplo. Mas veja bem, não se engane, as resposta são maliciosas, sempre com muitos detales, que se você cochilar o
cachimbo cai!

Caiu uma a respeito de DateFormat, a prova procurava saber se você sabe como criar um, de novo não tem como dar new né em
uma Interface, então tem que saber como inicializar um DateFormat NumberFormat… isso tem que decorar não tem jeito!

Caiu o uso de atribuições usando variáveis de instancia não inicializadas, por exemplo

int x += a;

sendo a uma variavel wraper, sendo assim x + null é um NullPointer bem bonito…

Aquelas belas questões do tipo quem é um e tem, com um monte de código e depois dizendo escolha duas:

A é um B
B tem um X

Mas sempre com implicações mas detalhadas, como por exemplo B tem um A, mas A é um X, então B tem um X, entende?
neste caso um bom conhecimento de instanceOf garantiu umas questões…

bom vai mas uma dica, tinha também aquela história dos booleans literais passados para while e if

while(true){
System.out.println("compila");
}

if(true){
 System.out.println("compila");
}

E se for assim?

boolean b = false;
while(b){
System.out.println("compila");
}

if(true){
 System.out.println("compila");
}

Tambem a bizarrice abaixo caiu

Boolean b = new Bollean("TruE") //parece que não compila né? mas esse trem compila, veja o fonte do construtor usa o metodo abaixo:

private static boolean toBoolean(String name) { 
	return ((name != null) && name.equalsIgnoreCase("true"));
    }

reparou no equalsIgnoreCase?

Classes internas também tinha duas questões com classe interna em duas classes, só que tipo classe dentro de classe dentro de classe…
com três niveis, ae perguntava como instanciar em um main… mas o main tava dentro de uma classe que tinha classe interna statica… praticamente um espaguete,
tem que brincar muito com esse negocio…

Threads foi baba, umas tres questões básicas, uma de GC(tentando enganar um metodo passava a referencia para uma variavel de instancia), perguntando depois de qual linha o objeto
era elegível.

Uma sobre subMap, tilMap,headMap, com aquelas diferenças entre os dois, onde começa o subConjunto e onde termina, ou seja inclusive ou não,
Obs: veja a diferença entre headSet e tailSet, um inclui o ultimo elemento no conjunto e o outro não, tem que codificar usando esses caras!!! Veja um exemplo do livro adaptado:

package treeSetTreeMap; import java.util.Iterator; import java.util.TreeSet; public class Ferry { public static void main(String[] args) { TreeSet&lt;Integer&gt; times = new TreeSet&lt;Integer&gt;(); times.add(1205); times.add(1505); times.add(1545); times.add(1830); times.add(2010); times.add(2100); TreeSet&lt;Integer&gt; subset = new TreeSet&lt;Integer&gt;(); subset = (TreeSet&lt;Integer&gt;)times.tailSet(1830); Iterator&lt;Integer&gt; itIntegerr = subset.iterator(); System.out.println("metodo tailsSet"); while (itIntegerr.hasNext()) { Integer integer = itIntegerr.next(); System.out.println(integer); } subset = (TreeSet&lt;Integer&gt;)times.headSet(1830); itIntegerr = subset.iterator(); System.out.println("metodo headSet"); while (itIntegerr.hasNext()) { Integer integer = itIntegerr.next(); System.out.println(integer); } } }

Observação no método headSet o elemento passado não é adicionado ao conjunto, enquanto que tailSet inclui o elemento no conjunto, considera-se esse fator de grande importância.

TreeSet<Integer>)times.tailSet(1830,false);
Exclui o elemnto passado do conjunto

TreeSet<Integer>)times.headSet(1830,true);
Acrescenta o elemento no conjunto…

Bom, é o que lembro, desculpe o post enorme…
Uma boa dica é visitar o blog do Pedro Abs, e também ler os resumos do Camilo Lopes:


Abraço a todos e muito obrigado por tudo.

Opa,
Estou com uma duvida, eu acabei de fazer o pagamento no site da person vue (150 dolares) e recebi dois emails de confirmação. Eu lembro de ter lido em algum lugar que eles enviavam um simulado. Isso procede? Ou o simulado é so enviado quando o calor do pagamento cai na fatura do cartao?

Abraços,
Rafael.

R

Eu não me lembro de ter recebido não…
Até por quê, eu não faria os simulados enviados, e sim os simulados que existem no mercado, que todos relatam que fizeram…

abraço.

Criado 15 de maio de 2012
Ultima resposta 15 de jul. de 2012
Respostas 31
Participantes 18