PS/JAVA

·PS/JAVA
✅ 1. 결론new 로 생성된 객체는 heap 영역에 올라갑니다.그리고, stack에는 그 객체의 참조(주소) 를 담고 있는 참조 변수(reference variable) 가 저장됩니다.🔷 2. 예시로 이해하기String s = new String("hello"); new String("hello") 로 객체를 만들면:Heap 영역String 객체(내용: "hello")가 저장됨Stack 영역s 라는 변수가 있음s 변수는 heap에 있는 String 객체의 참조(reference, 주소) 를 저장✅ 그림으로 정리[Stack] [Heap] s ───────────────► String("hello") s = 참조 변수 (stack)"hello"..
·PS/JAVA
접근map[type] -> 자바는 map을 배열처럼 접근할 수 없다무조건 map.get(key) or map.put(key,value) 사용해야한다.put()put(key,value) 해당 key가 이미 존재하면 → value를 덮어씌웁니다. (기존 값이 새 값으로 바뀜)해당 key가 없으면 → 새로 추가 반환값은 기존 값이다.Integer oldValue = map.put("apple", 10);System.out.println(oldValue); // 이전 값인 5 출력 📚 putIfAbsent vs getOrDefault 차이putIfAbsent(key, value)키가 없으면 value를 넣고, 있으면 무시값 덮어쓰기 원하지 않을 때getOrDefault(key, defaultValue)키가 있..
·PS/JAVA
InputStreamReaderSystem.in -> 바이트 기반 입력BufferedReader -> 문자 기반 입력=> 형 변환 어댑터 필요 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Integerint 기본형을 감싸는 래퍼 클래스public static int parseInt(String s)parseInt : 래퍼 클래스가 보유한 메서드 중 하나Auto-Boxing,Unboxingint a = 10;Integer obj = a;// 오토박싱 int -> Integer 자동 형 변환Integer obj = 20; int b = obj; // 언박싱: Integer → int;// 언박싱: Integer → int..
·PS/JAVA
함수 인자로 왜 new ArrayList()만 쓰고 List는 안 써도 될까?✅ 핵심결론여기서 new ArrayList()는 익숙한 축약 문법이에요.타입 생략이 가능한 이유는, 자바 컴파일러가 타입 추론(type inference) 을 해주기 때문입니다. ✅ 정리표현 의미new ArrayList()자바 7 이상에서 타입 생략 가능한 축약 문법왜 생략 가능?메서드의 매개변수 타입을 보고 자바가 자동 추론 (type inference) 참고로... 변수에 직접 할당하는 경우도 마찬가지!List temp = new ArrayList(); // OK! 컴파일러가 타입 추론
·PS/JAVA
❓ 왜 System.out.println(uniqueArr); 이렇게 하면 배열 내용이 안 보이고,이상한 문자들이 나올까? ✅ 이유: 배열은 객체지만, toString()이 오버라이딩되어 있지 않기 때문!자바에서 System.out.println(객체)는 내부적으로 객체.toString()을 호출합니다.그런데 배열은 Object를 상속하지만,toString() 메서드를 오버라이딩하지 않아서 "클래스명@해시코드" 형식으로 출력됩니다.📌 그래서 int[] → [I@abc123📌 String[] → [Ljava.lang.String;@abc123✅ 해결 방법System.out.println(Arrays.toString(uniqueArr));System.out.println(Arrays.deepToStrin..
브리오
'PS/JAVA' 카테고리의 글 목록