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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 帅哥哥 高级黑马   /  2014-5-21 01:29  /  2598 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 帅哥哥 于 2014-5-21 11:09 编辑

晚上睡下就知道胡思乱想……
想着想着就被一问题搞得纠结了……
main函数的参数JVM默认会给一个长度wei零的字符串数组,那args等于null吗?何解~
引申:String[] s =""和String s=null是一样的嘛吗?
再引申:其它类型数组是一样的情况吗?

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

8 个回复

倒序浏览
args是主函数的参数:
关于主函数的参数就是虚拟机jvm传递的参数,引用数据类型只能有两个值,或者是是数组实体,或者是null。jvm在调用主函数时,传入的是new String[0]。String[] s =""和String s=null是不一样的,String s=null指的是该引用没有指向对象实体,而String[] s =""是长度为0的空字符串。所以args就是String[] s ="";而不是null。
回复 使用道具 举报
好高端!
回复 使用道具 举报
不一样的吧,可以从内存理解,数组长度为0,表示该数组的内存空间大小为0,而null内存还没有给其分配空间吧!
回复 使用道具 举报
String[] s =""是不合法的,不能这样写
String[]是数组对象
String是字符串对象
这是两种类,看起来一样,但是没法等同的

下面是String s = ""和String s = null的对比,结果写在语句后了
  1. public class StringNull {

  2.         public static void main(String[] args) {
  3.                 String s1 = "";
  4.                 String s2 = null;
  5.                 String s3 = new String();
  6.                 System.out.println(s1.equals(""));//true
  7.                 System.out.println(s1.equals(null));//false
  8.                 System.out.println(s1.equals(s3));//true
  9.                 //System.out.println(s2.equals(null));//空指针异常
  10.         }

  11. }
复制代码

可见,""和null是不同的,null表示内存中还不存在这个对象;而""已经分配内存空间了,但还没有内容,与new String()的结果是相同的,即s1.equals(s3)是真的。

评分

参与人数 1技术分 +1 收起 理由
Silent_memory + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
null是一个空对象,不是一个字符串;“”表示一个对象实例,它的值是一个长度为0的字符串。
回复 使用道具 举报
本帖最后由 明镜菩提 于 2014-5-21 09:46 编辑

这个肯定不是一样的。
string s=null;
不在内存中开辟空间
string s="";
在内存中开辟空间,但空间中没有值(""也是一个字符串)
NULL代表声明了一个空对象,根本就不是一个字符串。
""代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。
回复 使用道具 举报
屈_zi 发表于 2014-5-21 09:33
String[] s =""是不合法的,不能这样写
String[]是数组对象
String是字符串对象

我想我应该是明白了,
1.关于main的参数 args ,JVM默认给它的是一个长度为0的数组,虽然没有内容,但是有地址,这和给它null是不一样的,给null的话没有分配内存的,对不对
2. String s = "" 和 String s  = new String() 是一样的,这和 String 这个封装类的具体内容有关系的,反正是建立对象了,堆里有地址是这对象的了,对不对
谢谢层主!!!
回复 使用道具 举报
lvc 中级黑马 2014-5-21 18:21:46
9#
学习学习
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马