Java趣味问答题^_^
1.计算下面代码的结果
public class smallT
{
public static void main ( String args[ ] )
{
SmallT t = new SmallT ( ) ;
int b = t. get ( ) ;
System. out. println ( b) ;
}
public int get ( )
{
try
{
return 1 ;
}
finally
{
return 2 ;
}
}
}
2.设计4个线程,其中两个线程每次对j增加1,另外两个线程对j每次减少1。写出程序。
public class ThreadTest1 {
private int j;
public static void main ( String args[ ] ) {
ThreadTest1 tt= new ThreadTest1 ( ) ;
Inc inc= tt. new Inc ( ) ;
Dec dec= tt. new Dec ( ) ;
for ( int i= 0 ; i< 2 ; i++ ) {
Thread t= new Thread ( inc) ;
t. start ( ) ;
t= new Thread ( dec) ;
t. start ( ) ;
}
}
private synchronized void inc ( ) {
j++ ;
System. out. println ( Thread. currentThread ( ) . getName ( ) + "-inc:" + j) ;
}
private synchronized void dec ( ) {
j-- ;
System. out. println ( Thread. currentThread ( ) . getName ( ) + "-dec:" + j) ;
}
class Inc implements Runnable {
public void run ( ) {
for ( int i= 0 ; i< 100 ; i++ ) {
inc ( ) ;
}
}
}
class Dec implements Runnable {
public void run ( ) {
for ( int i= 0 ; i< 100 ; i++ ) {
dec ( ) ;
}
}
}
}
3.自动拆装箱的实验
public class Test {
public static void main ( String[ ] args) {
test ( ) ;
}
public static void test ( ) {
int i = 40 ;
int i0 = 40 ;
Integer i1 = 40 ;
Integer i2 = 40 ;
Integer i3 = 0 ;
Integer i4 = new Integer ( 40 ) ;
Integer i5 = new Integer ( 40 ) ;
Integer i6 = new Integer ( 0 ) ;
Double d1= 1.0 ;
Double d2= 1.0 ;
System. out. println ( "i=i0\t" + ( i == i0) ) ;
System. out. println ( "i1=i2\t" + ( i1 == i2) ) ;
System. out. println ( "i1=i2+i3\t" + ( i1 == i2 + i3) ) ;
System. out. println ( "i4=i5\t" + ( i4 == i5) ) ;
System. out. println ( "i4=i5+i6\t" + ( i4 == i5 + i6) ) ;
System. out. println ( "d1=d2\t" + ( d1== d2) ) ;
System. out. println ( ) ;
}
}