java基础语法面试题(二)

1 break ,continue ,return 的区别及作用?

答:

breal:跳出当前循环

continue:结束当前循环进行下一次循环

return:结束方法

2 抽象方法能被final修饰吗?

答:

不能,抽象方法的本意就是为了被继承,而被final修饰的方法不能继承,互相矛盾,所以抽象方法不能被final修饰.

3 static修饰的方法能调用非static修饰的变量和方法吗?

答:

不能,因为静态方法创建出来的时候,非静态资源还没有被创建出来,所以静态方法只能调用静态方法和变量,static修饰的方法只能调用静态方法和变量

4 局部内部类和匿名内部类访问局部变量的时候,为什么变量必须要加上final?

答:

因为生命周期不一致,局部变量保存在栈中,方法结束后,非final修饰的变量会被销毁,而局部内部类对局部变量的引用仍然存在,调用局部变量的时候就会出错

5 重载(Overload)和重写(Override)的区别

答:

重载:

在同一个类中,方法名相同,参数列表不同,构成的方法重载,参数列表不同分为:参数个数,参数类型,参数顺序

方法名称相同 参数类型不同 参数类型:参数数量 参数类型 参数顺序

---------------------------------------------------------------------------------------------------------------------------------

重写:

在继承的条件下,方法名参数必须相同的情况下,构成了方法的重写@Override注解来规范方法重写,如果不是重写方法,会报错

发生在父子类中,方法名称参数必须相同,抛出的异常小于父类访问修饰符大于等于父类

6 构造器(constructor)是否可被重写(override)

答:

构造器不能被继承,所以不能被重写,但是可以重载

7 java中创建对象的方式有哪些?

答:

1.使用关键字:new

2.使用Class类的newInstance方法

3.使用Constructor类的newIstance方法

4.使用clone方法

5.使用反序列化

多态

多态实现原理

多态的底层实现是动态绑定,就是在运行时把方法调用与方法实现关联起来.

静态绑定与动态绑定

一种是在编译器确定,被成为静态分派,例如:方法的重载;

一种是在运行时确定,被称为动态分派.例如:方法的重写和接口的实现

多态(通过继承多个子类对同一个方法进行重写,也可以通过接口实现接口并覆盖接口)的实现

         虚拟机栈中会存放当前方法调用的栈帧(局部变量表,操作栈,动态连接,返回地址).多态的实现过程,就是方法调用动态分派的过程,如果子类覆盖了父类的方法,则在多态调用中,动态绑定过程会首先确定实际类型是子类,从而先搜索到子类中的方法.这个过程便是方法覆盖的本质.

static和final关键字

static:可以修饰属性和方法

        修饰属性时,类级别属性,所有对象共享一份,随着类的加载而加载(只加载一次),县域对象的创建;可以使用类名直接调用.

        修饰方法时,随着类的加载而加载,可以使用类名直接调用;静态方法中,智能调用静态的成员,不可使用this;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值