java/android 做题中整理的碎片小贴士(11)

1、java中length属性用于数组,length()方法用于String,size()针对泛型集合。

2、①finally语句中的return会将try中的覆盖掉,并且会使try中对数据的操作无效;②如果finally中没有return,也没有改变返回值,则会先执行完finally语句,再回过头来执行try中的return语句;③如果finally中没有return,并且修改了返回值,类似于值传递和引用传递的关系来起作用。

3、输出顺序:构造块 构造块 静态块 构造块 (这里静态域首先执行)

public class B{
    public static B t1 = new B();
    public static B t2 = new B();
    {
        System.out.println("构造块");
    }
    static {
        System.out.println("静态块");
    }
    public static void main(String[] args){
        B t = new B();
    }
}

4、Java语言中的非静态方法属于对象(而非类)中的成员(member)。

5、运行正常,能输出。

public class TestClass {
   private static void testMethod(){
        System.out.println("testMethod");
   }
   public static void main(String[] args) {
        ((TestClass)null).testMethod();
   }
}

null可以被强制类型转换成任意类型(不是任意类型对象),于是可以通过它来执行静态方法。

6、JVM根据两个条件判断两个类是否相同:①类的全称②类的加载器。

7、对外部类来说只有两种访问修饰,public 和默认(default),因为外部类放在包中,只有包可见和不可见两种。而内部类才是可以用private,protected。

8、

public void first( ){
    Value v=new Value( );
    v.i=25;
    second(v);
}
 
public void second(Value v){
    v.i = 20;
    Value val = new Value( );
    v = val;
   }

v = val 只改变second()中的临时变量的指向,不影响外部的v。而v.i= 20则修改了指向的对象的值,对外部v造成了影响。

9、枚举类enum是一个类,因而不是一个原始数据类型。

posted @ 2018-09-21 09:18  jason31  阅读(166)  评论(0编辑  收藏  举报