Pfeffer 2017-08-15 02:28 采纳率: 50%
浏览 1029
已采纳

关于包装类 提出一个问题

下面这个程序是模拟对Integer的一个包装。

     public class IntWrapper

    {

    private int value;

    public IntWrapper(int value)

    {

    this.value = value;

    }

    // 包含int类型相关的算法

    把十进制转换成2进制,8进制和16进制

    }

    ...main...

    {

    IntWarapper wrapper = null;

     wrapper = new intwrapper(17);

    }

学了一段时间的Java,现在忽然有些困惑。
第一次 IntWarapper wrapper = null;
第二次 wrapper = new intwrapper(17);

    问题一: 第二次是将第一次的值给覆盖了吗。
    问题二: 在我们编写java程序的时候,哪些值是需要初始化或者说程序强制初始化,哪些值是不需要初始化的。
  • 写回答

4条回答 默认 最新

  • 卖太妃糖的古尔丹 2017-08-15 02:57
    关注

    问题一:不是将第一次的值给覆盖了,IntWarapper wrapper = null;null在底层也是一种指针,这个你先不用管,就把它当成,给wrapper初始化为空,不指向任何对象,wrapper = new intwrapper这一句,jvm在运行的时候发现new关键字,在堆中开辟内存空间,并调用构造方法进行初始化,返回这个对象的引用,并赋值给wrapper变量,引用类似C语言的指针但稍有区别,刚开始学习可以把它当成指针
    问题二:java中成员变量如果你不对它进行初始化,jvm也会把它赋值为0或者null或者false,类型不同,就不同,局部变量,需要自己初始化,另外,其实一般情况下都是构造器中进行初始化的,因为你要使用它,肯定要给它赋值,如果不初始化的话,基本类型可能只会造成逻辑错误,引用类型会直接崩溃并抛出控指针异常
    另外如果需要使用包装类,可以使用java自带的包装类库

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥15 python爬取bilibili校园招聘网站
  • ¥30 求解达问题(有红包)