전체 글 195

(이펙티브자바) item1 - 생성자 대신 정적 팩토리 메서드를 사용하라

이펙티브 자바 item1 - 생성자 대신 정적 팩토리 메서드를 사용하라 1) 왜 ‘생성자’ 대신 ‘정적 팩터리 메서드’인가?1-1. 이름이 의미를 전해 준다 (표현력)생성자는 이름이 클래스명뿐이라 의도가 잘 안 보이는데, 메서드는 이름으로 의도/규칙을 드러낼 수 있어요.LocalDate.of(2025, 8, 24) : “주어진 값으로 만든다(of)”UUID.fromString(text) : “문자열에서 파싱한다(from)”BigInteger.valueOf(10) : “주어진 원시값을 감싸서/재사용(valueOf)”오버로드도 의미별 메서드명으로 분리되니, 같은 시그니처 충돌 문제도 사라집니다.1-2. 인스턴스 ‘통제’ 가능 (캐싱/싱글턴/플라이웨이트)생성자는 호출하면 항상 새 객체가 나오지만, 정적 팩터..

(코테) 프로그래머스_가장 긴 팰린드롬 * 투포인터(팰린드롬 )

더보기문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/12904 class Solution{ public int solution(String s){ int max = 1; for(int i =0;i=0 && right 회고1. 투포인터 개념 확립 - 기존에 투포인터 개념이 모호 했다. 하지만 이 문제를 풀고 정확히 이해가 됐다 한 배열? 안에 두개의 인덱스(포인터)를 두고 확장 혹은 축소로 정답 도출하는 방식 2. 유사한 알고리즘 윈도우슬라이딩 투포인터와 비슷하지만 (두개의 포인터를 쓴다는 부분) 다르다차이점- 투포인터는 확장 축소로 탐색하는 길이가 조절이 된..

(자바)자바 제너릭 (Generics) 정리

자바 제너릭 (Generics) 정리1. 자바와 컴파일의 특징자바는 흔히 컴파일 언어라고 하지만, 실제로는 하이브리드 언어다..java → javac → .class(바이트코드)로 컴파일JVM이 이 .class를 읽어들여 인터프리터처럼 실행하다가, JIT 컴파일러로 최적화된 기계어를 만들어 실행즉, 컴파일 + 인터프리터 두 방식을 혼합한다.왜 굳이 컴파일을 할까?문제 조기 발견실행하기 전에 타입이나 문법 문제를 확인할 수 있다.예: Integer b = a; (여기서 a가 Object라면) → 컴파일 에러 발생.최적화 가능전체 코드를 보고 중복 제거, 인라이닝 같은 최적화를 할 수 있다.정적 타입 언어답게, 자바는 상위타입 → 하위타입 암시적 대입을 금지한다. Object obj = Integer.val..

자바/자바 2025.08.21