Java 基本数据类型面试题

1、如下程序语句是否有问题?

short s1 = 1;

s1 = s1 + 1;    //1

short s2 = 1;

s2 += 1;    //2

对于注释1来说,在s1+1运算时会自动提升表达式的类型为int,所以将int赋值给short类型的变量s1会出现类型传唤错误,正常情况下无法通过编译,IDE会有错误提示,除非主动加上强转。对于注释2来说,+=是java语法规定的运算符,所以java编译器会默认对它进行特殊处理,因此可以正确编译执行。

2、java中 Integer 和 int 的区别?

int是java内置基本数据类型之一,java为每个基本类型都提供了一个封装类,Integer就是int的封装类;int变量的默认值为0,Integer变量的默认值为null,所以Integer可以区分出未赋值和值为0的区别;Integer类内部提供了一些关于整数操作的方法

3、java中char类型变量能不能存储一个中文的汉字?

java的char类型变量是用来存储Unicode编码字符的,Unicode字符集包含了汉字,所以char类型自然就能存储汉字,但是在某些他叔情况下某个生僻字可能没有包含在Unicode编码字符集中,这种情况下char类型就不能存储该汉字了

4、java 的 switch 语句能否作用在 byte 类型变量上,能否作用在 long 类型变量上,能否作用在 String 类型变量上?

由于 byte 的存储范围小于 int,可以向 int 类型进行隐式转换,所以 switch 可以作用在 byte 类型变量上;由于 long 的存储范围大于 int,不能向 int 进行隐式转换,只能强制转换,所以 switch 不可以作用在 long 类型变量上;对于 String 类型变量在 Java 1.7 版本之前不可以,1.7 版本之后是可以的。(switch支持的类型一共有:byte、short、int、char、String)

5、java 中 3*0.1 == 0.3 将会返回什么?true 还是 false?

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

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

不正确,3.4 是双精度数,将双精度型(double)赋值给浮点型(float)属于向下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换 float f = (float)3.4; 或者写成 float f = 3.4F; 才可以。在Java中,默认的小数都是double类型。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,803评论 18 399
  • 小编费力收集:给你想要的面试集合 1.C++或Java中的异常处理机制的简单原理和应用。 当JAVA程序违反了JA...
    八爷君阅读 4,690评论 1 114
  • (遇见你的我《将爱情进行到底》) 从2002年10月1日到2003年1月1日,我们真正在一起的时间一共是三个月,9...
    臭豆Fool阅读 374评论 6 1
  • 一直觉得一个人只要有梦想,有信仰,这样子无论是生活还是工作都不会轻易被打倒。 如今支撑我坚持下去的唯一信念就是:“...
    白黎_鬼手阅读 291评论 0 0
  • 敏感肌肤的MM总是特别苦恼,一不小心就过敏了,怎么护理保养肌肤才能安全没事了,今天大鹏就为大家推荐五个美容护肤的小...
    沈大鹏欧巴阅读 231评论 0 1