728x90
728x90
참조형 변수는 하나의 인스턴스를 공유할 수 있다참조형 변수는 객체의 주소를 참조하기 때문에 여러 변수들이 동일한 객체를 공유할 수 있습니다.이로 인해 하나의 변수에서 객체의 상태를 변경하면 모든 참조 변수에 영향을 미칠 수 있습니다.이러한 상태 변경이 예기치 않게 발생할 때 사이드 이펙트라고 부릅니다.Address a = new Address("서울");Address b = a; System.out.println(a);System.out.println(b);b.setValue("부산"); // 값을 바꿨기 때문에System.out.println(a); // 사이드 이펙트 발생!System.out.println(b); 위 코드를 보면 `b = a;` 로 인해 `a`와 `b`는 동일한 주소값을 가진다. 그렇..
📍 개요◾ 클래스 변수와 인스턴스 변수의 개념과 역할을 학습해보는 시간을 가졌습니다.◾ 학급 성적 관리 프로그램 예제를 통해 멤버 변수의 실질적인 사용 방법을 실습했습니다.1️⃣ 멤버 변수 - 종류📁 클래스 변수✔️ 메소드 영역 저장클래스 변수는 같은 클래스에서 만들어진 모든 객체라면 이 변수의 값을 공유합니다.모든 객체가 데이터를 공유하므로, 클래스의 어떤 객체에서 이 데이터를 수정하면다른 객체에서도 같은 변경이 반영됩니다.❗클래스 변수는 무조건 static을 사용하여 선언해야 하며,이로 인해 클래스의 모든 인스턴스가 동일한 값을 공유하게 됩니다.📁 인스턴스 변수 ✔️ 힙 영역 저장 인스턴스 변수는 클래스의 인스턴스(=객체)가 생성될 때마다 각각의 인스턴스에 속하는 변수를 말합니다.객체마다 독립적..
📍 개요◾ 조건문과 반복문의 각 종류와 동작 원리 대한 내용을 실습하는 시간을 가졌습니다.안녕하세요! 이번 포스팅에서는 자바에서조건문과 반복문에 대해 살펴보겠습니다.내용 설명 전, 몇 가지의 예제는 Main에서인자값을 전달 받는 형태로 되어있어Intellij에서 args를 설정하는 방법을 말씀드리겠습니다.📌 인텔리제이 Argument 설정법[방법1] 상단 메뉴 Run > Edit Configurations[방법2] More Actions > Edit(아래 이미지 참고)체크된 부분에 값을 입력해주시면 됩니다!⁉️왜 이러한 설정을 해줄까요?아규먼트를 설정해두면, 매번 프로그램을 실행할 때마다 인자를 힘들게 수작업으로 입력할 필요 없이 자동으로 적용되므로, 반복적인 작업이 편리해지기 때문입니다.1️⃣ if..
📍 개요 ◾ 연산자의 우선순위와 종류를 파악하고 실무에서 자주 쓰이는 주요 내용 위주로 실습해보는 시간을 가졌습니다. ⭐ 연산의 우선순위1) 단항, 이항, 삼항 연산자 순으로 우선순위를 가진다. 2) 산술, 비교, 논리, 대입 연산자 순으로 우선순위를 가진다. 3) 단항과 대입 연산자를 제외한 모든 연산의 방향은 왼쪽에서 오른쪽(->)이다. 4) 복잡한 연산식에는 괄호()를 사용해서 우선순위를 정해준다. 연산자 연산 방향 우선 순위 증감(++, --), 부호(+, -), 비트(~), 논리(!) ← 높음 산술(*, /, %) → 산술(+, -) → 쉬프트(, >>>) → 비교(, =) → 비교(==, !=) → 논리(&) → 논리(^) → 논리(|) → 논리(&&) → 논리(||) → 조건(?:) → 대입..
📍 개요◾ 기본 타입 변수와 참조 타입 변수에 대해 학습하고 차이를 비교해보는 시간을 가졌습니다.📌 기본 타입과 참조 타입 변수 차이아래에서부터는 변수 타입별로 메모리 영역이 어떻게 관리되는지에 대해 살펴볼텐데요. ⭐ 이해가 잘 되지 않으신다면, 이것만은 꼭 기억해두셨으면 좋겠습니다!자바는 항상 변수의 값을 복사해서 대입!기본형이면 변수에 들어있는 실제 사용하는 값을 복사해서 대입하고,참조형이면 변수에 들어 있는 참조값을 복사해서 대입합니다. 1️⃣ 기본타입 변수객체 없음, 스택 메모리만 사용2️⃣ 참조타입 변수객체 있음, 스택 메모리, 힙 메모리 둘 다 사용▪️ 힙 메모리: 객체 저장(new 키워드), 리터럴 값 저장▪️ 스택 메모리: 지역 변수(기본 타입 변수와 참조 변수)를 저장, 힙 메모리에 ..