2020-08-25

1.final关键字有哪些用法?
修饰类:表示该类不能够继承。
修饰方法:表示该方法不能被重写,但能允许重载;
修饰变量:表示变量只能一次赋值以后只不能被修改(常量);
修饰对象:对象的引用地址不能变,但是对象的初识化值可以变。

2.如何实现对象的克隆?
实现CLoneable接口并重写Object类中的clone()方法;
实现serializable接口,通过对象序列化和反序列化实现克隆,可以实现真正的深度克隆。

3.重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
答:Java 的三大特征之一,多态机制,包括方法的多态和对象的多态;方法 的重载和重写都是实现多态的方式,区别在于前者实现的是编译时的多态性, 而后者实现的是运行时的多态性。重载(overload)发生在同一个类中,相 同的方法,如果有不同的参数列表(参数类型不同、参数个数不同或者二者 都不同)则视为重载;重写(override)发生在子类与父类之间也就是继承 机制当中,当父类的方法不能满足子类的要求,此时子类重写父类的方法; 要求:方法名、形参列表相同;返回值类型和异常类型,子类小于等于父类; 访问权限,子类大于等于父类,切记父类的私有方法以及被 final 修饰的方法不能被子类重写;重载对返回类型没有特殊的要求。

4.在Java中,如何跳出当前的多重嵌套循环?
在最外层循环前加一个标记如 A,然后用 break A;可以跳出多重循环。
(Java 中支持带标签的break 和continue 语句,作用有点类似于 C 和C++ 中的 goto 语句,但是就像要避免使用 goto 一样,应该避免使用带标签的break 和 continue,因为它不会让你的程序变得更优雅,很多时候甚至有相反的作用,所以这种语法其实不知道更好)

5.&和&&的区别?
答:&运算符有两种用法:(1)按位与;(2)逻辑与。&&运算符是短路与运算。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是 true 整个表达式的值才是 true。&&之所以称为短路运算是因为, 如果&&左边的表达式的值是 false,右边的表达式会被直接短路掉,不会进行运算。很多时候我们可能都需要用&&而不是&,例如在验证用户登录时判定用户名不是 null 而且不是空字符串,应当写为:username != null &&!username.equals(“”),二者的顺序不能交换,更不能用&运算符, 因为第一个条件如果不成立,根本不能进行字符串的 equals 比较,否则会产生 NullPointerException 异常。注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此。
补充:如果你熟悉 JavaScript,那你可能更能感受到短路运算的强大,想成为 JavaScript 的高手就先从玩转短路运算开始吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值