01-Java语言概述-企业真题

1.一个”.java”源文件中是否可以包括多个类?有什么限制

是!

一个源文件中可以声明多个类,但是最多只能有一个类使用public进行声明。

且要求声明为public的类的类名与源文件名相同。

2.Java 的优势

  • 跨平台型

  • 安全性高

  • 简单性

  • 高性能

  • 面向对象性

  • 健壮性

3. 如何看待Java是一门半编译半解释型的语言

4. Java开发中计算金额时使用什么数据类型?

不能使用float或double,因为精度不高。

使用BigDecimal类替换,可以实现任意精度的数据的运算。

5. char型变量中能不能存储一个中文汉字,为什么?

可以的。

char c1 = '中';

char c2 = 'a'。

因为char使用的是unicode字符集,包含了世界范围的所有的字符。

6. 代码分析

short s1=1; 
s1=s1+1;  //有什么错?  =右边是int类型。需要强转
short s1=1;
s1+=1; //有什么错?   没错

7. int i=0; i=i++执行这两句化后变量 i 的值为

0。

8. boolean 占几个字节

编译时不谈占几个字节。
​
但是JVM在给boolean类型分配内存空间时,boolean类型的变量占据一个槽位(slot,等于4个字节)。
细节:true:1  false:0
​
>拓展:在内存中,byte\short\char\boolean\int\float : 占用1个slot
              double\long :占用2个slot

9. 为什么Java中0.1 + 0.2结果不是0.3?

在代码中测试0.1 + 0.2,你会惊讶的发现,结果不是0.3,而是0.3000……4。这是为什么?

几乎所有现代的编程语言都会遇到上述问题,包括 JavaScript、Ruby、Python、Swift 和 Go 等。引发这个问题的原因是,它们都采用了IEEE 754标准

IEEE是指“电气与电子工程师协会”,其在1985年发布了一个IEEE 754计算标准,根据这个标准,小数的二进制表达能够有最大的精度上限提升。但无论如何,物理边界是突破不了的,它仍然不能实现“每一个十进制小数,都对应一个二进制小数”。正因如此,产生了0.1 + 0.2不等于0.3的问题。

具体的:

整数变为二进制,能够做到“每个十进制整数都有对应的二进制数”,比如数字3,二进制就是11;再比如,数字43就是二进制101011,这个毫无争议。

对于小数,并不能做到“每个小数都有对应的二进制数字”。举例来说,二进制小数0.0001表示十进制数0.0625 (至于它是如何计算的,不用深究);二进制小数0.0010表示十进制数0.125;二进制小数0.0011表示十进制数0.1875。看,对于四位的二进制小数,二进制小数虽然是连贯的,但是十进制小数却不是连贯的。比如,你无法用四位二进制小数的形式表示0.125 ~ 0.1875之间的十进制小数。

所以在编程中,遇见小数判断相等情况,比如开发银行、交易等系统,可以采用四舍五入或者“同乘同除”等方式进行验证,避免上述问题。

10. switch语句中忘写break会发生什么

case穿透

11. while和do while循环的区别

  • do-while至少会执行一次。

12. if分支语句和switch分支语句的异同之处

  • if-else语句优势

    • if语句的条件是一个布尔类型值,if条件表达式为true则进入分支,可以用于范围的判断,也可以用于等值的判断,使用范围更广

    • switch语句的条件是一个常量值(byte,short,int,char,枚举,String),只能判断某个变量或表达式的结果是否等于某个常量值,使用场景较狭窄

  • switch语句优势

    • 当条件是判断某个变量或表达式是否等于某个固定的常量值时,使用if和switch都可以,习惯上使用switch更多。因为效率稍高。当条件是区间范围的判断时,只能使用if语句。

    • 使用switch可以利用穿透性,同时执行多个分支,而if...else没有穿透性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值