Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- ArrayList
- Entity
- aop
- 정렬 알고리즘(sort algorithm)
- 99클럽
- 코딩
- 자바
- 배열
- 회고
- GIT
- Spring
- Grafana
- 코딩테스트 준비
- 메서드
- cs 공부)준비
- 면접(java
- 프로그래머스
- 이진 탐색(binary search)
- HTML
- github
- css
- 항해99
- CS
- 자료구조
- Til
- Java
- 코딩문제
- 개발자 취업
- 코딩공부
- wil
Archives
- Today
- Total
hayu's 개발 일지
99클럽 코테 스터디 19일차 TIL + 기본형과 참조형 본문
학습 키워드
- 기본형과 참조형
공부한 내용
기본형과 참조형
- 기본형(Primitive Type): int , long , double , boolean 처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 한다.
- 참조형(Reference Type): Student student1 , int[] students 와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다. 참조형은 객체 또는 배열에 사용된다.
기본형 vs 참조형 - 기본
- 기본형은 숫자 10 , 20 과 같이 실제 사용하는 값을 변수에 담을 수 있다. 그래서 해당 값을 바로 사용할 수 있다.
- 참조형은 실제 사용하는 값을 변수에 담는 것이 아니다. 이름 그대로 실제 객체의 위치(참조, 주소)를 저장한다. 참조형에는 객체와 배열이 있다.
- 객체는 . (dot)을 통해서 메모리 상에 생성된 객체를 찾아가야 사용할 수 있다.
- 배열은 [] 를 통해서 메모리 상에 생성된 배열을 찾아가야 사용할 수 있다.
기본형 vs 참조형 - 계산
- 기본형은 들어있는 값을 그대로 계산에 사용할 수 있다.
- 참조형은 들어있는 참조값을 그대로 사용할 수 없다. 주소지만 가지고는 할 수 있는게 없다. 주소지에 가야 실체가 있다!
자바는 항상 변수의 값을 복사해서 대입한다.
- 자바에서 변수에 값을 대입하는 것은 변수에 들어있는 값을 복사해서 대입하는 것이다. 기본형, 참조형 모두 항상 변수에 있는 값을 복사해서 대입한다.
- 기본형이면 변수에 들어 있는 실제 사용하는 값을 복사해서 대입하고, 참조형이면 변수에 들어있는 참조값을 복사해서 대입한다.
- → 참조형의 경우 실제 사용하는 객체가 아니라 객체의 위치를 가리키는 참조값만 복사된다.
- ⇒ Call by reference는 참조에 의한 호출을 말한다. Call by reference의 특징은 전달받은 값을 변경할 경우 원본도 변경된다. java에서는 Call by value로만 동작한다. 자바에서 Call by reference로 동작한다고 생각할 수 있지만 자바에서 매개변수를 넘기는 과정에서 주소값을 복사해서 넘기기 때문에 call by value로 작동한다.
변수와 초기화
변수의 종류
- 멤버 변수(필드) : 클래스에 선언한다.
- 지역 변수 : 메서드에 선언, 매개 변수도 지역 변수의 한 종류이다.
변수의 값 초기화
- 멤버 변수 : 자동 초기화
- 인스턴스의 멤버 변수는 인스턴스를 생성할 때 자동으로 초기화된다.
- 숫자(int)=0, boolean = false , 참조형 = null ( null 값은 참조할 대상이 없다는 뜻으로 사용 된다.)
- 개발자가 초기값을 지정할 수 있다.
- 지역 변수 : 수동 초기화
- 지역 변수는 항상 직업 초기화해야 한다.
null
- null은 값이 존재하기 않는, 없다는 뜻이다.
Data 타입을 받을 수 있는 참조형 변수 data(Data 인스턴스)를 만든다. 여기에 null을 할당한다. 즉, data 변수에 가리키는 객체가 없다.
→ 이후 새로운 Data 객체를 생성해서 참조값을 data 변수에 할당한다. 이제 data 변수가 참조할 객체가 존재한다. → data에 다시 null 값을 할당했다. 이렇게 하면 data 변수는 앞서 만든 Data 인스턴스를 더는 참조 하지 않는다.
회고
발생한 문제
- 자료구조를 공부하면서 자바에 대한 공부도 부족하다는 것을 느꼈다.
해결 방법
- 자바 공부를 병행하기로 했다.
알게된 내용
- 기본형과 참조형의 차이와 자바에서는 call by value로만 동작한다는 사실을 알게 되었다.
'기술 > java' 카테고리의 다른 글
99클럽 코테 스터디 21일차 TIL + 애너테이션(Annotation) (0) | 2024.06.10 |
---|---|
99클럽 코테 스터디 20일차 TIL + 절차 지향 프로그래밍 VS 객체 지향 프로그래밍 (0) | 2024.06.09 |
99클럽 코테 스터디 18일차 TIL + 제네릭(Generic) (0) | 2024.06.07 |
99클럽 코테 스터디 13일차 TIL + 재귀 함수 (0) | 2024.06.02 |
[TIL]240502 Garbage Collection (0) | 2024.05.02 |