본문 바로가기

차이2

[Java] ==와 equals() 차이 == 은 스택의 값을 비교하고equals() 는 힙의 값을 비교한다.  JVM 메모리 영역은 간략하게 메소드, 힙, 스택으로 나뉜다. 스택(Stack)원시 자료형과 참조 변수(+객체주소) 저장 힙(Heap)참조 변수의 실제 데이터와 객체 저장 String s1 = "KR", s2 = "KR";System.out.println(s1 == s2); // 스택 주소 동일 동일 값을 가리키기에System.out.println(s1.equarl(s2)); // 값 자체만 비교"KR"이 힙에 먼저 생성된 후, s1 변수가 스택에 생성되면 "KR"의 주소를 저장한다.다시 나오는 "KR"은 힙에 생성되어 있는지 조회하고, 이미 있으니 스택에 s2을 생성하고 "KR" 주소를 저장한다.s1와 s2 둘 다 힙에 있는 "KR.. 2024. 7. 30.
[Java] && 와 &는 동일하지 않다. 참, 거짓으로 구분하는 연산자를 논리 연산자라고 한다.&& : 모두 true여야만 true|| : 한 개만 true여도 trueSystem.out.println(true&&true); // trueSystem.out.println(true&&false); // falseSystem.out.println(true||false); // trueSystem.out.println(false||false); // false 두 문자 쌍으로 나타내는 연산자 말고 한 개짜리도 있다. 비트로 전환해 연산하는 비트 논리 연산자 이다. & : 모두 true여야만 true| : 한 개만 true여도 true 이 두 연산자는 또 다른 차이점이 있다.한 쪽만 실행하고 결과가 나오면 반환하느냐, 끝까지 실행해 보느냐의 차이이다... 2024. 7. 29.
반응형