[JAVA]currentThread()
·
Language/JAVA
currentThreadpublic class Main { public static void main(String[] args) { Thread thread=Thread.currentThread(); }}currentThread()는 정적 메소드로 현재 실행 중인 스레드 객체를 반환한다. 이 메서드는 현재 실행 중인 코드가 어느 스레드에서 실행되고 있는지 알아내는 데 사용된다.() currentThread() vs new Thread()currentThread()new Thread()현재 실행 중인 스레드 객체를 반환한다. 이는 기존에 이미 실행 중인 스레드를 가져오는 메서드이다.새로운 스레드 객체를 생성한다. 이 객체는 아직 실행 중이지 않으며, start()를 호출해야 스레드가 실행된다.curren..
[JAVA]문자열 상수 풀(String Pool)
·
Language/JAVA
문자열 상수 풀문자열 리터럴을 사용할 때, JVM은 문자열 상수 풀에 문자열을 저장한다. 문자열 상수 풀은 동일한 문자열 값을 공유하여 메모리 사용을 효율적으로 관리할 수 있다. 즉, 문자열 상수 풀은 동일한 문자열이 이미 존재할 경우, 새로 문자열 객체를 생성하지 않고 기존의 객체를 재사용한다. 이로 인해 메모리 공간을 절약하고, 불필요한 객체 생성을 방지할 수 있다.String a = "hello";String b = "hello";위 코드에서 a와 b는 동일한 문자열 리터럴 "hello"를 참조한다. 따라서 두 변수는 같은 메모리 주소를 가리키게 되며, a == b는 true를 반환한다.new 키워드 반면, new 키워드를 사용하여 문자열을 생성하면, 문자열 리터럴과는 달리 새로운 객체가 메모리에서..
[JAVA]equals() vs ==
·
Language/JAVA
equals()equals() 메소드는 기본적으로 Object 클래스에 정의되어 있으며, 기본 구현에서는 ==와 같이 객체의 메모리 주소를 비교하지만, 대부분의 경우 오버라이딩을 통해 객체의 내용 비교에 사용된다.예를 들어, String 클래스에서는 equals() 메소드가 문자열의 실제 내용을 비교하도록 오버라이딩되어 있다.public class Main {    public static void main(String[] args) {            // 두 개의 String 객체를 new 키워드를 사용하여 생성        String str1 = new String("hello");        String str2 = new String("hello");        // 두 객체가 같은 내..