桐乡的java培训,上元IT培训:Java精英班企业面试题(四)

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

上元IT培训:Java精英班企业面试题(四)

1、如何解决计算过程中精度丧失的问题?

例如:

double d1 = 3.0; double d2 = 2.9;

// 0.10000000000000009

// 因为计算机本身是二进制的,而浮点数实际上只是个近似值,

//所以从二进制转化为十进制浮点数时,精度容易丢失,导致精度下降 System.out.println(d1 - d2);

可以使用 BigDecimal 类来操作:

涉及金钱方面的计算一般都要使用该类型以提高精确度

double d1 = 3.0; double d2 = 2.9;

BigDecimal bd1 = new BigDecimal(String.valueOf(d1)); BigDecimal bd2 = new BigDecimal(String.valueOf(d2)); double d = bd1.subtract(bd2).doubleValue(); System.out.println(d);

Ø求 1000000 个 0.01 的和?

使用 BigDecimal

桐乡IT编程培训班

2、char 型变量能否存储一个汉字?为什么?

在 Java 中,char 类型占 2 个字节,而且 Java 默认采用 Unicode 编码,一个 Unicode 码 是 16 位,所以一个 Unicode 码占两个字节,Java 中无论汉字还是英文字母都是用 Unicode 编码来表示的。所以,在 Java 中,char 类型变量可以存储一个中文汉字。

3、&&和&,||和|有什么异同?

&&和&:都表示逻辑“与”

对于&&,如果有两个表达,第一个表达式结果为 false,那就不会计算第二个表达式的 值,整个表达式的值都是 false。

对于&,如果有两个表达式,无论第一个表达式的结果是 true 还是 false,都会计算第二 个表达式的值。

对于&&,具有短路逻辑

||和|:都表示逻辑“或”

对于||,如果有两个表达式,第一个表达式为 true,就不会计算第二个表达式的值,整 个表达式的值就是 true

对于|,如果有两个表达式,无论第一表达式的结果是 true 还是 false,都会计算第二个 表达式的值。

对于||,具有短路逻辑。

4、switch……case……的条件表达式支持什么类型?

JDK1.5 之前:byte/short/int/char JDK1.5 以后:新增 enum

JDK1.7 过后:新增 String 类型

31b6e807f650bed9b43ca7f2cd6e9d9b.png

5、equals 比较和==比较有什么区别?

(1)对于基本类型变量,存储的就是变量值本身,对于引用类型变量,存储的是对象的内存地址

(2)对于基本类型,==比较的就是值本身,而对于引用类型,==比较的则是内存的地址, equals()方法比较的是堆中的内容。即比较两个对象在堆中的内容是否相同。

如果一个对象没有重写 equals 方法则默认采用的还是==比较

6、while 循环和 do……while 循环的区别?

while 循环先判断再执行,do……while 循环先执行一次再判断,它们的区别体现在第一 次就不满足条件的循环中,如果不是这样,两者之间是可以相互替换的。

7、Java 中如何一次性跳出多重循环?

Java 中的 break 默认只能跳出一重循环,可以使用带标号的 break 语句跳出多重循环。

here: for (int i = 1; i <= 3; i++) { for (int j = 1; j <= 3; j++) {

System.out.println("i=" + i + ",j=" + j); if (j == 1) {

break here;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值