java常见基础面试题(一)

本文主要介绍了Java中的基础面试题目,包括:&和&&的区别,break、continue、return的用途,跳出多重循环的方法,final、finally、finalize的详细解释,以及short变量的加法问题。此外,还涉及了面向对象和面向过程的区别,成员变量与局部变量的差异,==与equals的区别,冒泡排序的实现,抽象类与final的结合使用,构造器是否可被重写,重载和重写的区别等核心概念。
摘要由CSDN通过智能技术生成
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大致过程:

1.垃圾回收器发现该对象实现了finalize()方法,就会把它添加到引用队列中。
2.Finalize线程会处理这个队列,将里面的对象逐个弹出,并调用他们的finalize()方法。
3.finalize()方法调用完后,Finalize线程会将引用从Finalize类中去掉,因此在一下轮GC中,这些对象就可以被回收了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值