面试经典1-每日10题-2022/1/26

180 阅读2分钟

JAVA基础

第一题:Java有哪些数据类型

定义:java语言是强类型语言,对于每一种数据都定义了明确的的具体的数据类型,在内存中分配不同大小的内存空间

image.png

第二题:switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上

在java5之前,switch(expr)中,expr只能是:byte,short,int,char
从java5开始,java引入枚举,expr也可以是枚举,
从java7开始,expr也可以是字符串,但是long目前版本还不支持

第三题:用最有效率的方法计算 2 乘以 8

  • 2 << 3(左移 3 位相当于乘以 2 的 3 次方,右移 3 位相当于除以 2 的 3 次方)。

第四题:Math.round(11.5) 等于多少?Math.round(-11.5)等于多少

  • Math.round(11.5)的返回值是 12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加 0.5 然后进行下取整。

第五题:float f=3.4;是否正确

不正确:3.4后面没有加3.4f就相当于是 双精度型double,所以大转小需要强制类型转换; 如:flost f = (flost)3.4或flost f = 3.4f;

第六题:short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗?

对于s1 = s1 + 1,由于1为int类型,计算结果也应该是int类型,所以需要强制转换才可以;
对于s1 += 1,相当于s1 = (short(s1+1))其中隐含强制转换类型;

访问修饰符

第七题:访问修饰符 public,private,protected,以及不写(默认)时的区别

image.png

运算符

第八题:&和&&的区别

&运算有两种用法:(1)按位与,(2)逻辑与;
&&运算符是短路与运算:逻辑与短路与差别十分巨大,虽然说都是两端都是true整个表达式才是true, &&之所以叫短路运算,就是因为只要一端为false,就都为false. &&如果左边为false则就不再执行右边的表达式

关键字

第九题:final 有什么用?

用于修饰类,属性和方法的
被final修饰的类不能被继承
被final修饰的方法不能被重写
被final修饰的属性不能被重新赋值;被final修饰不可改变变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的

第十题:final finally finalize区别

final:可以修饰类,变量,方法 被final修饰的类不能被继承\

被final修饰的方法不能被重写
被final修饰的属性不能被重新赋值;被final修饰不可改变变量的引用,而不是引用指向的内容,引用指向的内容是可以改变的 finally:一般作用在try-catch代码块中,在处理异常的时候,不管出没出现异常 都会执行它,一般用于关闭资源 finalize:是一个方法,属于Object的一个方法,该方法一般是垃圾回收器调用,当我们调用System.gc()方法的时候,有垃圾回收器进行调用finalize(),回收垃圾,一个对象是否可以回收做最后的判断