본문 바로가기

Spring18

[8] 자바 고급 문법 - 람다 & 스트림 [1] 람다 기본1) 람다: 함수를 하나의 값처럼 표현하는 방식이다. 자바에서는 주로 짧은 형태의 익명 함수를 표현할 때 사용한다.Runnable r = new Runnable() { @Override public void run() { System.out.println("Hello"); }};//아래와 같이 바뀐다.Runnable r = () -> System.out.println("Hello");() → 매개변수, -> → 람다 화살표, {} → 실행 내용2) 함수형 인터페이스: 메서드가 하나만 있는 인터페이스@FunctionalInterfaceinterface MyPrinter { void print(String msg);}@FuntionalInterface를 사용.. 2025. 3. 31.
[7] 자바 고급 문법 - 문자 1) 문자 인코딩문자 인코딩: 문자 집합을 통해 문자->숫자로 변환하는 것문자 디코딩: 문자 집합을 통해 숫자 -> 문자로 변환하는 것UTF-8이 현대의 표준 인코딩 기술이다 - 저장 공간 절약 & 네트워크 효율성2) 스트림public class FileMemberRepository implements MemberRepository { private static final String FILE_PATH = "temp/members-txt.dat"; private static final String DELIMITER = ","; @Override public void add(Member member) { try (BufferedWriter bw = new BufferedW.. 2025. 3. 28.
[6] 자바 중급 문법 - List 1) List: 순서가 있고 중복을 허용하는 자료구조데이터를 앞에서 추가하거나 삭제할 때 빅오: ArrayList: O(n), LinkedList: O(1)컴파일 타임 vs 런타임 의존관계의존관계: 어떤 클래스가 다른 클래스를 사용하고 있다는 관계컴파일 타임 의존관계: 코드 작성 시점에 나타나는 관계로 자바 컴파일러가 보는 의존관계인터페이스 MyList를 쓴 것 -> 유연한 설계가 가능함 (OCP 원칙)전략패턴: 실행 시점에 알고리즘(혹은 구현체)을 바꿀 수 있게 하는 디자인 패턴컴파일 타임엔 인터페이스(MyList)만 보고, 런타임엔 실제 구현체(MyArrayList or MyLinkedList)를 주입해서 동작함List: 순서가 중요한 이벤트 목록Set: 회원 ID 집합, 고유한 항목의 집합2) Co.. 2025. 3. 28.
[5] 자바 중급 문법 - ArrayList [1] ArrayList - 배열리스트 ( List 자료 구조를 사용하는데, 내부의 데이터는 Array에 보관하는 것)1) 특정 배열의 위치에 숫자 추가하기배열의 크기는 배열을 생성하는 시점에 미리 정해져야 한다.public class ArrayMain { public static void main(String[] args) { int[] arr = new int[5]; arr[0]=1; arr[1]=2; int index = 2; int newValue = 3; addAtIndex(arr, index, newValue); } public static void addAtIndex(int[] arr, int inde.. 2025. 3. 28.