zoukankan      html  css  js  c++  java
  • Java数据类型——面试题

    1、short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 +=1;有什么错?

    答:对于short s1=1;s1=s1+1来说,在s1+1运算时会自动提升表达式的类型为int,那么将int赋予给short类型的变量s1会出现类型转换错误。

    对于short s1=1;s1+=1来说 +=是java语言规定的运算符,java编译器会对它进行特殊处理,因此可以正确编译。

    2、char类型变量能不能储存一个中文的汉子,为什么?

    char类型变量是用来储存Unicode编码的字符的,unicode字符集包含了汉字,所以char类型当然可以存储汉字的,还有一种特殊情况就是某个生僻字没有包含在

    unicode编码字符集中,那么就char类型就不能存储该生僻字。

    3、Integer和int的区别

    int是java的8种内置的原始数据类型。Java为每个原始类型都提供了一个封装类,Integer就是int的封装类。

    int变量的默认值为0,Integer变量的默认值为null,这一点说明Integer可以区分出未赋值和值为0的区别,比如说一名学生没来参加考试,另一名学生参加考

    试全答错了,那么第一名考生的成绩应该是null,第二名考生的成绩应该是0分。关于这一点Integer应用很大的。

    Integer类内提供了一些关于整数操作的一些方法,例如上文用到的表示整数的最大值和最小值。

    4、switch语句能否作用在byte上,能否作用在long上,能否作用在string上?

    byte的存储范围小于int,可以向int类型进行隐式转换,所以switch可以作用在byte上

    long的存储范围大于int,不能向int进行隐式转换,只能强制转换,所以switch不可以作用在long上

    string在1.7版本之前不可以,1.7版本之后switch就可以作用在string上了。

    5、能否在不进行强制转换的情况下将一个 double 值赋值给 long 类型的变量?

    答:不行,我们不能在没有强制类型转换的前提下将一个 double 值赋值给 long 类型的变量,因为 double 类型的范围比 long 类型更广,所以必须要进行强制转换。

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

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

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

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

  • 相关阅读:
    自定义实现wcf的用户名密码验证
    EF6:编写你自己的code first 数据迁移操作(睡前来一篇,翻译的)
    .net 连接Redis
    idea external libraries 只有jdk问题
    MAC vim安装gruvbox主题
    Mac gitk安装与优化
    spring security 4 filter 顺序及作用
    mysql 采样查询 / 间隔查询 / 跳跃查询的两种实现思路
    nginx warn an upstream response is buffered to a temporary file /var/cache/nginx/proxy_temp/ while reading upstream
    nginx日志 logrotate配置
  • 原文地址:https://www.cnblogs.com/xiaostudy/p/9245136.html
Copyright © 2011-2022 走看看