본문 바로가기
반응형

Programing General/Java3

[Java] Runnable과 Thread의 차이 및 간단한 실행 예제 보통 자바에서 쓰레드를 구현할 때 두가지 방법을 사용한다. Thread, Runnable 두 방법이 있는데, Runnable은 이름에서 느껴지지만 클래스가 아닌 인터페이스다. 그래서 위 두 방법을 구체적으로 설명하자면 1. Thread 클래스를 상속받는다. 2. Runnable 인터페이스를 구현한다. 로 정리할 수 있다. 한 가지 목적에 두 가지 방법이 있다면 각각 설계 된 이유가 있을 것이다. 하지만 한국 웹을 아무리 뒤져봐도 두 방법의 사용법의 차이 및 상속&구현의 차이만 말할 뿐 왜 이 두 가지 방법이 존재하는지에 대한 설명은 없었다. 그래서 자바 api를 잠시 살펴봤다. 흥미로운 것을 발견했는데, Thread 클래스는 Object를 상속받으며 Runnable 인터페이스를 구현한다는 것이다. 그리고.. 2020. 5. 7.
[Java] int와 Integer의 차이 int와 Integer은 쓰임새가 유사한 것 같으면서도 다르다. 정확하게 개념을 짚어놓지 않으면 코딩할 때 왜 이 메소드에서 매개변수를 틀렸다고 하는지, 어떻게 변환해서 사용하는게 옳바른지 등 헷갈리기 쉽기 때문에 간단하게 정리를 해보자. primitive data type vs class 가장 큰 차이이자 핵심이다. int는 자바의 원시 자료형이고, Integer는 자바의 클래스이다. 자바는 객체지향 언어이기 때문에, 상당수의 연산을 객체의 형태를 사용해서 수행한다. 하지만 객체의 연산은 오버헤드가 발생할 수 밖에 없기 때문에, 자주 사용되는 8개의 형태를 원시 자료형으로 남겨놔서 사용할 수 있게 해줬다. int, double, boolean 등등.. 그러니까 사용법이 달라진다... 예를 들어서 자바 .. 2020. 4. 27.
[java] String, Stringbuffer, Stringbuilder 차이점 및 성능비교 1. String의 메소드 concat과 +연산자의 동작방식 String의 concat과 +연산자가 어떻게 동작하는지 살펴보자. String strNull=null; String str = "aaaa"; String str2 = "bbbb"; System.out.println(str.concat(str2)); System.out.println(str+str2); //System.out.println(strNull.concat(str2)); System.out.println(strNull+str2); 결과 aaaabbbb aaaabbbb nullbbbb 첫 번째 예시에서는 String의 concat과 +연산자의 결과값이 같다. 하지만 두 번째 예시는 concat메소드에서만 NullPointerExcepti.. 2019. 12. 1.
반응형