JAVA学习笔记_StringUtil.isEmpty_null不是null
生活随笔
收集整理的這篇文章主要介紹了
JAVA学习笔记_StringUtil.isEmpty_null不是null
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
StringUtil工具類
/*** 字符串的幫助類*/ public class StringUtil {/*** 判斷字符串是否為空* @param str* @return*/public static boolean isEmpty(String str) {if (str != null && !"".equals(str.trim())) {return false;}return true;}/*** 判斷字符串是否不為空* @param str* @return*/public static boolean isNotEmpty (String str) {if (str != null && !"".equals(str.trim())) {return true;}return false;} }問題描述: 一開始認為 str值為null 是 不應該 返回 true的
問題解決:
雖然值均為null ,但是一個是str=“null”,另一個str=null
問題總結:
在eclipse中,不帶雙引號的null,表示的是一個對象的值
帶雙引號 的null,表示的是值為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)。
總結
以上是生活随笔為你收集整理的JAVA学习笔记_StringUtil.isEmpty_null不是null的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java笔记:自己动手写javaEE框架
- 下一篇: 数论应用