导航:首页 > 编程语言 > java字符串null

java字符串null

发布时间:2022-09-07 00:28:53

java中String的null问题

这个有什么不好理解的
s + " " + s == null 这个优先级你没搞清楚。比较运算符优先级低,比较运算符左边的结果是"null null"字符串右边是null。当然不相等了
我猜你可能想要的是System.out.println(s + " " + (s == null));这样的。结果是null true

② java中,字符串String类型的""和null值的区别,谢谢!

String str1 = null; str引用为空

String str2 = ""; str引用一个空串

也就是null没有分配空间,""分配了空间,因此str1还不是一个实例化的对象,而str2已经实例化。

注意因为null不是对象,""是对象。所以比较的时候必须是 if(str1==null){...}和if(str2.equals("")){...}。

对象用equals比较,null用等号比较。因此,如果str1=null;下面的写法错误:
if(str1.equals("")||str1==null){//如果str1没有值,则....
//。。。。
}
正确的写法是 if(str1==null||str1.equals("")){ //先判断是不是对象,如果是,再判断是不是空字符串
//...
}
打个比方:一个空玻璃杯,你不能说它里面什么都没有,因为里面有空气,当然也可以把它弄成真空,null与" "的区别就象真空与空气一样。

③ java字符串录入数组后显示null

原因在于你最后for循环输出中i<length里的length取值有问题。你这段程序中,length取的是文件的大小,long length = file.length()返回的是当前文件的所有字符的数量。假如你的文件里的内容是:

第一行:a

第二行:bc

那么此时file.length()是多少呢?其实它是'a'、' '、'b'、'c'、' '五个字符组成,所以此时length=5,然而你读取文件的时候,你用的是readline(),所以会读到两行数据,而你的预期结果也应该是arr数组中有两个字符串。

所有数据读取完后,又由于你arr数组的长度取的是leagth也就是5,此时arr数组的arr[0]="a",arr[1]="bc",arr[2]=null,arr[3]=null,arr[4]=null。所以你最后循环输出arr数组时,后面几个值就是null。

综上,该问题的根本原因在于arr数组长度的定义有误。因为你提前并不能知道文件有多少行,所以你无法确认arr数组到底该设置多少,你就想用file.length()来定义,但file.length()往往是远大于文件行数的。

解决这个问题,可以利用java里的集合List,List在定义的时候不需要声明其长度,最大长度应该是Integer的最大值,使用List的子类ArrayList可以确保顺序无误,将代码修改为:

④ java 字符串为null 如何判断

定义 String str;

判断字符串是否空涉及两个层次:

1、是首先判断字符串变量的引用是否为空,即空对象的概念,用null来判断,可以用if(str==null) 判断 str是否为空;(注意不能用equals(null),在参数为null情况下,返回值永远是false);

2、是在不为空对象的情况下,在判断字符串对象是否为空串,即长度为0.用length()==0。 关键是搞清楚字符串对象为空和空字符串有区别。

拓展内容

Java空字符串与null的区别:

1、类型
null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;
""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;

2、内存分配
String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;
String str = ""; 表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;

在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap)。

如下:

String str = new String("abc") ;

⑤ Java空字符串与null的区别和判断字符串是否为空的方法

一、Java空字符串与null的区别:
1、类型
null表示的是一个对象的值,而并不是一个字符串。例如声明一个对象的引用,String a = null ;
""表示的是一个空字符串,也就是说它的长度为0。例如声明一个字符串String str = "" ;
2、内存分配
String str = null ; 表示声明一个字符串对象的引用,但指向为null,也就是说还没有指向任何的内存空间;
String str = ""; 表示声明一个字符串类型的引用,其值为""空字符串,这个str引用指向的是空字符串的内存空间;
在java中变量和引用变量是存在栈中(stack),而对象(new产生的)都是存放在堆中(heap):
就如下:
String str = new String("abc") ;
ps:=左边的是存放在栈中(stack),=右边是存放在堆中(heap)。
二、判断字符串是否为空的方法
String str = null;
if(str.equals("") || str= == null){//会抛出异常
System.out.println("成功");
}

⑥ java判断字符串是否为空

字符串为空有两种情况:1、""2、null
Stringstring="";

//方法一为""返回true负责返回false此处返回true
System.out.println(string.isEmpty());

//方法二为""返回true负责返回false此处返回true
System.out.println(string.equals(""));

//方法三为null返回true负责返回false此处返回false
System.out.println(string==null);

⑦ java 字符串初始化=“”和=null的区别

null和""的区别
问题一:
null和""的区别
Strings=null;
string.trim()就会抛出为空的exception
Strings="";
string.trim()就不会抛,为什么?
答:
NULL代表声明了一个空对象,根本就不是一个字符串。
""代表声明了一个对象实例,这个对象实例的值是一个长度为0的空字符串。


NULL代表声明了一个空对象,对空对象做任何操作都不行的,除了=和==
""是一个字符串了,只是这个字符串里面没有内容了


Strings=null;只是定义了一个句柄,也就是说你有了个引用,但是这个引用未指向任何内存空间
Strings="";这个引用已经指向了一块是空字符串的内存空间,是一个实际的东东了,所以你可以对它操作,而不用担心什么了


你说数字0和没有是不是一种概念啊??道理一样的


而且,null可以赋值给任何对象.""就不行了.


这里""和NULL绝对是两个概念
""代表一个字符串存在,它的值就是“”
NULL代表字符串根本没有实际的值,你并不知道它是什么。。。


哦,我明白了,意思就是Stringstring=null跟Stringstring;是一回事儿


null是空对象""是空字符串
Strings=null;//null是未分配堆内存空间
Stringa;//分配了一个内存空间,没存入任何对象
Stringa="";//分配了一个内存空间,存了一个字符串对象

⑧ Java中的字符串被赋值null和""有区别么

两者是有区别的:
堆栈中:假设声明String
s1

null;String
s2

“”;
其实上栈中会有存放s1,但是堆中没有产生数据;但是对于第二条语句,不仅栈中有s2,堆中也会有“”(空字符串,假如以前存在的话,s2会直接指向,假如没有,就会新建一个);
方法引用:s1为null,不能调用String的任何方法,否则会报NullPointerException异常;而“”则可以调用String的任何方法,如字符串的拼接或者是求长度等。

⑨ java 空字符串与null区别

做成员变量(字段/属性/类变量)时,如果只写String str;那么是默认赋值为null的。

做局部变量(方法里的变量)时,如果只写String str;是不会默认赋值null的,这里仅声明了一个str变量,在栈内存中有定义,但没有任何值,null其实也是一种值。此时任何调用str的操作,编译时就均会报错,是error,不是异常。null的话,你屏幕输出(toString方法)的结果为字符串null,但其它调用str的操作,编译可通过,运行时会空指针异常,此时是异常。

String str = ""; // 这个跟"abc"、"中国",本质上这都一样,只是空串,长度为0罢了
""是空字符串,但是也是字符串,没有什么东西。
而null是空的意思,什么都没有,没有地址。

⑩ java中做字符串非空判断,为什么要同时判断字符串不为null和不等于空串

对于null而言。如果一个字符串为null,例如String a = null; 那么此时,调用字符串对象a的方法,例如a.length(); 就会报空指针异常,即NullPointerException。如果这个异常没有被catch住的话,a.length();后面的代码就都不会被执行了。同时,如果这个程序是服务器程序,那么还会出现500这种属于比较严重的问题。所以,在使用字符串对象前要先判断一下其不为null。
不等于空串这个就是根据具体业务而定了,空串也就是字符串长度为0。那么这种字符串在很多时候是没什么意义的。如果一个字符串是空串,那么就可以不执行后面的业务逻辑了(视具体业务而定)。所以这种情况也需要判断。

阅读全文

与java字符串null相关的资料

热点内容
android伸缩控件 浏览:851
androidm3u8缓存 浏览:234
imphp开源知乎 浏览:706
清除网络通配符dos命令 浏览:837
鸿蒙系统怎么快速换回安卓 浏览:712
pdf绿色虚拟打印机 浏览:213
androidtab框架 浏览:147
java转php的时间戳 浏览:639
编译libstdc依赖 浏览:659
清算法人与原法人的区别 浏览:410
家庭装修下载什么app软件 浏览:575
美食博主用什么app拍视频 浏览:817
ipone手机如何加密微信 浏览:357
自来水加密阀阀帽 浏览:438
华为交换机dhcp配置命令 浏览:319
androidbitmap缩小 浏览:275
单片机串口控制灯 浏览:88
大讯云服务器安装视频 浏览:788
华为算法领先世界 浏览:658
linux路由重启 浏览:570