Java

    스레드(Thread)

    1. 스레드 기본 개념설명프로그램 : 아직 실행하지 않은 소스코드프로세스 : 운영체제로부터 자원을 할당받은 작업의 단위 / 실행중인 프로그램스레드 : 프로세스가 할당받은 자원을 이용하는 실행 흐름의 단위하나의 프로세스 안에서 진행되는 작업들스레드 : 프로세스 안에서 수행되는 작업다중 스레드 : 스레드가 여러개 있는 것프로세스 내부 구조프로그램을 실행하면 운영체제가 메모리에 프로세스를 할당Code 영역프로그래머가 작성한 소스코드가 저장되어 있습니다. 더 자세히 설명하자면 소스코드가 컴퓨터가 이해할 수 있는 기계어 형태로 저장되어 있습니다.Data 영역코드가 실행되면서 사용하는 전역 변수나 static 변수들이 저장되어 있습니다.Stack 영역함수가 호출되면 Stack 영역에 할당되며 함수가 종료되면 소멸합..

    스트림

    1. 스트림 소개, 종류설명자바8부터 제공배열이나 컬렉션을 가공하여 원하는 결과를 얻을 수 있다.Collection 인터페이스의 메서드로 스트림을 제공List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); for (int n: numbers) { if (n % 2 == 0) { System.out.println(n); } }List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10); numbers.stream() .filter(n -> n % 2 == 0) .forEach(System.out::println);장점사람이 읽기 쉬운 단어로 나타내어 가독성이 높아진다병렬처리가 가능하다종류java.util.s..

    이팩티브 자바-인터페이스

    🤦‍♂️1. 추상 클래스보다는 인터페이스를 우선하라설명자바가 제공하는 다중 구현 메커니즘추상 클래스인터페이스추상 클래스가 정의한 타입을 구현하는 클래스는 반드시 추상 클래스의 하위 클래스가 되어야 한다. 자바는 단일 상속만 지원하기 때문에 추상 클래스 방식은 새로운 타입을 정의하는데 큰 제약이 된다. 인터페이스가 선언한 메서드를 모두 정의하고 그 일반 규약을 잘 지킨 클래스는 다른 어떤 클래스를 상속했든 같은 타입으로 취급된다.기존 클래스 위에 새로운 추상 클래스를 끼워넣기는 어렵다. (하위 클래스들이 공동 상속을 해야하기 때문에) 기존 클래스에도 손쉽게 새로운 인터페이스를 구현할 수 있다.Mixin 정의에 맞지않다 클래스는 두 부모를 섬길 수 없고, 클래스 계층구조에는 믹스인을 삽입하기에 합리적인 위치..

    람다식

    람다식

    1. 람다식이란? 람다식 작성하기설명 보기람다식 : 함수를 간단한 식으로 표현하는 방법익명 함수를 생성하기 위한 식Runnable runnable = new Runnable() { // 익명 구현 객체 public void run() { ... } }Runnable runnable = () -> { ... }; // () 이후 : 람다식2. 기본 문법설명 보기(타입 매개변수, ...) -> { 실행문; ...; } (a) -> { System.out.println(a); }소괄호 : 중괄호 블록을 실행하기 위해 필요한 값을 제공 a -> System.out.println(a) // 매개 변수가 없어도 빈 괄호를 적어줘야 한다. () -> { 실행문 .. }//함수에 return 문만 있는 경우, 다음과 ..

    컬렉션

    1. Collection설명보기Collection : 요소를 수집해서 저장하는 것배열은 저장할 수 있는 객체 수가 생성할 때 결정되기 때문에 불특정 다수의 객체를 저장하기에 적합하지 X컬렉션 : 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에 관련된 인터페이스와 클래스들을 모아둔 것컬렉션 인터페이스와 그것을 구현한 클래스들:List : ArrayList, Vector, LinkedListSet : HashSet, TreeSetCollection인터페이스를 사용 : 객체를 추가, 삭제, 검색하는 방식이 유사Map : HashMap, Hashtable, TreeMap, PropertiesCollection인터페이스와 분리된 이유 : Key | Value 형태로 객체를 제공Col..