A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑旋风唔够威 中级黑马   /  2016-7-7 11:49  /  1042 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

string初始化值是“”,但为什么新建对象的string类型的变量的初始化值是null呢

5 个回复

倒序浏览
本帖最后由 ImKing 于 2016-7-7 12:41 编辑

(1)首先你应该明白什么是局部变量(方法声明、方法体内部)、成员变量(对象)的相关概念
(2)局部变量需要手动初始化,下面两种方式都可以完成局部变量(str)的初始化,进行输出等操作时,才不会产生异常
  1. String str = "";
  2. String str = null;
复制代码

(3)对象中的有String修饰的属性,由于类属于引用类型,字符串(引用类型)的默认初始化值为null
(4)希望有所帮助 {:2_36:}
回复 使用道具 举报
ImKing 发表于 2016-7-7 12:39
(1)首先你应该明白什么是局部变量(方法声明、方法体内部)、成员变量(对象)的相关概念
(2)局部变量 ...

原来string是类来的。所以属于引用类型。懂了。谢谢啊
回复 使用道具 举报
补充:
(1)如果在定义变量后没有给它们赋初始值,那么java会给于一个默认的初始化值,但只有类的成员变量才被初始化(与对象中的字符串,默认初始化为null对应),而局部变量不会被初始化。
(2)如果没有被初始化的局部变量被操作,java在编译器就会给予错误警告,
(3)如果没有被赋予初值的局部变量,一直没被操作,则编译通过,java不会给予错误警告。

(4)基本数据类型 8 种
byte、short、int、long、float、double、boolean、char
(5)引用数据类型:
数组 类 接口 枚举
回复 使用道具 举报
string是一个对象
回复 使用道具 举报
ImKing 发表于 2016-7-7 15:03
补充:
(1)如果在定义变量后没有给它们赋初始值,那么java会给于一个默认的初始化值,但只有类的成员变量 ...

又复习一次,感谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马