JAVA基础总结(一)

来源:互联网 发布:管理图片的软件 编辑:程序博客网 时间:2024/05/01 23:34

1.用带标号的break语句可以跳出多重嵌套循环。如:

ok:

for(int i=0;i<10;i++)

{

for(int j=0;j<10;j++)

{

System.out.println(“i=” + i + “,j=” + j);

if(j == 5) break ok;

}

 

2.使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的!

 

3.一个static方法内部不能发出对非static方法的调用。

 

4.int的默认值为0,而Integer的默认值为null,即Integer可以区分出未赋值和值为0的区别。

 

5.public、protected、friendly(不写是的默认值)、private

 

作用域    当前类 同一package 子孙类 其他package 

public    √     √          √       √ 

protected  √     √          √      × 

friendly   √     √          ×      × 

private    √     ×          ×      × 

 

6.子类覆盖父类的方法时,只能比父类抛出更少的异常,或者是抛出父类抛出的异常的子异常,因为子类可以解决父类的一些问题,不能比父类有更多的问题。子类方法的访问权限只能比父类的更大,不能更小。

 

7.至于Overloaded的方法是否可以改变返回值的类型?如果几个Overloaded的方法的参数列表不一样,它们的返回者类型当然也可以不一样;如果两个方法的参数列表完全一样,不能让它们的返回值不同来实现重载。

 

8.抽象类可继承实体类,但是和实体类的继承一样,也要求父类可继承,并且拥有子类可访问到的构造器。

 

9.声明为final的以及所有构造器都不在子类访问权限之内的类无法继承。

 

10.抽象类中可以有构造方法,是子类在构造子类对象时需要调用的父类(抽象类)的构造方法。抽象类中可以有静态的main方法。

 

11.写clone()方法时,通常都有一行代码,是什么?【super.clone()】因为首先要把父类中的成员复制到位,然后才是复制自己的成员。

 

12.接口中的方法定义默认为public abstract类型,接口中的成员变量类型默认为public static final。

 

13.对于内部类定义在外部类的方法体外的情况下,创建内部类的实例对象时,一定要先创建外部类的实例对象,然后用这个外部类的实例对象去创建内部类的实例对象,代码如下:

Outer outer = new Outer();

Outer.Inner inner = outer.new Innner();

 

对于静态内部类,在外面不需要创建外部类的实例对象,就可以直接创建Static Nested Class,例如,假设Inner是定义在Outer类中的Static Nested Class,那么可以使用如下语句创建Inner类:

Outer.Inner inner = new Outer.Inner();

 

14.String实现了equals方法,new String(“abc”).equals(new String(“abc”)的结果为true,而StringBuffer没有实现equals方法,所以,new StringBuffer(“abc”).equals(new StringBuffer(“abc”)的结果为false。

 

15.数组没有length()这个方法,有length的属性。String有length()这个方法。

 

16.try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后?

【先执行try{}中的语句,并将有关返回值暂时保存,然后执行finally{}中的语句,若finally{}中也出现return,则直接返回,否则返回暂时保存的返回值)。参见:F:/java/TestReturn.java】

 

17.final, finally, finalize的区别?

【final 用于声明属性,方法和类,分别表示属性不可变,方法不可覆盖,类不可继承。内部类要访问局部变量,局部变量必须定义成final类型,例如,一段代码……

finally是异常处理语句结构的一部分,表示总是执行。finalize是Object类的一个方法,在垃圾收集器执行的时候会调用被回收对象的此方法,可以覆盖此方法提供垃圾收集时的其他资源回收,例如关闭文件等。JVM不保证此方法总被调用。】

 

18.error和exception有什么区别? 

【error 表示恢复不是不可能但很困难的情况下的一种严重问题。比如说内存溢出。不可能指望程序能处理这样的情况。 exception 表示一种设计或实现问题。也就是说,它表示如果程序运行正常,从不会发生的情况。】