JAVA基础面试题

1:&和&&的区别。

同:&和&&都可以用作逻辑运算符(与)的运算符,表示逻辑与(and)当运算符两边的表达式的结果都为true时,整个运算结果才为true,否则,只要有一方为false,则结果为false。

异:&&还具有短路的功能,即如果当第一个表达式为false,则不再计算第二个表达式。(&&和&在第一个表达式不成立时,双不会抛出nullpointerexception单会抛出!)

  &还可以用作位运算符,当&操作符两边的表达式不是boolean类型时,&表示按位与操作,我们通常使用0x0f来与一个整数进行&运算。

注:(&按位与(and),按位与运算。一个比特bit位只有0和1两个取值,只有参与&运算的两个位都为1时结果才为1,否则为0)。

2:在JAVA中如何跳出当前的多重嵌套循环?

在java中,要想跳出多重循环,可以在外面的循环语句前定义一个标号,然后在里层循环体的代码中使用带有标号的break五路,即可跳出外层循环。

3:使用final关键字修饰一个变量时,是引用不能变,还是引用的对象不能变?

使用final关键字修饰一个变量时,是指引用变量不能变,引用变量所指向的对象中的内容还是可以改变的。

例如:final  stringbuffer a=new  stringbuffer(“immutable”);

执行如下语句会报错:

a=new  stringbuffer(“”);但是,执行如下语句则可以通过编译:

a.append(“broken!”);

注:final变量永远指向这个对象,是一个常量指针,而不是指向常量的指针。

4:“==”和equals的区别?

这个问题很容易用一句话来回答:“==”用来判断两个地址是否相等,equals判断值是否相等。

5:静态变量和实际变量的区别?

同:他们都是变量!

异:实际变量属于某个对象的属性,必须创建了实际对象,其中的实例变量才会被分配空间,才能使用这个实际变量。静态变量不属于某个实际对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实际对象,静态变量就会被分配空间,静态变量就可以被使用了。(一句话总结:实际变量必须创建对象后才可以通过这个对象来使用,静态变量则可以直接使用类名来引用。)

6:是否可以从一个static方法内部发出对非static方法的调用?

不可以。因为非static方法是要与对象关联在一起的,必须创建一个对象后,才可以在该对象上进行方法调用,而static方法调用时不需要创建对象,可以直接调用。

7:请说出作用域public,private,protectt,以及不写时的区别?

图片发自App

8:overload和override的区别。overload的方法是否可以改变返回值的类型?

同:他们都是多态性的不同表现

异:override是父类与子类间多态性的表现,overload是类中多态性的一种表现。

是否可以改变返回值,两种结果1,参数列表不同,所以返回值不同。2,如果参数列表相同,那么挂了~

9:构造器constructor是否可被override?

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

10:接口是否可以继承接口?抽象类是否可以实现接口?抽象类是否可以继承具体类?抽象类中是否可以有静态的main方法?


接口可以继承接口,抽象类可以实现接口,抽象类可以继承具体类。抽象类中可以有静态的main方法。

你可能感兴趣的:(JAVA基础面试题)