当前位置: 首页 > 面试题库 >

空字符串和空字符串之间的区别

张勇
2023-03-14
问题内容

空字符串(String s = null)和空字符串(String s = "")有什么区别?

这就是我所拥有的:

String s1 = ""; //print statement does not print any thing for s1 but s1.length()=0
String s2 = null;//print statement prints "null" for s2  but s2.length() gives exception

这是什么意思?


问题答案:

String s1 ="";表示将空String值分配给s1。在这种情况下,s1.length()与相同"".length(),将按0预期产生。

String s2 =null;表示将(null)或“完全没有值”分配给s2。因此,这s2.length()与相同null.length(),它将产生一个,NullPointerException因为您无法null在Java中对变量(指针或类似物)调用方法

还有一点,声明

String s1;

实际上具有与以下功能相同的效果:

String s1 = null;

鉴于

String s1 = "";

如前所述,是另一回事。



 类似资料:
  • 问题内容: 字符串文字和字符串对象的添加有什么区别? 例如 为什么/ 不指向与相同的位置? 问题答案: 因为不是 常量表达式 ,由于和不是,因此其结果不会被插入,即创建另一个对象来表示它,因此引用比较产生。 JLS 3.10.5字符串文字 : 使用String.intern方法,对字符串常量(或更常见的是常量表达式的值(第15.28节)的字符串)进行“ interned”,以便共享唯一的实例。 J

  • 问题内容: 这是以前有关Java中的String初始化的一些问题的后续问题。 在用Java进行了一些小测试之后,我面临以下问题: 为什么我可以执行此语句 当str2一个String对象初始化为,但我不能调用方法toString()上str2?那么Java如何将空字符串对象和字符串文字串联起来? 顺便说一句,我还尝试将一个初始化为null和字符串文字的Integer连接起来,”a_literal_s

  • 问题内容: 之间有什么区别 和 问题答案: 当你使用字符串文字时,可以将字符串嵌入,但是当你使用时,你将获得一个新的字符串对象。 在此示例中,两个字符串文字均引用相同的对象: 在这里,创建了2个不同的对象,它们具有不同的引用: 通常,应尽可能使用字符串文字表示法。它更易于阅读,并且为编译器提供了优化代码的机会。

  • 问题内容: 这些声明之间有何不同? 每种情况下的内存分配如何? 问题答案: 要更正编译错误,请使用以下语句之一替换 下一节将以上陈述相互比较 字符串常量 “ MY PROFESSION”是一个常量,并存储在String池中 是不可变的,即完整的内容无法修改。 字符串的大小/长度是固定的(无法附加) 字符数组 保存String的基础数组的副本(通过)并存储在堆空间中 通过加载单个字符常量在堆栈框架中

  • 本文向大家介绍字符数组和字符串之间的区别,包括了字符数组和字符串之间的区别的使用技巧和注意事项,需要的朋友参考一下 在本文中,我们将了解字符数组和字符串之间的区别。 字符串 他们是不可变的。 一旦它们被定义,就不能被更改。 它指的是一个字符序列,表示为单个数据类型。 它包含了substring()、charAt()等内置函数。 可以使用' + '操作符将字符串追加到一起,从而形成一个新的字符串。

  • 问题内容: 我正在从事Java代码优化。我不清楚或符号之间的区别: 第2行和第3行有什么区别? 问题答案: 这种方法使用StringBuilder创建结果字符串 此方法仅调用的静态方法来获取int的String版本 依次调用