Language/Java

Language/Java

[Java] Thread 강제 종료 시키는 방법

안녕하세요. 점냥입니다:) 이번 포스팅에서는 Java Thread를 외부에서 종료시키는 방법에 대해서 작성해보려고 합니다. 이 주제는 최근 기업 기술 질문에서 대답을 못한 질문 중에 하나로 정답을 찾고 정리하고자 이번 포스팅을 준비하게 되었습니다. while문에서 무한 루프를 돌고 있어 종료되지 않는 스레드, 외부에서 어떻게 강제 종료시킬 수 있는가? class SampleThread implements Runnable { @Override public void run() { while(true) { System.out.println("thread is running"); } } } 모든 Thread는 Runnable의 run() 함수 내 코드를 실행하고 함수의 모든 코드가 실행이 되면 스레드는 자동으로..

Language/Java

Java의 Singleton

Singleton 패턴은 Class의 인스턴스를 여러 번 생성하는 것이 아닌 하나의 클래스당 하나의 인스턴스를 가지게 만들어 불 필요한 메모리 낭비를 최소화하는 디자인 패턴입니다. Java에서 Singleton 패턴을 구현하는 방법은 여러 가지가 있고 하나씩 소개하도록 하겠습니다. Eager Initialization public class A { private A instance = new A(); private A() {} public static A getInstance() { return instance; } } 가장 기본적으로 singleton으로 구현한 형태입니다. 기본 생성자를 private로 선언하여 외부에서 생성자의 호출을 막고 오직 getInstance함수로 인해 클래스 객체에 접근할 ..

Language/Java

Java - String pool

평범했던 평일 오후, 오픈 톡방에서 한 사람이 Android Intent 이동 부분에서 발생한 오류 부분을 알려달려고 물어 봤다. final String val = "길찾기" if ( val == textView.getText().toString()) { // Intent로 다른 엑티비티로 이동 } 보자마자 String 객체를 == 연산으로 비교한 것이 잘못이라고 생각했지만 큰 오산이었다. String의 메모리 할당 구조에 대해서 잘 알지 못하여 발생한 착각이었다. Java String 참조형 비교 int a1 = 1; int a2 = 1; String b1 = new String("Hello world"); Integer b2 = new String("Hello world"); System.out.pr..

점냥
'Language/Java' 카테고리의 글 목록