1.&和&&的区别
第一,&运算符有两种用法:(1)按位与;(2)逻辑与
第二,&&运算符是短路与运算符。逻辑与跟短路与的差别是非常巨大的,虽然二者都要求运算符左右两端的布尔值都是true 整个表达式的值才是 true,但是短路与运算,如果&&左边的表达式的值false,右边的表达式会被直接短路掉,不会再进行运算。(注意:逻辑或运算符(|)和短路或运算符(||)的差别也是如此)
2.break ,continue ,return 的区别及作用
第一,break 跳出总上一层循环,不再执行循环(结束当前的循环体)
第二,continue 跳出本次循环,继续执行下次循环(结束正在执行的循环 进入下一个循环条件)
第三,return 程序返回,不再执行下面的代码(结束当前的方法 直接返回)
3.在 Java 中,如何跳出当前的多重嵌套循环
在Java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break 语句,即可跳出外层循环。例如:
public static void main(String[] args) {
ok:
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.println("i=" + i + ",j=" + j);
if (j == 5) {
break ok;
}
}
}
}
4.final finally finalize区别
final:
第一,如果一个类被声明为final,那也就是意味着他不能再派生出新的子类,不能作为父类被继承,因此一个类不能既被声明为abstract,又被声明为final。(被final修饰的类不可以被继承)
例:String ,integer,Long等类都是final修饰的类,其保存值的属性也是final修饰的。
第二,将变量或者方法声明为final,可以保证他们在使用中不被改变。那也就是,被final声明的变量必须在声明时给定初始值,而且在以后的引用中只能读取,不可修改。被final修饰的方法也同样只能使用不能被重写。
第三,如果被final修饰的是一个基本数据类型的数据,一旦赋值后就不能再次更改,而对引用类型变量而言,它仅仅保存的是一个引用,所以呢引用的地址不会发生改变,也就是一直引用这个对象,但是这个对象属性是可以改变的,或者说成引用指向的内容是可以改变的,
finally:
finally一般作用在try-catch代码块中,在处理异常的时候,通常我们将一定要执行的代码放在finally代码块中,表示不管是否出现异常,该代码块都会执行,一般用来存放一些关闭资源的代码。比如:关闭流,关闭socket。
finalize:
第一,finalize是在Object类中定义的,finalize是一个方法,属于Object类的一个方法,该方法一般由垃圾回收器来调用,也就是说你的这个垃圾回收器要确定你的这个对象没有被引用,如果现在没有被引用,我就可以调用方法给他处理掉。也就是我们调用System.gc() 方法的时候,由垃圾回收器调用finalize(),回收垃圾。
第二,finalize方法,是在垃圾回收器删除对象之前对这个对象调用的,但是这个方法在工作中最好别用,如果用了可能会带来意向不到的难题,一般情况下,我们在业务
中不会自己实现这个方法。
第三,使用finalize大致过程: