25-2-27 자바 디버깅

김용진·2025년 2월 27일
0

Coffe_Time

목록 보기
1/3
post-thumbnail

디버깅 관하여 잠깐 글 끄적..

package ch05.sec05;

public class EqualsExample {
	public static void main(String[] args) {
		String strVar1 = "홍길동";
		String strVar2 = "홍길동";

		if(strVar1 == strVar2) {
			System.out.println("strVar1과 strVar2는 참조가 같음");
		} else {
			System.out.println("strVar1과 strVar2는 참조가 다름");
		}

		if(strVar1.equals(strVar2)) {
			System.out.println("strVar1과 strVar2는 문자열이 같음");
		}
			
		String strVar3 = new String("홍길동");
		String strVar4 = new String("홍길동");

		if(strVar3 == strVar4) {
			System.out.println("strVar3과 strVar4는 참조가 같음");
		} else {
			System.out.println("strVar3과 strVar4는 참조가 다름");
		}

		if(strVar3.equals(strVar4)) {
			System.out.println("strVar3과 strVar4는 문자열이 같음");
		}
	}
}

예시 코딩인데 String의 참조 변수(strVar1, strVar2)의 스택(stack)을 확인하려고 한다.

원하는 코딩줄에 우클릭을 하게되면 Toggle Breakpoint를 잡아 줄 수 있다.

F11키 혹은 run에 Debug를 누르게 되면해당 줄까지 run을 하게 된다.

run한 모습, 8번줄에 하이라이트가 들어가 있다.

우측을 확인해보면 참조 변수(strVar1, strVar2)의 id가 확인 가능하다, String을 새롭게 지정하지 않았기에 id값(Stack 주소)이 22로 같다. 이런다음 F5(Run-Step into), F6(Run - Stepver)을 누르면 다음 줄을 진행하는 방식이다.


id값이 22로 같기 때문에 참조는 같다고 나오는중

F6을 두번 눌러 9번까지 진행하고 하여 콘솔창에 줄이 출력된다.


String 클래스에 equals() 메서드가 현재 어디까지 진행 되어있는지 보여주고있다.

F5를 누르게 되면 클래스에 메서드까지 들어가서 현재 어떤 코드가 진행되는지까지 보여주기도 한다.

여기서 메서드 진행을 보지않고 넘어가려면 F7(Run - Step Return)을 써서 빠져나오면 되고, 더이상 진행을 보지 않으려면 중지를 하거나, F8(Run - Resume)을 해서 나머지 코드를 전부 Run해주자.

profile
메모리폼

0개의 댓글