Dúvidas - Questões abertas

Bom dia a todos. Tenho algumas dúvidas de Java e vou postalas aqui em forma de questões abertas. Agradeço a todos que responderem.

  1. O comando break, “para” a execução corrente. Correto ? Mas li em um livro que ele pode ser omitido em alguns casos. Mas não entendi quando exatamente. Por exemplo, em um comando Switch(){}, quando eu posso omitir o break, e quando eu devo usa-lo ? Eu sempre uso, está correto ?

2)O que é um statement ?

3)Blocos estáticos são geralmente usados para inicializar variáveis estáticas; esse tipo de bloco fica solto na classe. Quando exatamente ele é executado ?

[quote=joaoorso]Bom dia a todos. Tenho algumas dúvidas de Java e vou postalas aqui em forma de questões abertas. Agradeço a todos que responderem.

  1. O comando break, “para” a execução corrente. Correto ? Mas li em um livro que ele pode ser omitido em alguns casos. Mas não entendi quando exatamente. Por exemplo, em um comando Switch(){}, quando eu posso omitir o break, e quando eu devo usa-lo ? Eu sempre uso, está correto ?
    [/quote]

O comando break (quebrar) quebra a execução da instrução de repetição ou do swith. Só desses.
O switch do java é fallthought (“cai-através”) o que significa que quando um case é selecionado e executado , a execução continua executando os case abaixo. Para evitar isso, vc usao break


switch (2){
case 1:
  System.out.println("A");
case 2:
  System.out.println("B");
case 3:
  System.out.println("C");
}

Isto resulta em
B
C

o 2 é selecionado, mas como não ha break o case 3 tb é executado.

A tradução é frase. “SQL Statement” : frase SQL
Pode se referir também a uma intrução " while statement" , “switch statemente”

Após o load da classe pelo classeloader , antes dos atributos serem inicializados e antes dos construtores serem chamados.

# switch (2){  
# case 1:  
#   System.out.println("A");  
# case 2:  
#   System.out.println("B");  
# case 3:  
#   System.out.println("C");  
# }

Entendi. Então nesse caso o switch não faz o teste case 3: ?
Ou pode-se dizer que ele faz o teste, mas não sabe onde começou um e terminou o outro ?

Então, minha dúvida é referente ao " while statement".

Obrigado por ajudar.

Sobre o case, um exemplo que me ajudou muito foi o seguinte:

switch(mes){ case 1: case 3: case 5: case 7: case 8: case 10: case 12: dias = 31; break; case 4: case 6: case 9: case 11: dias = 30; break; case 2: //teste... }

Deu pra entender?
Se não tiver o break ele vai continuar executando os case linha a linha, quando se coloca o break você diz pra parar de executar os case naquele momento.

statement é um “bloco”/instrução

while(teste){ //código }
Isso é um while statement, por exemplo.

Abraços,

A agora entendi pra que serve a omiçao do break no Switch. :smiley:

Então um statemant é um bloco de código qualquer ? :roll:

Agradeço as respostas.

Sim, statement significa declaração, ou seja:

1. while(teste){ 2. //código 3. }

Isso é uma declaração que existi um while ai… entende…

[quote=sergiotaborda][quote=joaoorso]

Após o load da classe pelo classeloader , antes dos atributos serem inicializados e antes dos construtores serem chamados. [/quote][/quote]

Nao entendi muito bem o que voce quiz falar, mas gostaria de saber tambem… alguem poderia explicar melhor fazendo favor? Obrigado.

Abraços

:idea: Então, pelo meu entendimento os blocos estáticos são executados quando a classe é carrecada pelo ClasseLoader que vem a ser uma “memória” diferente da Heap e da Stack. Isso deve ocorrer em dituações como:
NomeDaClasse.nomedoMetodoEstatico();
Onde não ha instância, mas a classe foi invocada.
Ou quando a classe é instânciada.

Alguém me corrija se estiver errado. :wink:

:shock: NOVA DÚVIDA :shock:
Alguém sabe me explicar para que serve esse ponto de interrogação (?)?

[code]
Set <? extends Float> s = new TreeSet();

[quote]

Obrigado.

:shock: NOVA DÚVIDA :shock:
Alguém sabe me explicar para que serve esse ponto de interrogação (?)?

Set <? extends Float> s = new TreeSet<Float>(); 

Obrigado … 8)

Se não estou enganado serve para indicar o tipo genérico.
Leia sobre…

Abraços,

? neste caso se lê "algo".

Set<? extends Number> s = new TreeSet <Float>();

Poderia ser lido em português como:

“Declaro s como sendo um Set de Objetos que pertencem a classes que Estendem/Implementam Number, e atribuo a s um novo objeto TreeSet de Objetos que pertencem à classe Float”.

Da mesma forma,

Set <? super Double> d;

é a mesma coisa que

"Declaro d como sendo um Set de Objetos que pertencem a classes/interfaces que são superclasses/superinterfaces de Double, como Object, Number, ou Double. "

:arrow: Acho que entendi … então, como eu não tenho um tipo de dado espesífico, o ponto de interrogação indica que pode ser qualquer um. Tipo assim:

 Set<(qualquer tipo que) extends Number> s = new TreeSet <Float>();  

Então seria possível fazer algo do tipo…

List<? extends Object> lo = new ArrayList <MinhaClasse>(); :?: :?: :?:

Valeu …

Para saber direito isso, em vez de saber as coisas “de orelhada” (afinal de contas, posso estar ensinando errado :frowning: ) veja a fonte:
http://java.sun.com/docs/books/tutorial/extra/generics/index.html

[quote=joaoorso] :idea: Então, pelo meu entendimento os blocos estáticos são executados quando a classe é carrecada pelo ClasseLoader que vem a ser uma “memória” diferente da Heap e da Stack.
[/quote]

Não. O classloader é um objeto (implementa a classe java.lang.ClassLoader) que carrega a classe. Ou seja, a partir dos bytes do .class ele apenas carrega os dados da classe criando um objeto to tipo java.lang.Class mas nenhum objeto do tipo da classe. Ele cria isso no heap onde qualquer outro objeto seria criado.

Se vc tem uma classe XPTO num arquivo xpto.class e a carrega com o classloader, será gerado um objeto Class com os dados de xpto mas nenhum objeto XPTO. Objetos XPTO só serão criados quando for invocado new , ou Classe.newInstance ou ClassLoader.newinstance()

5
0 1 4
1 2
2
3 2 5
4 1 5

Eu tenho esta entrada num arquivo txt estou com dificuldade em como vou ler e implementar em um
grafo sendo que o arquivo contém o número de matérias,na primeira linha; pré-requisito e matérias, nas demais linhas.Um exemplo (a matéria 0, por exemplo, é pré-requisito de 1 e 4).
Preciso de uma LUZ… valew!! o objetivo e utilizar um grafo em profudidade e usar ordenação topologicas…
me ajudem preciso apenas de uma luz… valew!!!