본문 바로가기

IT

[JAVA] GC(가비지 컬렉터)의 동작원리 안녕하세요 남갯입니다 오늘은 네이버 D2에서 읽은 GC 의 내용을 옮겨서 정리해보려고합니다. 출처: https://d2.naver.com/helloworld/1329 가비지 컬렉터(GC) GC의 동작원리GC는 가비지 콜렉터로 힙영역에 동적할당된 메모리를 회수해가는 역할을한다.Stop The World를 통해 GC를 실행시킨다. Stop The World란 GC를 실행시키기 위해 JVM이 어플리케이션 실행을 멈추는것 이다.GC스레드를 제외한 나머지 스레드는 작업을 멈춘다. GC가 끝나야 중단한 작업을 시작한다.GC의 튜닝은 Stop the world의 시간을 줄이는것 GC의 생성 가설1. 대부분의 객체는 금방 접근불가능 상태가된다.2. 오래된 객체의 젊은 객체로의 참조는 아주 적게 존재한다.이 가설의 이름..
[Java] String, StringBuilder, StringBuffer 란? 안녕하세요 남갯입니다. 오늘은 String과 StringBuffer와 StringBuilder에 대해 알아보려고 합니다. 세 클래스의 비교String , StringBuffer , StringBuilder문자열을 관리하고 저장하는 클래스 String 은 immutable, StringBuffer,StringBuilder는 mutable하다는점 String 의 동작String a = "aa"일 경우 heap영역의 String pool에 들어가게 되고String b = new String("aa")일때는 heap에 객체를 생성하게 된다. 즉 a == b 는 다르게 되지만즉 String a = "aa"는 내부적으로 b.intern()이라는 함수를 통해 String pool에 등록된다.b.intern()을 통해..
[코틀린] let, with, run, also, apply 정리 안녕하세요 남갯입니다. run과 let 등등 대충의 쓰임새만 알고 있고 따로 물어보면 사용처에 대한 정리가 되어 있지 않아 정리를 못했던거같은데 에서 다시 정리해서 포스팅해보려고 작성했습니다. with run 둘다 this1. with는 입력하는 객체가 따로 필요없을때2. run은 nullable일때 ex ) with(person){ this?.name this?.age } person?.run{ this.name this.age } let run let은 it run은 this다중문을 사용했을때 혹은 this가 모호할때let을 사용 it말고 이름을 지정함으로써let{ a1 -> a1.let { a2-> //todo } } also letalso 객체 자체의 동일한 내용 이용하고 싶을때 "abc".let..
[코틀린]의 위임 발표자료 공유 안녕하세요 남갯입니다. 이번 11월 30일에 매쉬업 안드로이드 발표에서 코틀린의 위임을 발표하게된 자료를 올려보려고합니다. 급하게 준비하고 만들어서 좀 이상하지만 올립니다. 1. 자바의 위임2. 코틀린의 위임 - 3가지-클래스위임-by lazy-delegation.Observable 감사합니다.
[스테이트패턴] 스테이트패턴 적용기 안녕하세요 남갯입니다. 오늘은 디자인 패턴을 공부하던 중 스테이트 패턴을 통해 코드를 개선한 내용을 정리해보려고 합니다. 스테이트 패턴이란 스테이트패턴의 정의 스테이트 패턴을 이용하면 객체의 내부상태가 바뀜에 따라서 객체의 행동을 바꿀수 있습니다. 마치 객체의 클래스를 바뀌는것과 같은 결과를 얻을수있습니다.* 상태를 별도의 클래스로 캡슐화하고 현재상태를 나타내는 객체한테 행동을 위임하기 때문에 내부상태가 바뀜에 따라 행동이 달라지는것을 알 수 있습니다. 스테이트 패턴의 정의에 따라 현재 객체의 내부 상태가 바뀜에 따라서 객체의 행동을 바꿀수 있다고 합니다. 요구사항 제가 필요했던 요구사항에서는 자동차는 도로를 따라 일정 속도와 1. 정체, 지연, 원할 세가지의 도로의 타입이 존재합니다.원할 - 지연 - ..
[안드로이드] navigation back button handling 안녕하세요 남갯입니다.https://stackoverflow.com/questions/51043428/handling-back-button-in-android-navigation-component Newest Update - April 25th, 2019 public class MyFragment extends Fragment { @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); // This callback will only be called when MyFragment is at least Started. OnBackPressedCallback callback =..
[코딜리티] - Lesson 11 ChocolatesByNumbers 안녕하세요 남갯입니다. boolean[] isEmpty = new boolean[N]; int index = 0; int count = 0; while (!isEmpty[index]) { isEmpty[index] = true; count++; if (index + M > N - 1) { index = (index + M) % N; }else{ index += M; } } return count;위에는 OOM public int solution(int N, int M) { // write your code in Java SE 8 BitSet bitSet = new BitSet(); int index = 0; int count = 0; while (!bitSet.get(index)) { bitSet.set..
[코딜리티] - Lesson 11 CountSemiprimes 안녕하세요 남갯입니다. public int[] solution(int N, int[] P, int[] Q) { int[] result = new int[P.length]; // 0으로 초기화 int[] primeArray = new int[N + 1]; //0 = 소수 //2이상 = 노소수 System.out.println(primeArray[3]); primeArray[0] = 1; primeArray[1] = 1; int i = 2; //소수 구하기 while (i * i