아하
검색 이미지
생활꿀팁 이미지
생활꿀팁생활
생활꿀팁 이미지
생활꿀팁생활
파란숲제비158
파란숲제비15819.04.10

Java 프로그래밍 질문입니다

java awt 프로그래밍 중 문제가 발생하여 질문드립니다.

원인이 되는 부분만 추려보자면

ta = new TextArea("0");

(중간부분에도 코드가 있습니다.)

String a=ta.getText();

System.out.println(a);

if(a=="0") {

System.out.println("true");

a=K;}

이런 부분에서 문제가 발생하는데 a를 출력하는 부분에서 0이 나옴에도 불구하고 밑의 true를 출력하는 코드가 실행이 되지 않네요 원인이 무엇일까요

55글자 더 채워주세요.
답변의 개수
1개의 답변이 있어요!
  • 자바의 자료형은 크게 기본형과 참조형으로 나눌 수 있습니다.

    자바는 기본형이 boolean char byte short int long float double로 8가지가 끝입니다.

    기본형은 변수 자체에 값이 있는 것이고, 참조형은 값은 다른 데 있는데 그 값이 있는 곳의 주소를 저장합니다.

    문자열(String)은 참조형입니다. 변수에 값이 아니라 주소가 저장됩니다. ==은 값이 아닌 주소를 비교합니다.

    ta.getText()의 값이 "0"이라도 그 값이 있는 주소가 다르기 때문에 ==으로 비교하면 항상 다르다고 합니다.

    문자열을 비교할 때는 str1 == str2가 아니라, str1.equals(str2)로 해야 합니다.

    if(a=="0") 대신에 if("0".equals(a))로 바꾸시면 되겠습니다.