java面向对象练习题
解析:字符串对象为不变对象,一经创建不可改变。一旦对字符串进行修改操作,会创建新的对象(频繁修改会频繁创建新对象,占用内存)
解析:new出来的对象均存储在堆内存中,当没有引用时由java垃圾回收器不定时回收
答案:B、C、D
解析:因为o指向的对象的属性Y等于i,只要把i指向的对象的x改为100即可,或者让o指向的对象的属性Y赋值为另一个x=100的对象也可以
解析:当应用程序试图在需要对象的地方使用 null
时,抛出该异常。这种情况包括:
- 调用
null
对象的实例方法。 - 访问或修改
null
对象的字段。 - 将
null
作为一个数组,获得其长度。 - 将
null
作为一个数组,访问或修改其时间片。 - 将
null
作为Throwable
值抛出。
解析:子类不能继承父类私有属性和私有方法,不能继承父类构造器
解析:父类变量引用子类对象,父类变量不能强转为子类变量,子类与子类不能转换
解析:构造子类对象时,先去访问父类构造方法
解析:父类型变量引用子类A的对象,该父类变量不可强转为子类B类型
解析:java遵循就近原则
解析:static final修饰的变量为常量,a的值不能再改变了
解析:回调模式是接口或者具有抽象方法的抽象类,采用匿名内部类的形式
解析:多态是父类型变量引用子类型对象(父类new子类)并且调用子类重写的方法
解析:方法method中是x += x,不是this.x += x,所以依照java的就近原则,传进来的参数x是5,那么就按照x就等于5来计算,也就是5+5=10
解析:方法的重载与返回值无关
解析:new出来的对象均有默认初始值,除了String初始值是null
解析:C错在中间应该是分号而不是逗号
答案:A
解析:C中传递的参数是long,不是重写