[Java] Conosci Davvero Java?
Java è un linguaggio complicato.
Avendo un sacco di colleghi in disaccordo con questa tesi, mi sono preparato una piccola lista di domande per dimostrare che nemmeno loro si immaginano quanto sia complicato ;)
Se vi ritenete esperti Java dovreste sapere le risposte, se non le sapete, sono tra i commenti
Riscaldamento: cosa stampa questo codice?
public class Main {
int myInt;
double myDouble;
boolean myBoolean;
public static void main( String []args){
Main obj=new Main();
System.out.print(obj.myInt);
System.out.print(" " + obj.myDouble);
System.out.println(
" " + obj.myBoolean);
}
}- Dato il codice
Calendar cal = Calendar.getInstance();
cal.set(1999, 12, 31);
System.out.print(cal.get(Calendar.YEAR) + " ");
System.out.print(cal.get(Calendar.MONTH) + " ");
System.out.println(cal.get(Calendar.DAY_OF_MONTH));
cosa credete che venga stampato a schermo? - In questo codice c'è un evidente errore, siete in grado di individuarlo?
void copy(File src, File dst) throws IOException {
FileChannel in = null, out = null;
try {
in = new FileInputStream(src).getChannel();
out = new FileOutputStream(dst).getChannel();
long size = in.size();
MappedByteBuffer buf = in.map(FileChannel.MapMode.READ_ONLY, 0, size);
out.write(buf);
} finally {
if (in != null) in.close();
if (out != null) out.close();
}
}
Quanto vale1 << 32
Eseguendo questo codice:
public static void main(String[] args) {
System.out.println(10/magic(-2147483648));
}
static int magic(int x){
if (x !=0)
return x+x;
return 1;
}
cosa viene stampato a schermo?
I modifier sono quelle cose tipo public o static. Facile, direte voi. La domanda è: quanti modifier ci sono in java?
Se per qualche assurda ragione avete azzeccato la risposta precedente, sareste in grado di riee quali e spiegare a cosa servono?
Avendo cura di includere java.lang.reflect.*, Cosa stampa questo spezzone:System.out.print( Modifier.toString( Member.class.getModifiers() ) );
?
Qual'è l'errore in questa innocua classe?
public class Main {
public static final double twoPI
= 2 * myPI;
public static final double myPI
= Math.PI;
}- Potrebbero sembrare banali, ma io mi sbaglio spesso.. Quali tra queste sono assegnazioni valide ?
- double b = 1.0;
- float c = .1f;
- float a = 0.1;
- float d = 1.f ;
- float e = 3.2f ;
- double f = 1. ;
- float g = 0x23595959L ;
- float h = 0x595959F ;
- double i = 0X0;
- int l = 2147483648;
- double m = 2036373547;
- float n = 2147483648;
- double m = 2147483648