본문 바로가기

전체 글

(109)
[Java 요약 정리] 11. 스트림(Stream) 11. 스트림(Stream) 1) 스트림이란?- 다양한 데이터 소스를 통일된 방법으로 다루기 위한 것- 스트림이 제공하는 기능: 중간연산, 최종 연산- 과정: 스트림 생성 -> 중간연산 -> 최종연산 2) 스트림의 특징- 스트림은 데이터 소스로부터 데이터를 읽기만할 뿐 변경하지 않음(원본 유지)- 스트림은 Iterator처럼 일회용(필요시 스트림 재 생성해서 사용)- 최종 연산 전까지 중간연산 미수행(지연된 연산)- 작업을 내부 반복으로 처리한다.- 작업을 병렬처리한다. (병렬 스트림)*기본형 스트림(IntStream, LongStream, DoubleStream)- 오토박싱&언박싱의 비효율 제거됨(Stream 대신 IntStream사용)- 숫자와 관련된 유용한 메소드를 Stream보다 많이 제공 3) ..
[Java 요약 정리] 10. 람다식(Lambda Expression) 10. 람다(Lambda) 1) 람다식이란?- 함수를 간단한 식(Expression)으로 표현하는 방법- 익명함수(Anonymous function): 이름이 없는 함수- 메소드는 클래스에 종속적이지만 함수는 클래스에 독립적 2) 람다식 작성하기- 메소드의 이름과 반환타입을 제거하고 '->' 를 블록{} 앞에 추가ex) int max(int a, int b) { return a > b ? a : b; } => (int a, int b) -> { return a > b ? a : b }- 반환값이 있는 경우, 식이나 값만 적고 return문 생략 가능(끝에 ; 안붙임)ex) (int a, int b) -> { return a > b ? a : b } => (int a, int b) -> a > b ? a ..
[Java 요약 정리] 9. 쓰레드(Thread) 9. 쓰레드(Thread) 1) 프로세스와 쓰레드- 프로그램: 실행 가능한 파일(HDD)- 프로세스: 실행 중인 프로그램(메모리) -> 자원과 쓰레드로 구성- 쓰레드: 프로세스 내 실제 작업 수행, 모든 프로세스는 하나 이상의 쓰레드 보유- 싱글 쓰레드 프로세스: 자원+쓰레드- 멀티 쓰레드 프로세스: 자원+N개의 쓰레드 2) 멀티 쓰레드- 멀티쓰레딩: 하나의 프로세스 내에 여러 개의 쓰레드를 사용하는 것- 장점: 효율적인 자원 사용, 사용자에 대한 응답성 향상, 작업 분리로 인해 간결한 코드- 주의사항: 동기화에 의한 문제 발생, 교착 상태(Dead-Lock), 기아 상태*프로그래밍 고려사항이 많은 게 단점으로 작용할 수 있음- 싱글코어: 순차실행, 병행(Concurrent) // 병행 -> 번갈아가며 ..
[JavaScript 요약 정리] 2. 자료형(Data Type) 2. 자료형- 자료의 형태- 총 6가지로 분류(string, number, boolean, function, object, undefined)- 이 중 숫자, 문자열, 부울은 기본 자료형 1) 문자열 자료형(String)- 문자를 나열한 자료- ' ' 혹은 " " 따옴표 사이에 표현, 둘 중 아무거나 사용 가능하지만 일관성 필요- '문자열1'+'문자열2' 형태로 +연산 가능 - 문자열 내에 따옴표 표현시 두가지를 전부 사용하거나 이스케이프 문자(\) 사용ex) "문자열 표현: \"문자열\""; or '문자열 표현: "문자열"';*이스케이프 문자: \t 수평탭 \n 줄바꿈 \' 작은 따옴표 \" 큰 따옴표 \\ 역슬래쉬 - 템플릿 문자열: 문자열 내 표현식을 계산 (ECMAScript 6부터 사용 가능)양..
[Java 요약 정리] 8. 애너테이션(Annotation) 8. 애너테이션(Annotation)1) 특징- Class 객체를 통해서 활용- Annotation은 모든 애너테이션의 조상(상속 불가)- Annotation은 인터페이스로 정의되어 있음- 초기화 없이 사용할 시 기본값 지정 가능(null 제외)- 요소(애너테이션 내 선언된 메소드)가 value일 경우 이름 생략 가능- 요소 타입이 배열일 경우 {} "" 사용 2) 양식- 생성: @interface 애너테이션명 {반환타입 요소명() default 초기값;}- 사용: @애너테이션명(요소명=요소값) // 초기값 없을때만 지정, value-> 요소명 생략 가능- 애너테이션 메소드는 추상메소드, 적용시 전부 지정해야 함 3) 표준(자바 제공) 애너테이션- @Overide: 오버라이딩 메소드- @Deprecate..
[Java 요약 정리] 7. 열거형(Enums) 7. 열거형(Enums)1) 특징- 관련 상수들을 묶어놓은 것- 열거형 상수 비교에 == 혹은 compareTo() 사용 가능(기타 비교연산자 사용 불가)- 비교시 상수값이 같아도 열거형 타입이 다르면 false 반환 2) 목적- 안정성 향상: 객체 범위 제한- 소스 가독성 향상: 상수의 사용 목적 및 해석 용이 3) 사용- enum 열거형이름 {상수1(값), 상수2(값)....} // 값 미입력시 0부터 순차 입력- Class getDelcaringClass(): 열거형 클래스 객체 반환 4) 메소드- String name(): 열거형 상수명 문자열로 반환- int ordinal(): 열거형 상수가 정의된 순서 반환(0부터 시작)- T valueOf(Class enumType, String name):..
[Java 요약 정리] 6. 지네릭스(Generics) 6. 지네릭스(Generics)- 컴파일시 타입을 체크해주는 기능(JDK 1.5)- 목적: 안정성 향상(객체 타입 제한), 편의성 향상(형변환 불필요) 1) 특징- 클래스 작성시 Object 타입 대신 T와 같은 타입변수 사용(T: 타입변수명 예시)- 참조변수, 생성자에 타입변수 대신 실제 타입을 지정하면 형변환 생략 가능- static멤버에는 타입 변수 사용 불가(타입변수는 인스턴스 변수로 간주)- 지네릭 타입 배열 (ex. T[]) 생성 불가 2) 용어- Box(예시): 지네릭 클래스(T Box 혹은 T의 Box)- T: 타입 문자/ 타입 변수, 타입 매개변수- Box: 원시 타입(raw type) 3) 지네릭 클래스와 메소드- 클래스: Class 클래스명{}- 메소드: static void 메소드명..
[Java 요약 정리] 5. 컬렉션 프레임워크(Collections Framework) 5. 컬렉션 프레임워크(Collections Framework)- 컬렉션: 여러 객체(데이터)를 모아놓은 것을 의미- 프레임워크: 표준화 정형화된 체계적인 프로그래밍 방식- 컬렉션 프레임워크: 컬렉션을 다루기 위한 표준화된 프로그래밍 방식(java.util 패키지에 포함)- 컬렉션 클래스: 다수의 데이터를 저장할 수 있는 클래스 1) 컬렉션 프레임워크의 핵심 인터페이스- List: 순서가 있는 데이터의 집합(중복 허용)*ArrayList, LinkedList, Stack, Vector 등- Set: 순서를 유지하지 않는 데이터의 집합(중복 불허)*HashSet, TreeSet 등- Map: 키와 값의 쌍으로 이루어진 데이터의 집합(키 중복 허용, 값 중복 불허, 순서미유지)*HashMap, TreeMap..