zoukankan      html  css  js  c++  java
  • 为什么要初始化变量呢

    因为java规定,变量没有初始化不能使用,全局变量也就是类的属性,java会在编译的时候,自动将他们初始化,所以可以不什么变量初始化的操作。但是(局部)变量必须初始化

    这个在工作中也得到了很好的验证:

    如果是在类的成员变量中,BookInfo bookinfo;和BookInfo bookinfo=null;是一样的效果;因为该类在初始化时成员变量也会做初始化,默认就是null;而方法内的变量则不会初始化;

    而如果是局部变量,则必须初始化,也就是=null或者new,因为为了保证java的安全性;

    额外补充:

    今天在写代码时,遇到一个问题,特此进行记录。
     for (ProfileDto profileDto : profile)
                {

                 // Profile resProfile=null;
                    Profile resProfile=new Profile();

                  // 将profileDto对象的属性值复制给resProfile对象
                    Tools.copyPropertiesIgnoreNull(profileDto, resProfile);
                    proList.add(resProfile);
                }

    今天在写这段代码时,起初是Profile resProfile=null;然后debug走到复制属性方法的时候,就直接跳出了,

    然后改为new的方式就ok了。

    所以就很好奇,对此特地进行研究和总结。

            对象 = null 指向到一个空地址,只是声明了一个对象的引用,并没有在jvm中开辟内存,已进行存储。

    而u2 指向的一个具体的对象,对象需要空间存放的。在对象引用的时候,会将对象的内存地址传给引用的对象,以进行存储。。。

           另外,如果你创建的对象,需要自己去读取操作数据,就需要通过new的方式,可以进行初始化,如果是接收其他地方的

    传值,可以不通过new的方式,创建对象。

  • 相关阅读:
    电商项目(上)
    Java开发快速上手
    iOS 总结网页常用的东西
    osstatus -9801 workerman websocket 小程序不带端口
    ListView+EditText使用遇到的坑
    关于微信浏览器不支持offset()的兼容性处理
    关于TS返回 Can't use function return value in write context 问题
    tableView刷新中的问题
    解决 ecshop 搜索特殊字符关键字(如:*,+,/)导致搜索结果乱码问题
    新用户注册用户名可以被修改导致其他平台出现相关问题
  • 原文地址:https://www.cnblogs.com/cherishforchen/p/10875841.html
Copyright © 2011-2022 走看看