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的方式,创建对象。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在C语言中,创建一个结构体变量时,需要初始化它的结构体类型是因为结构体类型定义了结构体变量的成员列表和类型。结构体变量的成员需要在内存中分配相应的存储空间,以便存储数据。如果没有初始化结构体类型,编译器无法知道该结构体变量的成员应该被分配多少存储空间,这会导致无法正确访问和使用结构体变量的成员。因此,为了确保结构体变量能够正确地分配存储空间并使用其成员,需要初始化结构体类型。 [3<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [c++中的结构体:声明 定义 初始化](https://blog.csdn.net/weixin_35886636/article/details/117146209)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [c语言结构体学习整理(结构体初始化,结构体指针)](https://blog.csdn.net/as480133937/article/details/83473208)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值