JAVA(77)
-
참조_NullPointerException
앞서 null 에 대해 학습할 때 nul 은 '참조 대상'이 없음을 의미한다고 했다. 택배 예시와 같이 참조값을 입력할 수 없거나 미루고 싶을 때 null 을 넣으면 된다고 했다. 보내는 주체 - 나 보내는 물건 - 노트북 받는 주체 - 삼촌 삼촌 주소 - null 그래서, 우리는 삼촌의 주소를 몰라도 택배 발송에 필요한 정보, 물건 등을 미리 챙겨놔도 전혀 문제가 되지 않는다. 그. 러. 나 보내는 주체 - 나 보내는 물건 - 노트북 받는 주체 - 삼촌 삼촌 주소 - null 이걸 들고 우체국 창구로 가면 어떻게 된다? 창구 : ?? 받으시는 분 주소가 없는데요? 그렇다. 못 보낸다. 창구 직원이 ??? 를 띄우며 보낼 수 없다고 한다. 보낼 주소가 없는데 보내려고 한다. 이런 상황에서 발생하는 것이 ..
2024.01.13 -
참조_갈비지 컬렉션 GC ( Garbage Collection )
public static void main(String[] args) { Data data = null; System.out.println("1. null로 초기화된 data = " + data); data = new Data(); System.out.println("2. 참조값을 할당한 data = " + data); data = null; System.out.println("3. null을 할당한 data = " + data); } 이전 글의 예시 코드 이다. 다시 한 번 찬찬히 뜯어보자. 1. null 로 참조형 변수를 초기화 했다. 2. null로 초기화된 참조형 변수 data 에 주소값을 할당 했다. 3. 다시 주소값을 nul 로 대체하였다. 2~3 번의 과정에서 new Data (); 로 생성..
2024.01.13 -
참조_NULL
NULL 이 뭐지? 참조형 변수에는 항상 참조되는 객체가 있는 주소값이 들어간다. 그.러.나. 아직 참조할 주소가 없거나, 주소를 나중에 입력하고 싶은 경우도 더러 존재한다. 예를 들어, 택배 보낼 때. 보내는 주체 - 나 보내는 물건 - 노트북 받는 주체 - 삼촌 삼촌 주소 - ? 삼촌의 주소를 몰라도 택배 배송에 필요한 정보와 행동들은 취할 수 있다. 이러한 상황에서 우리는 참조형 변수에 NULL을 넣을 수 있다. (기본형엔 null 이 안 들어가요~ 여기서 파생되는 문제도 있다는 모양이니 추후 알아봅시다아) NULL 은 참조값(주소)이 '없다' 는 뜻이다. 삼촌 주소 - NULL 예시 작성하며 이런거구나~ 해보자. public static void main(String[] args) { Data d..
2024.01.13 -
참조_변수 초기화
변수는 스코프적 관점에서 봤을 때 크게 멤버변수, 지역 변수로 나뉜다. 짚고 넘어가보자. 멤버 변수 - 클래스 바로 아래에 선언되어 클래스 어디서든 사용할 수 있는 변수 - 멤버 변수는 정적변수, 인스턴스 변수로 나뉜다.( 하지만 나중에 알아본다) 지역 변수 - 메서드나 생성자 블록 안에 선언되어 그 범위 내에서만 사용할 수 있는 변수 변수 값 초기화 멤버 변수, 지역 변수는 초기화 규칙이 다르다. .. 어떻게 다를까? 멤버 변수 - 자동 초기화 - 멤버변수는 인스턴스를 생성할 때 자동으로 초기화 된다. - 숫자 = 0 , boolean = false, 참조형 = null - 개발자가 초기값을 직접 지정할 수 있다. public class InitData { int notInitValue; // 초기화 ..
2024.01.13 -
참조_메소드
또또또또또! 질리도록 머리에 박아 넣자. 자바는 항상 변수의 값을 복사해서 대입한다. - Call By Value 동작 방식 기본형 : 변수에 있는 '값'을 복사하여 대입한다. 참조형 : 변수에 있는 '주소값'을 복사하여 대입한다. 기본형 public static void main(String[] args) { int a = 10; System.out.println("호출 전 a = " + a);// 10 changePrimitive(a); System.out.println("호출 후 a = " + a);// 10 } private static void changePrimitive(int a) { a = 5; } 함수를 호출하면서 넣은 인자 a와 메서드의 매개변수 a 는 다르다. 어떻게 다르냐? 앞서 반..
2024.01.11 -
참조_기본형과 참조형
JAVA에서 변수는 크게 기본형(primitive Type)과 참조형(Refference Type) 으로 나뉜다. 기본형 : byte, short, int, long, float, double, boolean 등 참조형 : 기본형 제외하고 전부 String이 없네? String 은 참조형으로, 사실 클래스이다. 그런데 원체 많이 사용되다 보니, 기본형처럼 사용할 수 있도록 편의를 좀 봐준다는 모양이다. 변수 대입 'JAVA 에서 값을 대입한다는 것은, 변수에 들어있는 값을 복사해서 대입하는 것이다.' 다시 한번 써보며 상기 해보자. 기본형 int a = 10; int b = a; a = 5; b = ? // 10; 1. int a 에 10을 대입하고, 2. int b에 10이 대입된 a를 대입한다. 3...
2024.01.11