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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java空字符串与null的区别和判断字符串是不是为空的方法相关的知识,希望对你有一定的参考价值。

虽然都是没有信息,但是null代表堆内存中根本没有这个东西,而空字符串就完全不同了,空字符串也是字符串,他是有内存空间的


判断字符串是否为空

/**
 * 判断字符串是否为空
 * @param str 字符串
 * @return 是否为空
 */
public static boolean isEmptyString(String str) 
    return str == null || str.trim().length() == 0;

参考技术A 虽然都是没有信息,但是null代表堆内存中根本没有这个东西,而空字符串就完全不同了,空字符串也是字符串,他是有内存空间的 参考技术B java中空字符串是指字符串长度为0,而null则是没有分配内存空间的表现,在判断字符串之前书写顺序为str!=null || str !=""(str.length==0),特别注意的是str.toString()在str=null时会报错,一般处理方法为先判断是否为空,然后再做此处理,或者直接str+""强转。 参考技术C 一、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-String类中的各字符串判断(包括" "和null的区别)

package com.day7.one;

public class DemoString1 {

  /**
  * @param args
  * 1.boolean equals(Object obj) 比较字符串的内容是否相同,区分大小写
  * 2.boolean equalsIgnoreCase(String str) 比较字符串内容是否相同,不区分大小写
  * 3.boolean contains(String str) 判断大字符串中是否包含小字符串
  * 4.boolean startWith(String str) 判断字符串中是否以某个字符串开头的
  * 5.boolean endsWith(String str) 判断字符串中是否以某个字符串结尾的
  * 6.boolean isEmpty() 判断字符串是否为空
  */
  public static void main(String[] args) {
    String s1="KobeBryant";
    String s2="";
    String s3=null;
    System.out.println(s1.isEmpty()); //false
    System.out.println(s2.isEmpty()); //true
    System.out.println(s3.isEmpty()); //异常
  /*
  * ""和null的区别
  * ""是字符串常量,同时也是一个String类的对象,既然是对象当然可以调用String类中的方法
  * null是空常量,不能调用任何的方法,否则会出现空指针异常,null可以给任意的引用数据类型赋值
  * */
  }

}






















以上是关于Java空字符串与null的区别和判断字符串是不是为空的方法的主要内容,如果未能解决你的问题,请参考以下文章

java 字符串为null 如何判断

【SQL】表中的空字符串与NULL中的区别何在

hive的空字符串与null

java中的nul与空字符串与零的区别l

(null) <null> 与空 及其字符串的判断

SQLSERVER NULL和空字符串的区别 使用NULL是不是节省空间