안녕하세요. 점냥입니다:) 이번 포스팅에서는 Java Thread를 외부에서 종료시키는 방법에 대해서 작성해보려고 합니다. 이 주제는 최근 기업 기술 질문에서 대답을 못한 질문 중에 하나로 정답을 찾고 정리하고자 이번 포스팅을 준비하게 되었습니다. while문에서 무한 루프를 돌고 있어 종료되지 않는 스레드, 외부에서 어떻게 강제 종료시킬 수 있는가? class SampleThread implements Runnable { @Override public void run() { while(true) { System.out.println("thread is running"); } } } 모든 Thread는 Runnable의 run() 함수 내 코드를 실행하고 함수의 모든 코드가 실행이 되면 스레드는 자동으로..
Singleton 패턴은 클래스당 하나의 인스턴스만을 보장하는 디자인 패턴입니다. Java는 Kotlin의 object 키워드 같은 Singleton를 위한 문법이 존재하지 않기 때문에 직접 구현해줘야 합니다. 이번 글에서는 Java에서 Singleton 패턴을 구현하는 방법에 대해 알아보겠습니다. Eager Initializationpublic class A { private A instance = new A(); private A() {} public static A getInstance() { return instance; }}가장 쉽게 Singleton을 구현하는 방법입니다.기본 생성자를 private로 선언하여 외부에서 생성을 막고, 오로지 static getInstanc..
평일 오후, 안드로이드 오픈 톡방에 어느 한 사람이 질문을 올렸다. Android Intent 처리 코드에서 if 문이 수행이 안되는데 이유를 모르겠다는 것이었다. final String text = "길찾기" if (text == textView.getText().toString()) { // Intent로 다른 엑티비티로 이동 } 처음 보자마자 String 값 비교를 == 문법으로 수행한 것이 잘못된 점이라고 단정 지었다. eqauls 함수를 사용하는 것이 올바르다고 생각했다. 하지만 내가 잘 못 알고 있었다. 톡방의 여러 사람들의 답변을 들어보니 상황에 따라서 == 문법이 틀린 코드가 아니라는 사실을 알게 되었다. Jvm에서 String 메모리 할당 구조에 대해서 잘 알지 못해 놓친 부분이..