> For the complete documentation index, see [llms.txt](https://jinwon-yoon.gitbook.io/jinonys-blog/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://jinwon-yoon.gitbook.io/jinonys-blog/daily-log/2022.08.14.md).

# 2022.08.14

일일 회고 4일차

## 할일 및 한일

* [x] 이것이 자바다 5장(참조 타입) 복습
* [ ] 직렬화 역직렬화 이해하기

## 경험 및 배움

### 이것이 자바다 5장(참조 타입) 복습

5장(참조 타입)을 복습하면서 간단히 짚고 넘어갔던 것들에 대해 조금 자세하게 볼 수 있었다.

예를 들어 `null` 같은 경우에도 지금까지의 생각은 그냥 비어있는 것, 값이 없는 것 이렇게 생각하였지만 정확한 정의는 **참조 타입 변수가 힙 영역의 객체를 참조하지 않는 것** 이었다.

그리고 배열 같은 경우에도 다차원 배열을 잘 몰랐지만 코드를 실습하면서 좀 더 정확히 이해할 수 있었다.&#x20;

또한 **깊은 복사, 얕은 복사의 차이점**과 **향상된 `for` 문**에 대해 좀 더 알아보았다.

{% hint style="info" %}
***깊은 복사(deep copy)와 얕은 복사(shallow copy)***

깊은 복사는 '실제 값'을 새로운 메모리 공간에 별도로 생성하는 것(실제값이 다름)이고, 얕은 복사는 '주소 값'을 복사하므로 참조하고 있는 실제 값이 같다.

얕은 복사는 복사한 배열을 수정하면 원 배열도 함께 수정된다.

깊은 복사는 복사한 배열을 수정해도 원 배열은 바뀌지 않는다.
{% endhint %}

{% hint style="info" %}
***향상된(개선된)****&#x20;****`for`\*\*\*\* \*\*\*\*문***

향상된 `for` 문은 자바5 이상부터 제공하는데, 반복 실행을 하기 위해 카운터 변수와 증감식을 사용하지 않는다.

배열이나 컬렉션 항목의 개수만큼 반복하고, 자동으로 `for` 문을 빠져나간다.
{% endhint %}

다음은 향상된(개선된) `for` 문의 기본 형식이다.

```java
for (자료형 변수명 : 배열) {
     실행문;
}
```

향상된 `for` 문은 배열처럼 여러 원소로 이루어진 집합의 모든 원소에 대해 특정 작업을 반복하기 위해 사용하는데 가독성이 좋아지고 코드가 간결해지는 장점이 있지만, 단점으로는 index를 사용하지 못한다고한다.&#x20;

직렬화와 역직렬화에 대해 알아보려 했지만 약속된 풋살 시간이 다되어 오늘은 마치지 못할 것 같다.

## 개선 및 목표

* 오늘 할 일을 다하지 못했으니 내일은 더 열심히 해보자.
* 쉽거나 기본이라고 생각되는 것은 그냥 넘어가는 경향이 있는것 같다. 자세히 보면 모르는 것들 투성이니 제대로 공부하자.
