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))로 바꾸시면 되겠습니다.