final的用法
public class Test
{
private final int a;
private String name;
public Test()
{
a= 3;
}
public Test(String name)
{
this.name = name;
}
}
问题1:上述代码能否编译通过?不能,请说明理由
对于final类型的成员变量的初始化方式:
1、声明变量时直接赋值;
2、在构造方法中完成赋值,如果一个类有多个构造方法,就要保证在每个构造方法中都要完成对该final类型变量的初始化工作
public class Test2
{
public static final StringBuffer s = new StringBuffer();
public static void main(String[] args)
{
s.append("hello");
}
}
问题:上述代码可以编译通过吗,如果不能,请说明理由;
可以通过的。
对于final类型的引用变量来说,所谓的不能改变指的是该引用不能改变。
public class ExceptionTest
{
public static void main(String[] args)
{
try
{
String s = null;
return;
}
catch (Exception ex)
{
System.out.println("exception");
}
finally
{
System.out.print("finally");
}
}
}
问题:上述代码可以编译通过吗,如果不能,请说明理由;如果可以,输出什么?
输出fianlly
public class ExceptionTest
{
public static void main(String[] args)
{
try
{
String s = null;
System.exit(0);
}
catch (Exception ex)
{
System.out.println("exception");
}
finally
{
System.out.print("finally");
}
}
}
问题:上述代码可以编译通过吗,如果不能,请说明理由;如果可以,输出什么?
数组认识
interface I
{
}
public class ArrayTest
{
public static void main(String[] args)
{
I[] i = new I[2];
}
}
问题:此程序编译通过吗?通过
interface I
{
}
public class ArrayTest
{
public static void main(String[] args)
{
I i = new I();
}
}
问题:此程序编译通过吗?不通过