Java 3

[Java] equals()와 hashCode() 메서드 알아보기

equals와 hashCode란 무엇인가?자바의 부모 객체 Object 클래스 위에는 equals()와 hashCode() 메서드가 선언되어 있다. 1. equals()란?★ 동일성(equality), 동등성(identity) 동일한 객체가 메모리 상에서 띄워져 있는 경우는 서로 다른 메모리에 있으므로 동일한 객체가 아니다. 하지만 같은 값을 지니므로 equals 메서드를 사용해 동등성을 나타내주는 것이다. 값으로 객체를 비교하도록 equals 메서드를 오버라이딩하는 것이다.여기서 의미하는 동일성(equality)과 동등성(identity)은 다른 개념이다. 동일한 값을 갖는 문자열을 2개 생성했을 때, 동등성을 비교하는 equals 메서드를 호출하면 true가 나오지만, 동일성을 비교하면 서로 다른 메..

Java 2024.05.15

[Java] Call by value, Call by reference 차이

자바의 변수에는 두 가지 종류가 있다.기본 타입 변수(Primitive type) : int, double, boolean 등과 같은 기본 데이터 유형, 실제 값(value)을 저장한다.참조 타입 변수(Reference type) : 클래스, 인터페이스, 배열 등의 참조 타입을 가지는 변수, 객체가 저장된 실제 메모리 위치를 가리키는 값이 저장된다. 메서드를 호출할 때 파라미터를 전달하는 방법에는 두 가지가 있다.Call by Value (값에 의한 호출)Call by Reference (참조에 의한 호출)자바에서 Call by Reference는 없다. Call by Value만 존재한다. Call by Reference (참조에 의한 호출)메서드 호출 시에 파라미터로 변수를 직접 전달하는 데, 메서드..

Java 2024.05.10

[Java] JVM 메모리 구조 및 실행 단계

Java 언어를 잘 이해하기 위해서 JVM(Java Virtual Machine)의 구조 파악이 선행되어야 한다. 자바 파일을 실행하기 위해 JVM이 어떻게 실행되는지 간략하게 알아보자. 위 그림을 순서대로 정리하면 다음과 같다. 소스코드(.java)를 작성한다.컴파일러(Compiler)가 자바 소스코드를 이용하여 클래스 파일을 생성한다. javac 명령어로 컴파일을 진행한다.컴파일된 클래스 파일(.class) 파일은 JVM이 인식할 수 있는 바이트 코드 파일이다.JVM은 클래스 파일의 바이트 코드를 해석하여 바이너리 코드로 변환한다.프로그램이 실행된다. ✔️ 바이트 코드(Byte Code)란?가상 컴퓨터(Virtual Machine)에서 돌아가는 실행 프로그램을 위한 이진 표현법   이제 위 그림에서 ..

Java 2024.05.09