String s1 ; String s2=null ; String s3=”” ; String s4=new String(“”) ; 的区别。
2015-10-13 17:43
316 查看
Java中String s1 ; String s2=null ; String s3=”” ; String s4=new String(“”) ; 的区别。
======================================================================
当声明为String s1时
声明一个字符串对象,分配了一个内存空间,没有进行初始化,没有存入任何对象。
成员变量:
JAVA为安全原因不允许一个悬挂引用,没有赋值的引用地址一律自动赋值为NULL,以防止访问到任意内存。
局部变量:
局部变量是不会自动初始化的,必须显示地赋初始值。如果没有赋初始值,在用System.out.println(s1);时会报错。
----------------------------------------------------------------------------------------------------------------------
当声明为String s2 = null时
声明一个字符串对象,分配了一个内存空间,进行初始化,存入了一个空对象,值为空。
NULL代表声明了一个空对象,根本就不是一个字符串。除了=和==,对空对象做任何操作都不行的,运行时会报异常。
----------------------------------------------------------------------------------------------------------------------
当声明为String s3 = “” 时
声明一个字符串对象,分配了一个内存空间,初始化,存了一个字符串对象,值为””。
是在字符串常量池(栈中)存入了一个字符串常量,并用引用指向他。
当声明为String s3 = new String(“” ) 时
声明一个字符串对象,分配了一个内存空间,初始化,存了一个字符串对象
是在堆中创建一个字符串对象,并把引用放在栈中指向他的首地址。
评论(0)| 引用此答案| 举报 (2011-08-30
14:07)
======================================================================
当声明为String s1时
声明一个字符串对象,分配了一个内存空间,没有进行初始化,没有存入任何对象。
成员变量:
JAVA为安全原因不允许一个悬挂引用,没有赋值的引用地址一律自动赋值为NULL,以防止访问到任意内存。
局部变量:
局部变量是不会自动初始化的,必须显示地赋初始值。如果没有赋初始值,在用System.out.println(s1);时会报错。
----------------------------------------------------------------------------------------------------------------------
当声明为String s2 = null时
声明一个字符串对象,分配了一个内存空间,进行初始化,存入了一个空对象,值为空。
NULL代表声明了一个空对象,根本就不是一个字符串。除了=和==,对空对象做任何操作都不行的,运行时会报异常。
----------------------------------------------------------------------------------------------------------------------
当声明为String s3 = “” 时
声明一个字符串对象,分配了一个内存空间,初始化,存了一个字符串对象,值为””。
是在字符串常量池(栈中)存入了一个字符串常量,并用引用指向他。
当声明为String s3 = new String(“” ) 时
声明一个字符串对象,分配了一个内存空间,初始化,存了一个字符串对象
是在堆中创建一个字符串对象,并把引用放在栈中指向他的首地址。
评论(0)| 引用此答案| 举报 (2011-08-30
14:07)
相关文章推荐
- 网页在移动设备上实现自动缩放
- Grunt安装、配置及应用
- Xcode git commit失败 unable to auto-detect email address
- 16.1 目标跟踪的项目
- Knockout应用开发指南 第七章:Mapping插件
- 参数的传递方式、变量的作用域、变量的生存期、内部函数和外部函数、编译预处理命令、条件编译
- Count and Say
- zabbix自带的模板监控mysql
- NSNotificationCenter通知
- 技术支持
- android oom分析
- MTK学习优秀的blog
- G-FZU2022- 犯罪嫌疑人
- DBCC SHOW_STATISTICS 查看统计信息
- struts保存对象date报String类型不匹配
- CCScroview用法
- 第六周-项目3-括号的匹配
- 有价值的参考网页和博客
- 20151011(1013)项目进度管理和项目成本管理
- MSSQL中进行SQL除法运算结果为小数却显示0的解决方法