멘토님 회고록 정리 및 설명

Assist·2023년 6월 11일
0

나의 성장일기

목록 보기
8/9

일요일 오후 회사 관사로 올라가기전에 글을 쓰기 위해서 잠시 시간을 썼습니다.

바로 들어가 보겠습니다 .

GC(Garbage Collection) 이란?

이는 안드로이드에서 가장 중요한 개념입니다.

GC란 JVM HEEP 영역에서 안쓰는 객체를 삭제하는 행위 입니다.

예를 들어 이러한 변수는 함수가 호출이 끝나면 gc가 삭제를 시킵니다.

fun letUserGc(){
 val data = 1
 System.out.print(data)
}

단 실무에서 일어났던 일을 소개하겠습니다 .

fun MainActivity : : AppCompatActivity(){
	val data : String = "gc" 
    
    override ... 

이렇게 data 을 String 값을 함수마다 변하는것을 기능을 만든적이 있습니다.

근데 이 data가 언제까지 살아 있을지 gc가 판단을 못해서 android내에서 gc처리를 안해 메모리 릭이 나오더군요

안드로이드 스튜디오 메모리 릭 확인법은
https://developer.android.com/studio/profile/memory-profiler?hl=ko

ArrayList 와 LinkedList 의 시간 복잡도를 대답해봐라

  • Add
    ArrayList : O(n)
    LinekdList : O(n)

ArrrayList는 특정 위치에 한 개의 데이터를 추가하려면 특정 위치 다음에 존재하는 데이터를 복하한 후 한칸뒤에 붙이는것

LinkedList 은 추가할 위치를 찾고 처음부터 데이터를 찾기 떄문에 저러한 시간 복잡도를 가진다 .

get은 ArrayList은 get할 위치의 index을 가져서 LinkedList 보다 빠르게 찾을수 있다.

제네릭 이란 무엇인가?

< T > Type
< E > Element
< K > Key
< V > Value
< N > Number

이런식으로 나눌수 있습니다 .

왜 쓰는가?

음 저또한 < T > 은 많이 써서 왜 쓰는지 몰랐는데 이번기회에 알게되어서
매우 재미있습니다 .

다른 사람이 저의 클래스를 쓸때 이 제네릭 아니면 못써 라고 씀으로 인하여
잘못된 타입이 들어오는것을 방지하는 것입니다 .

잘못된 타입 방지라고 하여 혼자 개발할떈 상관 없을텐데 라고 생각을 했다고
바로 개발자는 혼자 작업이 아닌 여러 사람이 작업한다는 것을 다시 꺠달아서

다른 사람이 제가 만든 클래스를 사용하다가 잘못된 방법을 사용해서 버그가 생겨나지 않게 애초에 미연에 방지하기 위해 사용하는것이 제니릭 이라는것입니다.

읽어주셔서 감사합니다

피드백와 비판은 언제나 환영입니다

profile
안드로이드만 좋아하는 특이한 개발자

0개의 댓글