부트캠프 강의 - java
1. 문제
   - 메서드 안에 클래스를 정의해서 사용할 경우, 왜 지역 클래스 내부에서 메서드의 지역변수를 바꿀 수 없을까?

2. 시도
   - 강의, 책, 블로그를 통해 확인해보자

3. 해결
   - 지역 클래스와 메서드 내의 지역변수는 생성 및 소멸 시기가 달라서 그렇다
   - 지역 클래스의 instance는 heap에 생성되고 지역변수는 stack에 생성되는데, 만약 생성된 instance가 이미 stack에서 사라진 지역변수를 사용할 수 없기 때문임
   - 또한, 지역 클래스에서는 final로 된 지역변수에만 접근할 수 있다
   - 이유는 지역클래스는 이렇게 생성과 소멸이 다른 지역변수를 사용하기 위해서 지역변수의 복사본을 가져옴
   - 그런데, 만약 지역변수가 final이 아니라 계속 변한다면 여러 Thread들 간의 동기를 맞출 수 없음
   - 그래서 결국 지역클래스에서 지역변수를 사용하려면, 지역변수가 final이어야함(또는 effectively final)

4. 알게된 점
   - 이러한 지역클래스가 나중에 익명클래스, 람다와 연결되는 것 같다. 확실하게 알아두자

코테 준비

1. 백준 4256 - 트리

: preorder와 inorder에서 규칙을 찾고, 이에 따라 재귀함수를 작성. 규칙을 찾는것과 이를 재귀함수로 옮기는 것, 이 두 가지를 모두 숙달시켜야함

 

2. 백준 17480 - 개구쟁이 준석이

: 일단 해당 문자열에서 알파벳 갯수를 세는 방법으로는 26개의 알파벳 배열을 만들어서 해당 문자열의 index의 값을 증가시키는 것이 있음. 만약 문제에서 재귀함수의 방법이 주어졌다면, 해당 방법을 정확하게 구현하는 것이 핵심


오늘 하루도 고생했다!!!

'TIL(Today I Learned)' 카테고리의 다른 글

2023.08.04  (0) 2023.08.04
2023.08.03  (0) 2023.08.03
2023.08.01  (0) 2023.08.01
2023.07.31  (0) 2023.07.31
2023.07.27  (0) 2023.07.27

+ Recent posts