java面试题整理

1、原题:Math.round(11.5) 等于多少?Math.round(-11.5)等于多少? 【ydtf】
答:Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整。

2、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?【ydtf】

当然有错误,short占2个字节,int占4个字节,short型变量+上int型值计算结果是int型,占4个字节,然后付给一个short型变量s1,

就要丢失2个字节的精度,这是不容许的。你非要这么做的话,我给你提供一个办法:
s1=s1+1;改成s1+=1;虽然是一个意思,但是在jvm里面是不同的方法做的,是运算符重载,所以是不一样的。

3、java中3*0.1==0.3将会返回什么?true还是false?[参考:float和double的区别]

fale,因为浮点数不能完全精确的表示出来,一般会损失精度。

4、java中float f = 3.4;是否正确?

不正确,3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型会造成精度损失,因此需要强制类型转换float f = (float)3.4;或者写成 float f = 3.4f;才可以。

        System.out.println(3*0.1); //0.30000000000000004
        System.out.println(3*0.1==0.3); //false
        
     // float是8位有效数字,第7位数字将会四舍五入
        float a = 1.32344435f;
        System.out.println(a);//1.3234444

5、在调用方法时,若要使用方法改变实参的值,可以 ( A )   【zyhy】

A、用引用数据类型作为参数
B、用基本数据类型作为参数
C、A和B都对
D、A和B都不对

6、Character流与Byte流的区别是( C )。 【zyhy】  

A.每次读入的字数相同
B.前者带有缓冲,后者没有
C.前者是块读写,后者是字节读写
D.二者没有区别,可以互换使用  

解析:  参考【Character流与Byte流的区别

  本题主要考查Java语言的I/O流知识点。选项A错误,前者是以字符为单位的块读写,后者是以字节为单位的读写;一般一个字符占两个字节,

所以它们每次读入的字符数不相等;选项B错误,两者都不带有缓冲;选项C正确。前者是以字符为单位的块读写,后者是以字节为单位的读写:选项D

错误,字符流是特殊类型的字节流,它仅仅处理文本数据,而字节流是一种较通用的流,它可以用于任何文件形式的流,故此选项中说它们没有区别,

可以互换使用是不正确的。故本题答案是C。

 7. 字符串常量

看这一篇就够了:https://blog.csdn.net/weixin_40304387/article/details/81071816

java基础笔试题:

参考:https://wenku.baidu.com/view/883115a0336c1eb91b375d20.html

原文地址:https://www.cnblogs.com/shiyun32/p/10566701.html