java面试经验--每日五题--java基础(2)

目录

    • 1 、请介绍全局变量和局部变量的区别
    • 2、请介绍一下实例变量的默认值
    • 3、为啥要有包装类?
    • 4、说一说自动装箱、自动拆箱的应用场景
    • 5、如何对Integer和Double类型判断相等?



1 、请介绍全局变量和局部变量的区别


全局变量:(成员变量)

  • 指在类的范围中定义的变量
  • 成员变量有默认值
  • 没有被static修饰的成员变量也叫实例变量,存储在对象的堆内存中,生命周期与实例对象相同
  • 被static修饰的变量叫类变量,存储在方法区中,生命周期与当前类相同

局部变量:

  • 指在方法中定义的变量
  • 没有默认值
  • 局部变量存储于栈内存中,作用范围结束,会自动释放内存

2、请介绍一下实例变量的默认值


  • 对于基本数据类型,默认值为0
  • 对于引用数据类型,默认值为null

3、为啥要有包装类?


  • 因为java是面向对象的编程语言,而java中的8种基本数据类型不具备对象的特征,所以java为每个基本数据类型定义了一个引用类型,也就是包装类。

  • 包装类可以简化基本数据类型到引用类型的转换


4、说一说自动装箱、自动拆箱的应用场景


  • 自动装箱是指,基本数据类型的数据,直接赋值给对应包装类型的对象

  • 自动拆箱是指,包装类型的对象,赋值给对应的基本数据类型

  • 当方法中需要传入的参数是一个包装类型的时候,这时候响应过来的是一个基本类型的数据,有了自动装箱和自动拆箱,就可以直接传入这个基本类型的数据,不用做多余的转换,简化了类型转换的操作。


5、如何对Integer和Double类型判断相等?


  • Integer 和 Double 不能直接用==进行比较
  • 可以将两者转换为同一个类型,再进行比较,比如Integer 转为 Double 类型,再用==进行比较
  • 不可以转换为字符串后进行比较,因为浮点型带小数点,整数不带,这种情况下永远不相等
  • 整数、浮点数的包装类都继承自 Number 类型,Number 中提供了相应的类型转换的方法

你可能感兴趣的:(java面经,java,面试)