JAVA 판단 공 값 방법 원리 분석

2545 단어 JAVA판 가름비다
자바 빈 문자열 과 null 의 차이 점:
1.형식 null 은 문자열 이 아 닌 대상 의 값 을 표시 합 니 다.예 를 들 어 대상 의 인용 을 설명 합 니 다.String a=null;"빈 문자열 을 표시 합 니 다.즉,길이 가 0 이라는 것 입 니 다.예 를 들 어 문자열 String str="를 설명 합 니 다.
2.메모리 할당 String str=null;문자열 대상 을 설명 하 는 인용 을 표시 하지만 null 로 가리 키 고 있 습 니 다.즉,메모리 공간 을 가리 키 지 않 았 습 니 다.String str = ""; 문자열 형식 을 설명 하 는 인용 을 표시 합 니 다.값 은'빈 문자열'입 니 다.이 str 참조 가 가리 키 는 것 은 빈 문자열 의 메모리 공간 입 니 다.
자바 에서 변수 와 인용 변 수 는 스 택 에 존재 합 니 다(stack).대상(new 에서 발생 하 는)은 모두 더미 에 저 장 됩 니 다(hep).
다음 과 같다.
String str = new String("abc") ;
ps:=왼쪽 은 스 택 에 저 장 됩 니 다(stack).=오른쪽 은 더미 에 저 장 됩 니 다(heap).
3.예시 프로그램:

public class String_Demo01 {

  /**
   * @param args
   */
  public static void main(String[] args) {    
    String str1 = new String() ;
    String str2 = null ;
    String str3 = "" ;
    System.out.println(str1==str2);        //       ,  false
    System.out.println(str1.equals(str2));     //    ,  false
    System.out.println(str2==str3);        //       ,  false
    System.out.println(str3.equals(str2));     //    ,  false
    System.out.println(str1==str3);        //       ,  false
    System.out.println(str1.equals(str3));     //    ,  true
  }

}
위의 절 차 를 통 해 다음 과 같은 결론 을 얻 을 수 있다.
  • 문자열 대상 은 null 의 값 과 같 지 않 고 메모리 주소 도 같 지 않 습 니 다.
  • 빈 문자열 대상 은 null 의 값 과 같 지 않 고 메모리 주소 도 같 지 않 습 니 다.
  • new String()문자열 대상 을 만 드 는 기본 값 은""(String 형식 구성원 변수의 초기 값 은 null)입 니 다.
  • 다음은 자바 가 문자열 이 비어 있 는 지 여 부 를 판단 하 는 네 가지 방법 입 니 다.
    방법 1:가장 많은 사람들 이 사용 하 는 방법 은 직관 적 이 고 편리 하지만 효율 이 낮다.
    if(s == null || s.equals("")); 방법 2:문자열 의 길 이 를 비교 하고 효율 이 높 은 것 이 제 가 아 는 가장 좋 은 방법 입 니 다.
    if(s == null || s.length() == 0); 방법 3:자바 SE 6.0 에서 야 제공 하 는 방법,효율 과 방법 2 는 거의 같 지만 호환성 을 고려 하여 사용 방법 2 를 추천 합 니 다.
    if(s == null || s.isEmpty());
    방법 4:이것 은 비교적 직관 적 이 고 간편 한 방법 이 며 효율 도 매우 높 으 며 방법 2,3 의 효율 과 차이 가 많 지 않다.
    if (s == null || s == "");
    메모:s==null 은 필요 합 니 다.
    String 형식 이 null 이면 equals(String)나 length()등 동작 을 하면 java.lang.NullPointer Exception 을 던 집 니 다.
    또한 s==null 의 순 서 는 앞 에 나타 나 야 합 니 다.그렇지 않 으 면 자바.lang.NullPointer Exception 을 던 집 니 다.
    다음 자바 코드:
    
      String str = null;
      if(str.equals("") || str == null){//     
           System.out.println("success");
      } 
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기