Java第三次测试总结

解析:这个数组是int类型的!!!,不是String等引用类型。

解析: B

参数是按照值传递的,不管是基本类型还是引用类型。方法调用时,实际参数把它的值传递给对应的形式参数,方法执行中形式参数值的改变不影响实际参 数的值。

解析:A

需要的是Integer类型,所以会自动进行装箱。底层要调用静态的valueOf()方法,valueOf方法中有一个判断,判断输入的整数是否超过int的范围(-128~127)。若超过,则会另外新建一个对象,所以上面的i5和i6分别是两个对象,==在引用类型中比较的是两个对象的地址是否相等,所以答案为false。底层有一个静态数组cache,当输入的整数在范围内时会调用一个数组,而且数组的下标是输入的值+1计算出来的,而数组中的值,是在类加载的时候就已经存放好的。

 

解析:A

不管有没有出现异常,finally块中代码都会执行。当try和catch中有return时,finally仍然会执行,然后就return。

解析:ABD

接口和抽象类都不能被实例化。但是抽象类有构造函数,即使我们声明一个没有构造函数的抽象类,编译器还会为我们生成一个默认的保护级别(保护级别其实就是抽象类中的public构造函数,因为Java语言规范在编译期限定其不可实现,所以功能上相当于protected的构造函数。子类可以进行调用。

接口里面的成员变量默认都是public static final的,在编译期就被显示的初始化。抽象类中的成员变量是普通变量

解析:ACE

float、long是基本类型,会进行转化,所以不需要带,但是标准类型还是要在后面加上l、f。但是如果为 Long Float,不会自动转化,则是需要在数值后面加L和F,

byte的取值范围是-128—127

java中0开头的数字表示8进制

boolean类型的变量转化为int类型。int myInt = myBoolean ? 1 : 0;

十六进制整数,自动转 双精度浮点数

解析:接口和抽象类都不能被实例化。但是抽象类有构造函数,即使我们声明一个没有构造函数的抽象类,编译器还会为我们生成一个默认的保护级别(保护级别其实就是抽象类中的public构造函数,因为Java语言规范在编译期限定其不可实现,所以功能上相当于protected的构造函数。子类可以进行调用。

抽象类里的抽象方法必须全部被子类所实现,如果子类不能全部实现父类抽象方法,那么该子类只能是抽象类;接口的所有方法必须全部被实现接口的类实现,如果该类不能全部实现接口的方法,那么该类只能是抽象类,,因为抽象类是一种未完成的类,不需要完成接口中的所有方法,只需要声明,其他实现的过程多交给继承它的子类。

抽象类的抽象方法(该方法的具体实现由它的子类确定)和接口的方法都没有方法体。

  

解析:CD

顺序改变后,编译不受影响,结果可能会被影响。

 解析:AB

多态:用基类的引用指向子类的对象。

多态的作用:

1. 应用程序不必为每一个派生类编写功能调用,只需要对基类进行处理即可。大大提高程序的可复用性。将父类作为方法的形参,可以接受任意的子类对象。

public class demo06 {
    static class Animal {
        public void eat() {
            System.out.println("动物吃饭");
        }
    }

    static class Cat extends Animal {
        public void eat() {
            System.out.println("猫吃饭");
        }
    }

    static class Dog extends Animal {
        public void eat() {
            System.out.println("狗吃饭");
        }
    }

    public static void method(Animal animal) {//使用多态,把父类当做形参
        animal.eat();
    }

    public static void main(String[] args) {
        Cat cat=new Cat();
        Cat cat1=new Cat();
        method(cat);//参数类型为子类
        method(cat1);
        Dog dog=new Dog();
        Dog dog1=new Dog();
        method(dog);
        method(dog1);

    }
}

2. 派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。创建一个 Cat() 对象,但是引用是 Animal 类型的。animal既可以调用父类的方法,也可以调用子类的方法;可以调用父类的方法是因为子类继承了父类的原因,就相当于是一个儿子继承了父亲的所有财产,对财产具有使用权;而引用可以调用子类的方法的原因是这些方法本身就是子类所独有的,通过这两点可以知道:引用可以调用的方法 = 父类的方法 + 子类的方法

Animal animal=new Cat();
animal.eat();

封装的作用:隐藏实现细节,使得代码模块化。

解析:261345

首先是调用静态代码块,输出26,然后调用非静态代码块,输出13,再调用构造方法,输出4,最后通过new Block().show(),进行方法的调用,输出5

静态代码块:类每次加载到内存中调用一次,并最先调用。

非静态代码块:类的对象每次加载到内存中调用一次,并最先调用,然后是调用对应的构造方法。

构造方法:在非静态代码块之后。

静态方法、非静态方法:都是进行方法调用时才执行。

解析: Expcetion

实现自定义异常类需要继承 Exception 类或其子类,如果自定义运行时异常类需继承 RuntimeException 类或其子类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值