String s;和String s=null;区别

区别是:String s ;该语句表示只是声明了一个引用变量,但是并没有初始化引用,所以对变量s的任何操作(除了初始化赋值外) 都将引发异常。String s=null; 表示未申请任何内存资源,即些语句表示声明了一个引用变量并初始化引用,但是该引用没有指向任何对象。

String s;和String s=null;区别-Worktile社区

String s ;该语句表示只是声明了一个引用变量,但是并没有初始化引用,所以对变量s的任何操作(除了初始化赋值外) 都将引发异常。

String s=null; 表示未申请任何内存资源,即些语句表示声明了一个引用变量并初始化引用,但是该引用没有指向任何对象.但可以把它作为参数传递或其它使用,但是不能调用它作为对象的方法。

“”是一个空字符串,即String类的对象具有0个字符。 null表示缺少对对象的引用。

当将null引用附加到字符串时,null引用将转换为值为”null”的String。因此,如果打算附加两个String,则应确保它们都不是null(假设您不希望输出包含”null”字符串)。

但是,使用StringBuilder是连接String的优选方法(尽管在遇到String串联运算符+时,编译器仍然可以进行此优化):

String original =”hello”;

StringBuilder rev = new StringBuilder();

for (int i = original.length() – 1; i >= 0; i–) {

    rev.append (original.charAt(i));

}

System.out.println(“Reversal:” + rev.toString());

null表示变量根本没有指向任何对象。 “”是包含零个字符的String对象的表示。

String s = null; // no refrences to it at all

String s1 =””;

s.trim()// NullPointerException

s1.trim()// will give””

基本上,如果任何字符串为空,我们都使用””,因此对其进行任何操作,即对其调用方法将不会产生NPE。

虽然null是关键字,但如果对其执行任何操作,则将赋予NPE。完全没有引用。

延伸阅读:

什么是String?

string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。

文章标题:String s;和String s=null;区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37856

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编的头像小编
上一篇 2023年2月12日 下午4:55
下一篇 2023年2月12日 下午4:57

相关推荐

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部