Agile Brazil 2013

Posted: June 26, 2013 in GWT

O keynote já chegou arrebentando falando do livro drive de Daniel Pink em que ele apresenta a a triade da motivação, complementando com ‘co-organizer
Read the rest of this entry »

Advertisements

Quais são as razões para utilizarmos um Array em qualquer linguagem,bom geralmente nós queremos agrupar um

conjunto de informações de algo né, por exemplo se tivéssemos que representar os dados de Paciente e Contatos .

Nós teríamos uma classe semelhante a essa né …

public class Paciente {

	private long id;
	private String nome;
	private String rg;
	private String cpf;
	private Date criacao;
	private SexoType sexo;

	private Contato[] contatos;
//Constructors Getter / Setters ...
}

A Associação Paciente > Contatos proverá  a característica de que um paciente poderá ter uma coleção de contatos, ou seja, um paciente poderá ter um ou mais contatos. Bom isso até agora nos atente, mas se pensarmos no fato de como manteremos a lista de contatos expansível isso já começa complicar.

Então vou explicar algumas características ruins do nosso amigo array ok …

  • É necessário determinar o tamanho da criança (“apelido para o array”) já de começo.
  • Uma vez definido o tamanho ele não mudará de tamanho nunca mais … é isso mesmo nunnnnnca mais.
  • Bom para ter um tamanho maior de array vc tem que criar um novo maior e copiar todo conteúdo para o novo array expandido… (“Suga!!”).
  • Outra característica muito legal eh qnd vc tenta remover um item do array … sabe o que acontece ? … não remove .. vc só anula a posição do array.
  • Como determinar qntos elementos já foram populados no array … , vc tmb não sabe tem q percorrer a criança até achar uma posição nula … (“Nohhhhh muito suga .. ”).
  • Cansei …. já de bater no array então vou falar de alguns pontos positivos do nosso amigo (“Bato depois assopro..”).
  • Capacidade de pesquisa indexada … isso eh um mega quebra galho .. mas usem com moderação ( “Poderes  com Responsabilidade” – Homem Aranha ).
  • Mantem a ordem em que os elementos são adicionados.

Não lembro mais de nenhum se vc tiver algo a mais para declarar com relação ao array comente o post ok …

Nóooooo vamos voltar para o nosso relacionamento … do começo do pagina .. né Paciente > Contato blz ..

Pensando em todos esses problemas o Java criou um conjunto de classes e interfaces chamado de Collections Framework.

O Java elaborou o framework utilizando vários conceitos de implementação por interface e especialização por classes concretas (Poliformismo na veia).

Imagem

Pensando nisso o Java forneceu a interface Collection que define o comportamento básico de toda coleção que é :

  • Dar a capacidade de auto expansão  (“Toma essa array … “)
  • Prover capacidade de remover elementos …
  • Prover capacidade de acionar outras coleções e redimensiona-la “automagicamente”
  • Capacidade de identificar se um objeto já existe na coleção … (“Nóhhhhh ficou feio em Array … ” )
  • Identificar quantos elementos estão contidos na coleção.

“Mas não é só issio, juntio” com a interface Collection, que determina o comportamento básico, há outras duas interfaces adicionam novos comportamentos como as interfaces List e Set.

Vamos conhecer mais sobre a nossa amiga List.  

A interface List como o nome mesmo diz determina comportamento de   

Lista indexada, segue abaixo alguns comportamentos

determinados por List.

  • Manter a ordem em que os elementos são adicionados.
  • Pesquisa indexada.
  • Permite elementos duplicados.
  • Redeterminação do Tamanho (  uhuhuhuh … !!! )

A Classe abaixo redetermina o tipo da variável contatos fazendo com que ela passe a ser do tipo List<Contato> (já já eu falo sobre esse trem “<QualquerCoisa>” tá).  Com somente esta modificação esse atributo passa a ganhar o comportamento de List.

import java.util.List

public class Paciente {

	private long id;
	private String nome;
	private String rg;
	private String cpf;
	private Date criacao;
	private SexoType sexo;

	private List<Contato> contatos;
//Constructors Getter / Setters ...
}

Bom como vcs viram é extremamente simples declarar uma variável do tipo de uma Collection. Mas o que muda em termos de código para criar instancias e usa-la de fato.

Instanciando a Criança

Antes a Declaração de Criação da Instancia no nosso Exemplo seria assim :

public class Paciente {
     // Commented ... fields ...
     public Paciente () {
         contatos = new Contato[10];
     }
}

Percebam a necessidade de determinar o tamanho do Array.

Depois com uso da Collection List

public class Paciente {
     // Commented ... fields ...
     public Paciente () {
         contatos = new ArrayList<Contato>();
     }
}

O Código acima demostra o uso da Classe Concreta java.util.ArrayList que implementa o comportamento de List que nesse caso não necessita informar o tamanho ( a não ser que vc queira, pq ela possui um construtor que fornece essa opção ).

Simplão né Galera. .

Bom Agora vamos comparar a etapa de popular o conteúdo do Array com a Collection List 

para exemplificar isso vamos criar um método que vai adicionar um novo elemento a Coleção.

public class Paciente {
     private int contatosAdicionados;

     // Commented ... fields ...
     public void addContato ( Contato contato ) {
         if ( contatosAdicionados > contatos.length ) {
              //rotina de expansão do Array e copia o conteúdo
         }

         contatos[contatosAdicionados] = contato;
         contatosAdicionados++;
     }
}

Notem que para controlar o tamanho do Array foi necessário criar toda uma lógica para isso.

Agora vamos ver a mesma implementação suportada pela Collection List 

public class Paciente {
     private int contatosAdicionados;

     // Commented ... fields ...
     public void addContato ( Contato contato ) {
        contatos.add (contatos);
     }
}

KKKKK agora o bicho pegou … pq vcs viram como é ridiculamente simples a implementação fornecida pela Collection List. Ela fornece um metodo add( E element ) que aceita somente o tipo determinado na definição List<Contato>.

Bom Galera espero que vcs tenham gostado do “Cherinho” do Framework Collections apresentando a Interface List e a Classe Concreta ArrayList e como elas proporcionam a “Morte ao Array” blz !!!

Nos próximos posts eu detalharei mais as outras collections e como elas podem matar o nosso amigo IF ( If Killer ).  


Você já se viu repleto de coisas para fazer e não sabia por onde começar, saiu no fim do dia do trabalho com a sensação de “caraca não fiz PN (Porcaria nenhuma… tá) “, se isso não acontece com vc significa que é um privilegiado,  pois comigo tem sido extremamente diferente. Atualmente tenho notado que cada vez produzo menos, que tenho um monte de atividades para fazer e nenhuma fica concluída .. (DONE).

Esse sentimento de improdutividade me fez estudar pocurar mais sobre isso e encontrei alguns materiais super legais que estão me ajudado bastante. Um deles é o ZTD  (Zen to Done) um compilado de um conjunto de outras técnicas como GTD do David Allen e os 7 Hábitos de Pessoas Altamente Eficazes, do Stephen Covey, cujo blog http://lucasteixeira.com/ztd e tradução achei por acaso.

O conceito principal do ZTD é o fato de ser minimalista, não tenta te passar dezenas de hábitos para que vc adote, pelo contrário, ele somente recomenda dez, que mesmo assim vc não precisa adotar todos. Outro ponto bem bacana desta técnica é que ela aborda justamente a pratica de mudança de hábito de uma forma simplificada recomendando a adoção de um hábito por vez  de forma que cada um desses hábitos passe por um período de adaptação, de pelo menos um mês, para só assim passar para o próximo.

Segue abaixo a lista de hábitos recomendada pela ZTD.

  1. Capture
  2. Processe
  3. Planeje :
  4. Faça :
  5. Sistema Confiável Simples :
  6. Organize
  7. Revise
  8. Simplifique
  9. Defina Rotinas
  10. Encontrando Sua Paixão

 Poderia descrever os hábitos do ZTD aqui mas seria um transcrito do blog do Lucas Teixeira e não é isso que eu quero.

Pomodoro technique

Atualmente estou  trabalhando no hábito de processar e planejar ( esse último é bem pouquinho) para o primeiro estou utilizando outra prática também muito legal que é a Pomodoro Technique criada pelo italiano Francesco Cirillo.

Esta técnica consiste em criar um time box de 25 minutos de execução de qualquer atividade(s)  de modo que esta não seja interrompida e/ou dividida, caraca gente essa tecnica é muito chique ..  para quem tem problemas de concentração e tem o Alt+Tab como inimigo mortal … (principal causador de interrupções internas) .

Então galera atualmente ( hj faz 4 semanas que comecei de fato )  sinto queRemember the Milk estou produzindo mais (nem tanto também … mas  é mais de que quando comecei). Outro detalhe que agora eu lembro o que eu fiz, porque mantenho a minha lista de atividades viva e atualizada no site Remeber the Milk que é baseado no GTD  e possui algumas aplicações para android.

Com essas ferramentas eu tenho conseguido coletar, processar e planejar. Ficarei com esses hábitos por mais 2 meses para depois tentar adotar outro.

Outras referências bem legais sobre esse assunto são :


A Zero Turnaround publicou hoje a última pesquisa sobre os desenvolvedores, ela mais que confirmou a forte adesão aos frameoworks Spring, Hibernate e JSF

Ela também trouxe outros indices como de adoção ao maven e ant como ferramentas de deploy e uso massivo do eclipse como ide

Mas informações segue o link do

http://www.zeroturnaround.com/java-ee-productivity-report-2011/

Palestra de Java – Mercado e Ferramentas

Posted: October 27, 2010 in GWT

Gostaria de agradecer  a oportunidade de apresentar para uma “galera super chique” no evento da Semana de Ciência e Tecnologia da Informação do Litoral Norte , principalmente ao professor Eduardo Sasaki.  O evento estava muito legal e acredito que através desta iniciativa a Universidade proporcionará uma formação mais completa ao alunos.
Tive a oportunidade expressar minhas percepções do mercado de trabalho, voltado para a plataforma Java
Quem estiver afim de utilizar a apresentação ela estará disponibilizada no slideshare e uns pedaços tmb estará no youtube.

Simulado SCJP 001

Posted: April 24, 2010 in GWT

Só mais um Simulado …  


1.

 

int [] arr = { 1 ,2 ,3 ,4 ,5};

int [] arr2 = new int[4];

arr2 = arr;

System.out.println(arr2[4]);

 

 

 

a. Compile error

b. Runtime Exception. ArrayOutOfBounds

c. Prints 4

d. Prints 5

e. Compiles with warning

———————————————————————————


2.

 

int [][] arr = new int[3][3];

int [] arr2 = { 1 ,2 };

arr[0] = arr2;

System.out.println( arr[0][0] + ” ” +  arr[0][1] );

 

 

a. Compile error

b. Runtime Exception. ArrayOutOfBounds

c. Prints 1 2

d. Prints null

e. Compiles with warnings

———————————————————————————

 

3.

 

 

class test

{

            { System.out.println(“one”); }

            static { System.out.println(“static one”); }

 

            public static void main(String[] args)

            {                       new test().run();       }

 

            private test(){

 

            { System.out.println(“two”); }}

 

            { System.out.println(“three”); }

 

    static

            {                       System.out.println(“static two”);

            }

 

            public void run()

            {                       System.out.println(“hmm…”);

            }}

 

 

a. Compile error

b. Runtime error.

c. Prints static one     static two    one    two    three  hmm…

d. Prints static one     static two    one    three  two    hmm…

e. Prints static one     static two    two    three  one    hmm…

———————————————————————————

 

 

 

4.

 

int[] a = null ,  b [] = null;

b = a;

System.out.println( b );

 

a. Prints null

b. Runtime NullpointerExcepion

c. Compile time error.

———————————————————————————

 

5.

 

class test

{

            public static void main(String[] args)

            {

                        test inst_test = new test();

                        inst_test.method ( 1 , 1 , 1);

                        inst_test.method( new Integer(1) , new Integer(2) , new Integer(3) );

                        inst_test.method ( 1 , new Integer(5) );

                        inst_test.method ( new Integer(10) , 1 );

            }

 

            public void method( Integer… I )

            {

                        System.out.println(“Eye in the sky”);

            }

 

            public void method( int… i )

            {

                        System.out.println(“Fly in the pie”);

            }

 

}

 

a. Fly in the pie Eye in the sky Eye in the sky Eye in the sky

b. Eye in the sky Eye in the sky Eye in the sky Eye in the sky

c. Compile error

d. Runtime Exception

e. None of the above.

———————————————————————————

  

 

6.

class test

{

            public static void main(String[] args)

            {

                        test inst_test = new test();

                        String pig[][] = {  {“one little piggy”}, {“two little piggies”}, {“three little piggies”} };

                        for ( Object []oink : pig )

                        {

                                   for ( Object piggy : oink )

                                   {

                                               System.out.println(piggy);

                                   }

                        }

            }

}

 

a. one little piggy two little piggies three little piggies

b. Compile Error incompatible types.

c. java.lang.String;@187c6c7 java.lang.String;@187c6c8 java.lang.String;@187c6c9 

    ( or something like that )

d. Runtime NullpointerException

e. Prints nothing

———————————————————————————

 

7.

class test

{

            public static void main(String[] args)

            {

                        test inst_test = new test();

                        int i1 = 2000;

                        int i2 = 2000;

                        int i3 = 2;

                        int i4 = 2;

                        Integer Ithree = new Integer(2); // 1

                        Integer Ifour = new Integer(2); // 2

                        System.out.println( Ithree == Ifour );

                        inst_test.method( i3 , i4 );

                        inst_test.method( i1 , i2 );

                       

            }

            public void method( Integer i , Integer eye )

            {

                        System.out.println(i == eye );

            }

}

 

a. true false true

b. false true false

c. false false false

d. true true false

e. Compile error

———————————————————————————

 

 

8.

 

interface face

{

            void smile();

}

class test implements face

{

            public static void main(String[] args)

            {

                        test evil_laugh = new test();

                        evil_laugh.smile();

            }

 

            void smile()

            {

                        System.out.println(“Muahahahahahhahaha”);

            }

}

 

a. Prints Muahahahahahhahaha

b. Compile error

c. Runtime Exception

d  Prints nothing

e. None of the above.

———————————————————————————

 

9.

abstract class ab

{           abstract private void smile();

}

class test extends ab

{           public static void main(String[] args)

            {

                        test inst_test = new test();

            }

}

 

a. Compile with warnings indicating smile() should be public.

b. Compiles without warnings.

c. Compiles with warnings indicating smile() is not inherited.

d. Compile error

e. Runtime Exception.

———————————————————————————

 

 

10.

 

 given that ex is a class that extends from Exception

 

public void blah() throws IOException , ex

            {

                        throw new ex();

                        throw new IOException();

            }

 

a. Compile error unreachable code

b. Comepile error: cant throw two exceptions at the same time

c. Compile error: both Exceptions need to be handled in try catch block

d. Runtime error

e. No errors. Compiles fine without warnings

———————————————————————————

 

11. 

 

Drag and Drop either “true” or “false” above the following options that are based on this code fragment.

 ( Imagine that true and false are two fragments on the screen that can be dragged onto the options shown )

 

Code Fragment :  List l = new ArrayList ();

 

Options:

 

a. This code fragment will not compile

b. Nothing can be added to this List.

c. Anything beside Integer could be replaced on the right hand side.

 

 

12.

 

If two instances, test_one and test_two of Serializable class test are written to a file named “serial.serial” in that order, which of the following are true ?

 

  1. When reading back from the file, test_two is the first object that is read.
  2. When reading back from the file, test_one is the first object that is read.
  3. The object cannot be read from a file named “serial.serial”.
  4. None of the above.

 

13.

 

class test

{

           

            public static void main (  String [] args )

            {

                        final Integer x4 = 8;

                        final int x = 10;

 

                        switch ( x )

                        {

                                   case x4:

                                               System.out.println(“4”);

                                               break;

                                   case x:

                                               System.out.println(“x”);

                                               break;

                        }

            }

}

 

 

 

  1. Compile error
  2. Runtime error
  3. Prints x
  4. Prints 4
  5. None of the above.

 

14.

 

class num

{

            int x=9;

}

 

interface blob

{

            final num n = new num();

             final Integer number = 1;

}

 

 

class test implements blob

{

           

            public static void main (  String [] args )

            {

                        n.x = 10;    // 1

                      number++; // 2

            }

}

 

  1. Compile error at 1
  2. Runtime error at 1
  3. Compiler error at 2
  4. Runtime error at 2
  5. Compiles and runs fine

 

 

15.

 

enum cafe {

                                       BIG ( 10 ) ,

                                       SMALL ( 1 ),

                                        MED ( 5 )

                                   int mySize = 0;            

                                   cafe ( int size )

                                   {

                                               mySize = size;

 

                                   }

                                  

                  }

 

What happens when this enum is in the code outside a class ?

 

  1. Compiles fine
  2. Compiler error
  3. Runtime Exception occurs if mySize is accessed.

 

 

16.

 

class Animal

{

            void method  throws IOException

            {}

}

 

class dog extends Animal

{

            void method  throws FileNotFoundException

            {}

}

 

 

  1. Compile error : Incompatible types.
  2. Runtime error
  3. Compiles fine
  4. Compile error : incorrect syntax
  5. None of the above

 

 

17.

 

class Animal

{

            void method () throws Exception

            {}

            Animal( String name )

            {

                        System.out.println(name);

            }

}

 

class dog extends Animal

{

            void method  () throws Exception

            {}

}

 

class test

{

           

            public static void main (  String [] args )

            {

                    new Animal(“Giraffe”);

            }

}

 

  1. Prints Giraffe
  2. Compile error
  3. Runtime error
  4. Prints nothing
  5. None of the above

 

 

18.

 

class test

{

            int x;

            public static void main (  String [] args )

            {

                        final int i;

                        i = 127;

                        byte b = i;

                        System.out.println(b);

 

            }

}

 

a. Compile error: loss of precision

b. No error. Compiles fine. Prints 0

c. Runtime error

d. Compiles with a warning

e. No error. Compiles fine. Prints 127.

 

19.

 

class test

{

            public static void main (  String [] args )

            {

                        methodOne(20);

            }

            static void methodOne( long l )

            {

                        System.out.println(“long”);

            }

            static void methodOne( float f )

            {

                        System.out.println(“float”);

            }

}

 

  1. Prints long
  2. Prints float
  3. Compile error: Too ambiguous
  4. Runtime error
  5. None of the above

 

20.

 

import java.util.*;

 

class test

{

            public static void main (  String [] args )

            {

                        List least = new ArrayList ();

                        List list = new ArrayList();

                        meth(list);

                        seth(least);

            }

            public static void meth(List list)

            {

                        System.out.println(“List”);

            }

            public static void seth(List list)

            {

                        System.out.println(“Mist”);

            }

}

 

Which function call(s) is/are allowed? Here allowed refers to legality, and that compilations succeeds.

 

  1. Both are allowed and there are no warnings
  2. Both are not allowed – they don’t compile
  3. Both are allowed but the code compiles with warnings
  4. Meth is allowed but seth is not
  5. Seth is allowed but meth is not.

 

21.

 

import java.util.*;

 

class test

{

            public static void main (  String [] args )

            {

                        List list = new ArrayList ();

                        for ( int i = 1 ; i<10 ; i++ )

                        {

                                   list.add(i);

                        }

                        list.remove( new Integer(4) );             //  1

                        list.remove( 1 );                                //   2

            }

 

}

 

Lines marked 1 and 2 refer to the remove method.

 

  1. Both methods remove the 4th and 1st Integer objects.
  2. Both methods remove the Integer 4 and 1 from list.
  3. Line one removes Integer object 4 and Line 2 removes Integer at index one
  4. Line one removes Integer at index 4 and Line 2 removes the Integer Object one

 

22.

 

import java.util.*;

 

class test

{

            public static void main (  String [] args )

            {

                        Map map = new LinkedHashMap ();

                        Map sap = new HashMap ();

                        populate( map );

                        populate( sap );

                        System.out.println( map.get(1) + sap.get(1) );

            }

 

            static void populate ( Map  m )

            {

                        for ( int i = 0 ; i < 10 ; i++ )

                        {

                                   m.put(i,i);

                        }

            }

 

}

 

  1. Prints 11
  2. Prints 2
  3. Compile error
  4. Runtime error
  5. nullnull

 

 

23.

 

import java.util.*;

class test

{

            int Identify;

            public static void main( String args[] )

            {

                        Set set = new HashSet ();

                        System.out.println( set.add( “new” ) );

                        System.out.println( set.add( “new” ) );

                        System.out.println( set.add( new test(127) ) );

                        System.out.println( set.add( new test(127) ) );

            }

            test(int ID)

            {

                        Identify = ID;

            }

}

 

 

  1. Prints true false true false
  2. Prints true true true true
  3. Prints true false true true
  4. Prints false true false true
  5. None of the above.

 

24.

 

import java.util.*;

class test implements Comparator

{

            int testNumber;

            public static void main( String args[] )

            {

                        Set s1 = new TreeSet ();

                       

                        s1.add(new test());

                        s1.add(new test());

 

            }

            public int compare( test t1 , test t2 )

            {

                        return t1.testNumber – t2.testNumber;

            }

 

}

 

 

Choose 3 that apply.

 

  1. Compiles without warnings
  2. Compiles with warnings
  3. Only one test Object is added, the other one is considered a duplicate.
  4. A Runtime Exception occurs.
  5. TreeSet can only accept objects of type test. ( Given that test has no sub classes )

 

 

 

25.

 

import java.util.*;

import java.io.*;

 

class test implements Runnable

{

            public static void main( String args[] )

            {

                        Thread t = new Thread(this);

                        try

                        {

                                   t.start();

                        }

                        catch ( IOException e)

                        {

                                   System.out.println(e);

                        }

            }

 

            public void run() throws IOException

            {

                        File f = new File(“f”);

                        FileWriter fw = new FileWriter(f);

            }

}

 

  1. One Compile error
  2. Runtime error
  3. Compiles with warnings.
  4. Two Compiler errors
  5. None of the above.

 

 

26.

 

class test

{

            public static void main( String args[] )

            {

                        test( new int[] { 1 , 2 } );

            }

               

    public static void test (int[] input)

            {

        System.out.println(“int[]”);

    }

   

    public static void test (int… input)

            {                      

        System.out.println(“int …”);   

    }

 

}

 

  1. Prints int[]
  2. Prints int…
  3. Compile error
  4. Runtime error
  5. None of the above

 

27.

 

class face

{

            public void meth()

            {

                        System.out.println(“hello”);

            }

}

 

class test

{

            public static void main( String args[] )

            {

                        seth( new face(){} ); // 1

            }

 

            public static void seth( face f )

            {

                        f.meth();  // 2

            }

           

}

 

  1. Compilations fails at 2
  2. Compilations fails at 1
  3. Runtime error at 2
  4. Prints hello after successfully compiling.
  5. Compilations fails at 1 and 2.

 

 

 

 

28.

class test

{

            public static void main( String args[] )

            {

                        new test().meth(“hello”); // 1

            }

 

            public void meth(T type) // 2

            {

                        System.out.println(type); // 3

            }

           

}

 

 

  1. Compilations fails at 1. Illegal syntax
  2. Compilations fails at 2. Cannot find T
  3. Compilations fails at 3. Cannot find symbol println( T )
  4. Prints hello
  5. Runtime error.

 

29.

 

class test

{

            public static void main( String args[] )

            {

                        new test().meth(new Integer(42));   // 1

                        new test().meth(“hello”);     // 2

                        new test().meth(new Object() );  // 3

 

            }

 

            public void meth(T type)

            {

                        System.out.println(type);

            }

           

}

 

Compilation at which line(s) fails?

 

  1. 1
  2. 2
  3. 3
  4. Compiles without errors.
  5. Compiles without errors. But Runtime errors exist.

 

 

30.

 

            public List meth(List type)

            {

                        System.out.println(type); // 1

                        return new ArrayList(); // 2

            }

 

This code…

 

  1. Will compile
  2. Will not Compile at Line 1
  3. Has Runtime errors.
  4. Will not Compile at Line 2
  5. Will not Compile at Line 1 and 2.

 

 

31.

 

            public static void main( String args[] )

            {

                        List type = new ArrayList(); // 1

                        for ( Integer n : type )    // 2

                        {

                                   System.out.println(n); // 3

                        }

            }

 

            public void seth(List type)   // 4

            {

                        type.add(“hi”);   // 5

            }

           

 

  1. Lines 2 and 5 have Compile time errors
  2. Lines 1 and 5 have Compile time errors.
  3. Lines 2 and 5 and 1 have Compile time errors
  4. Lines 4 and 5 have Compile time errors
  5. None of the above.

 

32.

 

            Integer eye = new Integer(42);

            Double d = new Double(42.0);

            int i = 42;

            double dd = 42.0;

            System.out.println(i==eye);           //1

            System.out.println(eye.equals(d)); //2

            System.out.println(eye == 42 );      //3

            System.out.println(i == 42);          //4

            System.out.println( i == dd );        //5

 

 

Which line Prints false ?

 

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5

 

33.

 

Which of the following modifiers can be used with a method local inner class ?

 

  1. static
  2. abstract
  3. final
  4. private
  5. protected
  6. public
  7. default

 

34.

 

class test{ int x = 10; static test tester = this;

            public static void main( String args[] ){

                        System.out.println( tester.x );

            }

}

 

  1. Prints 10
  2. Prints 0
  3. Compile error
  4. Runtime error
  5. None of the above

 

35.

 

            Integer i = new Integer(10);

            int i2 = 10;

            System.out.println( i == i2 ); // 1

 

With source as 1.4 what does this code print ?

 

  1. Prints false
  2. Prints true
  3. Compile error at 1
  4. Runtime error at 1
  5. None of the above

 

36.

 

interface face { void meth(); }

class tester extends test implements face

{ public void meth(){System.out.println(“hello”);}}

 

class test

{

            public static void main( String args[] )

            {

                        test test_one = new tester();

                        face f = test_one; // 1

                        f.meth();

                       

            }

}

 

Choose all that apply.

 

  1. Compile error at 1
  2. Runtime error at 1
  3. Compiles without errors
  4. Will compile if Line one includes a cast for face.
  5. None of the above.

 

 

37.

 

            List list = new ArrayList (); // 1

            list.add(new Object()); // 2

 

Drag and Drop the following options over Line 1 and Line 2.  If the Line will not compile drag option a over the line. If it will compile, but will throw Exceptions drag b over the line. Drag c over the line if both a and b do not fit the description.

 

  1. Compile time error
  2. Compiles fine but throws a Runtime Exception.
  3. Compiles fine with no Runtime Exceptions.

 

 

38.

class test

{

            public static void main( String… args )

            {

                        Byte b = new Byte(1);

                        System.out.println(“” + b + “20” );

            }

}

 

  1. Compile error
  2. Runtime Exceptions are thrown.
  3. Prints 120
  4. Prints 12
  5. None of the above.

 

39.

 

            public static void main(String [] args)

            {

                        System.out.println(m(2));

            }

            static int m(int i)

            {

                        int ret;

                        if( i == 2 )

                        {

                                   ret = i;

                        }

                        return ret;

            }

 

  1. Prints 2
  2. Prints 0
  3. Compile error
  4. Runtime error
  5. None of the above

 

 

40.

 

class superb

{

            int x=1;

            static int x2=2;

            void meth(){System.out.println(“non static Superb”);}

            static void meth2(){System.out.println(“static Superb”);}

}

 

class test extends superb

{

            int x=3;

            static int x2=4;

            void meth(){System.out.println(“non static test”);}

            static void meth2(){System.out.println(“static test”);}

            public static void main(String [] args)

            {

                        test t = new test(); System.out.println(t.x + ” ” + t.x2);

                        superb s = new superb(); System.out.println(s.x + ” ” + s.x2);

                        t.meth(); t.meth2(); s.meth(); s.meth2();

                        superb st = new test();

                        System.out.println( st.x + ” ” + st.x2 );

                        st.meth(); st.meth2();

            }

}

 

Drag and Drop the 9 output literals in the order in which they appear. Note that options can be used more than once. ( Imagine nine empty spaces on the right hand side of these options).

 

a. 3 4

b. 1 2

c. non static test

d. static test

e. non static Superb

f. static Superb

 

41

 

package packed;

public class pack

{

            static public int x1 = 7;

            static protected int x2 = 8;

            static int x3=9;

            static private int x4 =10;

}

 

import packed.pack;

class test extends pack

{

            public static void main( String args[] )

            {

                        pack p = new pack();

                        System.out.println( pack.x2 );

            }

}

 

 

  1. Prints 8
  2. Compile error
  3. Runtime error
  4. Prints nothing
  5. None of the above.

 

42.

 

            int x=1;

            assert (x=2) : x;

 

This code…

 

  1. Compiles without errors when assertion is disabled by default
  2. Compiles without errors when the javac –da option is used.
  3. Will throw compile time errors when the –ea option is used.
  4. Will throw runtime exception.
  5. None of the above.

 

43.

 

            Queue q = new PriorityQueue();

            q.offer(new String(“hello “));

            q.offer(new String(“hi “) );

            q.offer(new String(“bye “));

            for ( Object o : q )

            {

                        System.out.println(q.poll() + ” ” + q.size() );

            }

 

 

  1. Prints hello 3 hi 2 bye 1
  2. Prints hello 2 hi 1 bye 0
  3. Prints bye 3 hello 2 hi 1
  4. Prints bye 2 hello 1 hi 0
  5. Prints bye 2 followed by an Exception.
  6. None of the above.

 

44.

 

            int []arr = {1,2,3,4};

            for ( int i : arr )

            {

                        arr[i] = 0;

            }

            for ( int i : arr )

            {

                        System.out.println(i);

            }

 

  1. Prints 0 1 2 3
  2. Prints 0 0 0 0
  3. Prints 0 0 3 0
  4. Prints 0 2 0 0
  5. Compile error
  6. Runtime Exception occurs.

 

45.

 

import java.util.*;

class test implements Comparator

{

            private int x;

            test(int input) { x = input; }

            public static void main( String args[] )

            {

                        List list = new ArrayList();

                        list.add(new test(2));

                        list.add(new test(2));

                        Collections.sort(list);

            }

            public int compare( test t1 , test t2 )

            {

                        return t1.x – t2.x;

            }

}

 

This code…

 

  1. Sorts test instances based on variable x
  2. Sorts the instances in ascending order
  3. Sorts the instances in descending order.
  4. None of the above.

 

 

46.

 

            boolean [] arr = { true , false , true };

            Arrays.sort(arr);

            System.out.println( Arrays.binarySearch(arr,true) ) ;

 

  1. Does not compile
  2. Compiles but has Runtime exceptions
  3. Prints 0
  4. Prints 2
  5. Prints 1
  6. None of the above.

 

47.

 

            List l = Arrays.asList( new int[] {1,2,3,4} );

            for ( int i : l )

            {

                        System.out.println(i);

            }

 

  1. Prints 1 2 3 4
  2. Prints 4 3 2 1
  3. Prints nothing
  4. Compile error
  5. Runtime error

 

 

48.

 

List l = Arrays.asList( new int[] {1,2,3,4} ); // 1

List list  = new List (); // 2

 

 

Drag and drop the following options over the code fragments 1 and 2. One option may be used more than once.

 

Options

 

  1. Compiles
  2. Does not compile.

 

 

49.

 

            ArrayList l2 = new ArrayList ();

            l2.add(new Exception());

            l2.add(new NumberFormatException() );

 

  1. Compiles with no runtime exceptions
  2. Does not compile
  3. Compiles but has runtime exceptions.

 

 

50.

 

class test

{

            int x; test(int input) { x = input; }

            public static void main( String args[] )

            {

                        System.out.println( new test(3).equals(new test(3)) );

            }

            public boolean equals( Object o)

            {

                        return ( (test)o ).x == x;

            }

}

 

 

 

  1. Prints true
  2. Prints false
  3. Compile error
  4. Runtime Exceptions are encountered
  5. None of the above.

 

51.

 

            public static void main( String args[] )

            {

                        Map m = new HashMap();

                        String str = null;

                        m.put(new test() , “mill” );

                        m.put(new test() , “sill” );

                        System.out.println(m.size());

            }

            public boolean equals( Object o)

            {

                        return false;  // 1

            }

            public int hashCode()

            {

                        return 0;

            }

 

Choose all that apply.

 

  1. Prints 1
  2. Prints 2
  3. If Line 1 is replaced with return true; then m.size() returns 1.
  4. If hashCode() is not overridden then regardless of whether line 1 returns true or false 2 will be printed on the screen.
  5. Compile time error
  6. Runtime exception is encountered.
  7. If Line 1 is replaced with return true; then size() will not return any number greater than 1.

 

 

52.

 

System.out.println( Arrays.equals( new int[]{1,2,3,4} , new Integer[]{1,2,3,4} ));

 

  1. Compile error
  2. Runtime Exception
  3. Prints true
  4. Prints false

 

 

53.

 

Which of the following Thread class methods are static ?

 

  1. sleep
  2. join
  3. yield
  4. wait
  5. notify
  6. notifyAll

 

 

 

54.

 

Given these two classes and that you want to promote better coupling between them. What changes are required to achieve good coupling ? Also given that the int variable main is to be used when initializing coupler’s variables.

 

 

class test

{

            int main=10;

            public static void main ( String… blah )

            {

                        coupler c = new coupler();

                        c.setMain( c.getMain() ); // 1

            }

            int getMain()

            { return main; }

}

 

class coupler

{

            int pain;

            void setMain(int mane)

            {

                        pain = mane;

            }

 

            int getMain()

            {  return new test().main;  } // 2

}

 

  1. Replace line 1 with main = c.getMain();
  2. Replace line 1 with a call to coupler’s setMain method with the argument – main.
  3. Replace line 2 with return pain; and make no other changes to the program.
  4. No changes are required.
  5. None of the above.

 

55.

 

            public static void main( String args[] )

            {

                        Set set = new HashSet();

                        System.out.println(set.add(“duplicate”));

                        System.out.println(set.add(“duplicate”));

            }

            public boolean equals(Object o)

            {

                        return false;

            }

            public int hashCode()

            {

                        return 0;

            }

 

 

  1. Compile error
  2. Runtime error
  3. Prints true true
  4. Prints true false
  5. Prints false true
  6. Prints false false.

 

56.

 

import java.util.regex.*;

class test

{

            public static void main( String args[] )

            {

                        search(“asf jgds8 93 qn” , “\\d\\w”); // 1

                        search(“asf jgds8 93 qn” , “.*\\d”); // 2

                        search(“asf jgds8 93 qn” , “\\d.*”); // 3

                        search(“asf jgds8 93 qn” , “\\w.*\\d”); // 4

            }

            public static void search(String mat , String pat)

            {

                        Pattern p = Pattern.compile(pat);

                        Matcher m = p.matcher(mat);

                        while(m.find())

                        {

                                   System.out.println(m.group());

                        }

            }

 

}

a.

93

asf jgds8 93

8 93 qn

asf jgds8 93

 

b.

93

asf jgds8 93

8 93 qn

asf jgds8

 

c.

93

asf jgds8 93

asf jgds8 93

asf jgds8

 

d.None of the above.

 

 

57.

 

Which of the following are true about the meta characters used with the regex package ?

 

  1. d searches for a digit
  2. w searches for a white space.
  3. s searches for a string.
  4. b searches for either 1 or 0.

 

 

 

 

58.

 

class test

{

            public static void main ( String [] blah )

            {

                        System.out.printf(“%s”, new test());

            }

            public String toString()

            {

                        return “testing something”;

            }

 

}

 

  1. Prints testing something
  2. Gives a runtime exception
  3. Prints nothing
  4. Prints test@13234 or something like that.
  5. Compile error.

 

 

59.

 

class test

{

            public static void main ( String [] blah )

            {

                        System.out.printf(“%1$b”, “123”);

            }

            public String toString()

            {

                        return “testing something”;

            }

 

}

 

  1. Prints false
  2. Prints true
  3. Runtime Exception
  4. Compile error
  5. None of tha above.

 

 

60.

 

class sup

{

            static void method(){System.out.println(“Super”);} // 1

}

 

class test extends sup

{

            public static void main(String args[]) {}

            static void method(){System.out.println(“test”);}

}

 

What class modifier(s) can be inserted at line 1 to prevent method() from being overridden  (hidden ) without causing compile time errors  ?

 

  1. final
  2. private
  3. protected
  4. default
  5. transient
  6. Hiding cannot be prevented.

 

61.

 

class sup

{ void method() throws Exception         {} }

 

class test extends sup

{

            public static void main( String [] args) // 1

            {

                        sup s = new test();

                        s.method();

            }

            void method()  // 2

            {}

}

 

What can be done to avoid a compile error ?

 

  1. Add a “throws Exception” clause at line 1
  2. Add a “throws Exception” clause at line 2
  3. Use a try catch block when calling s.method().
  4. There is no compile error.
  5. None of the above.

 

62.

 

enum num

{BERT(“CAFE”) , KATHY(“BABE”)}

 

What happens when this enum is compiled ?

 

  1. Runtime Exceptions are thrown
  2. Compile time error
  3. BERT is equalted to CAFÉ and KATHY is equated to BABE.
  4. Either, BERT is equalted to CAFÉ or KATHY is equated to BABE.
  5. None of the above.

 

63.

 

public class test

{

            public static void main( String [] args )

            {

                        new test();

            }

            test()

            {

                        test(2);

            }

            test(int x)

            {

                        System.out.println(x);

            }

}

 

  1. Prints 2
  2. Prints 0
  3. Does not compile
  4. Runtime Exception.
  5. None of the above.

 

 

64.

 

class test

{

            public static void main( String args[] )

            {

                        class ma

                        {

                                   final int x;                    

                                   ma ()

                                   {

                                               x = 10;

                                               System.out.println( this.x);

                                   }

                        }

                        new ma();

 

            }

}

 

What is the output ?

 

  1. Fails to compile
  2. Runtime Exceptions are encountered
  3. Prints 10
  4. Prints 0
  5. None of the above.

 

65.

 

StringBuffer sb = new StringBuffer(“abcdef”);

System.out.println( sb.append(“123″).delete(0,5).reverse().insert(1,”1”) );

 

What is the output of this code fragment ?

 

  1. 321
  2. 3121
  3. 3121f
  4. 321f
  5. This fragment will not compile
  6. This fragment will throw an IndexOutOfBoundsException
  7. None of the above.

 

 

66.

 

Which of the following are not legal identifiers ?

 

  1. String #baby;
  2. char c123;
  3. Byte $wombat;
  4. Long long;
  5. Short ~english;

 

67.

class test

{

            public static void main( String args[] )

            {

                        new test().method((short)1);

            }

            void method(int… i)

            {

                        System.out.println(“int”);

            }

            void method(Integer i)

            {

                        System.out.println(“pint”);

            }

            void method(byte i)

            {

                        System.out.println(“bite”);

            }

}

 

What is printed ?

 

  1. pint
  2. bite
  3. int
  4. Nothing is printed
  5. None of the above.

 

68.

 

Cow is an Animal and has a tail is represented by which of these classes ?

 

  1. Class cow is a Animal { tail t; }
  2. Class cow extends Animal { String tail; }
  3. Class cow implements Animal { tail string; }
  4. Class cow extends tail { Animal ani; }
  5. None of the above.

 

69.

 

class test

{

            test tester;

 

            test( test t )

            {

                        tester = t;

            }

            test()

            {}

            public static void main( String args[] )

            {

                        test t = null;

                        t = new test();

                        t = new test(t);

                        t = null; // 1

            }

}

 

How many objects are eligible for garbage collection after line //1 executes ?

 

  1. One
  2. Two
  3. Zero
  4. This code will not compile
  5. None of the above.

 

 

70.

class test

{

            test()

            {

                        try

                        {

                                   throw new RuntimeException();

                        }

                        finally

                        {

                                   System.out.println(“Damn !”);

                        }

 

            }

            public static void main( String args[] )

            {

                        try

                        {

                                   new test();

                        }

                        catch ( Throwable t )

                        {

                                   System.out.println(“Caught”);

                        }

            }

}

 

What is the output ?

 

  1. Damn ! RuntimeException.
  2. Damn ! Caught RuntimeException
  3. RuntimeException caught
  4. Damn ! Caught
  5. Caught.
  6. None of the above.

 

71.

 

Which of the following are valid declarations of a for in loop that loops through an int array named j ?

 

  1. foreach ( int i : j ) {}
  2. for( int I : []j ) {}
  3. for ( int I : j ) {}
  4. for ( int I : j[] ) {}
  5. None of the above.

 

72.

 

Drag and drop the correct relation that is exhibited by this class. Drag the correct option on the class definition. Ignore the class names and member variable names. Choose the option based on is a and has a relationships.

 

class a extends b implements c { int d; long e; }

 

  1. Subaru is a car, Subaru is a vehicle, Subaru has a wheel.
  2. Chocolate is a candy, Chocolate has a taste.
  3. Girl is a hotchick, Girl is a barbie, Girl is a Girly.
  4. MonsterTruck is a truck, MonsterTruck is a Monster, MonsterTruck has 2 doors.
  5. None of the above.

Diagramas de Seqüencia fácil na Web.

Posted: March 20, 2008 in GWT

Hoje encontrei através de um post no DZone uma ferramenta
na web muito bacana, ela propoem uma alternativa para criação de diagramas de seqüencia.
a principio ela parece atenter varios requisitos da UML do tipo , loop , condições.
O mais bacana ela é free ….

Segue o site da Ferramenta.
http://www.websequencediagrams.com/

Esta ferramenta utiliza uma sintaxe muito simples para gerar os diagramas.
Por exemplo para Realizar uma chamada simples a um objeto, a partir de um cliente basta escrever o código abaixo na caixa de texto:


A->B: text activate B B–>A: text deactivate B

Eu também posso alterar o nome dos objetos que se relacionam.


Order->Account : addToAccount()
activate Account
Account–>Order: text
deactivate Account