Duvidas ?compilação ..cast;;;

4 respostas
P

Folks,

não entendi o resultado do simulado conforme abaixo

abs

public class T extends Thread{
	    public static void main(String args[]){
	       new T().start();
	       new T().start();
	    }
	    public void run(){
	       for(int i=0;i!=5;i++){
	          System.out.print(i);
	       }
	    }
	 } 
resultado :[telefone removido]
Simulado .....


Questão 19/20 - O que acontece ao compilar e executar o programa s seguir:

01 public class T extends Thread{
02    public static void main(String args[]){
03       new T().start();
04       new T().start();
05    }
06    public void run(){
07       for(int i=0;i!=5;i++){
08          System.out.print(i);
09       }
10    }
11 }  






a) O programa n?compila 
b) O programa imprime: [telefone removido] 
c) O programa imprime: [telefone removido] 
d) N??oss?l saber o que ser?mpresso 

resposta certa d pelo simulado

mais uma duvida

O que imprime ao executar?

public class TestByte {
2   public static void main(String[] args) {
3     byte b =1;
4     byte b2 = 3;
5     byte b3 = b + b2;
6     System.out.println(b3);
7   }
8 } 



quando temos que fazer conta com byte pra não dar erro
de compilação ??????? não usar cast (byte) essa é minha duvida?????

4 Respostas

g4j

Quando vc soma dois bytes vc tem de retorno um int!!!

public class TestByte {  
   public static void main(String[] args) {  
     byte b =1;  
     byte b2 = 3;  
     byte b3 = (byte) (b + b2);  
     System.out.println(b3);  
   }  
 }
victorwss
paribe:
Folks,

não entendi o resultado do simulado conforme abaixo

abs

public class T extends Thread{
	    public static void main(String args[]){
	       new T().start();
	       new T().start();
	    }
	    public void run(){
	       for(int i=0;i!=5;i++){
	          System.out.print(i);
	       }
	    }
	 } 
resultado :[telefone removido]
Simulado .....


Questão 19/20 - O que acontece ao compilar e executar o programa s seguir:

01 public class T extends Thread{
02    public static void main(String args[]){
03       new T().start();
04       new T().start();
05    }
06    public void run(){
07       for(int i=0;i!=5;i++){
08          System.out.print(i);
09       }
10    }
11 }  






a) O programa n?compila 
b) O programa imprime: [telefone removido] 
c) O programa imprime: [telefone removido] 
d) N??oss?l saber o que ser?mpresso 

resposta certa d pelo simulado

-----------------------------------------

mais uma duvida

O que imprime ao executar?

public class TestByte {
2   public static void main(String[] args) {
3     byte b =1;
4     byte b2 = 3;
5     byte b3 = b + b2;
6     System.out.println(b3);
7   }
8 } 



quando temos que fazer conta com byte pra não dar erro
de compilação ??????? não usar cast (byte) essa é minha duvida?????

O primeiro as duas threads rodam ao mesmo tempo de maneira errática, e há uma condição de corrida no System.out. Portanto não é possível determinar qual será a saída. Resposta é D.

rissato

para a questao de thead, não dá pra saber a resposta pq as 2 threads vão iniciar a execução e não há controle sobre a prioridade entre as duas… cada vez que vc rodar o código pode acontecer alguma coisa diferente…

sobre o TestByte: (qualquer coisa menor* que int) + (qualquer coisa menor* que int) = int

*menor = menos bits…

g4j

victorwss:

O primeiro as duas threads rodam ao mesmo tempo de maneira errática, e há uma condição de corrida no System.out. Portanto não é possível determinar qual será a saída. Resposta é D.

É, não tem como saber. Executando esse código vc até vê a saida [telefone removido] mas expererimente aumentar a quantidade no loop de 5 para 5000, vc vai quer que os numeros se misturam…

Criado 29 de agosto de 2008
Ultima resposta 29 de ago. de 2008
Respostas 4
Participantes 4