자바 공부하다 보면 진짜 많이 헷갈리는 게 있다.👉 문자열 비교할 때== 를 써야 하나?아니면 equals()를 써야 하나?초보 때는 둘 다 같은 것처럼 보이는데,실제로는 완전히 다르다.그리고 이 차이를 모르면실무에서 버그 엄청 만든다.자바 문자열 비교 == vs equals 차이먼저 결론부터👉 문자열 내용 비교는 무조건 equals() 사용str1.equals(str2)👉 == 는 객체 자체 비교str1 == str2이 차이가 핵심이다.== 는 무엇을 비교할까?👉 메모리 주소(참조값) 비교즉:같은 객체인가?같은 위치를 바라보는가?를 확인한다.예제 1String str1 = new String("hello");String str2 = new String("hello");System.out.prin..
자바 문자열 공부하다 보면 무조건 만나게 되는 3개가 있다.StringStringBuilderStringBuffer처음엔 다 문자열 같은데왜 굳이 3개나 있는지 헷갈린다.근데 이 차이를 이해하면👉 메모리, 성능, 멀티스레드 개념까지 같이 잡힌다.실무에서도 진짜 자주 나오는 면접 단골 주제라 꼭 알아두는 게 좋다.String 이란?가장 기본적인 문자열 클래스다.String str = "hello";우리가 평소 가장 많이 쓰는 문자열이 바로 이것이다.String의 핵심 특징👉 immutable (불변 객체)이게 핵심이다.즉:문자열을 수정하는 게 아니라새로운 객체를 계속 만든다예제String str = "hello";str += " world";System.out.println(str);겉보기엔 수정된 것..
자바에서 리플렉션(Reflection) 쓰다 보면, 처음 보는 형태의 예외를 만나게 된다.👉 InvocationTargetException이건 다른 예외들이랑 좀 다르게,"진짜 원인을 감싸고 있는(wrapper) 예외" 라서 초보 때 많이 헷갈린다.InvocationTargetException 이란?👉 "리플렉션으로 메서드를 호출하는 과정에서, 내부에서 발생한 예외를 감싸는 예외"핵심은 이거다:✔ 직접 발생한 게 아니라✔ 다른 예외를 감싸서 전달하는 역할가장 기본적인 예제import java.lang.reflect.Method;class Test { public void run() { throw new RuntimeException("진짜 에러 발생!"); }}public cl..
자바에서 리플렉션(Reflection) 쓰다 보면 한 번쯤 만나게 되는 예외가 있다.👉 NoSuchMethodException일반적인 코드에서는 잘 안 나오는데,리플렉션 / 프레임워크 / 라이브러리 사용 중에 자주 터지는 예외다.NoSuchMethodException 이란?👉 "존재하지 않는 메서드를 찾으려고 할 때 발생하는 예외"즉,✔ 클래스에는 없는 메서드 이름을 찾거나✔ 파라미터 타입이 일치하지 않을 때발생한다.가장 기본적인 예제import java.lang.reflect.Method;public class Main { public static void main(String[] args) throws Exception { Class clazz = String.class; ..