일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- buffer
- C 언어 코딩 도장
- Graph
- stream
- Selection Sorting
- 이스케이프 문자
- insertion sort
- 윤성우 열혈자료구조
- JSON
- Stack
- 혼자 공부하는 C언어
- datastructure
- 이것이 자바다
- 알기쉬운 알고리즘
- C programming
- Serialization
- coding test
- Algorithm
- 윤성우의 열혈 자료구조
- R
- 메모리구조
- list 컬렉션
- s
- Today
- Total
목록Programming Language/Java (38)
Engineering Note
1. 람다식이란?Lambda expression(람다 표현식, 람다식)- 메서드를 하나의 식(expression)으로 표현한 것.- 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 '익명함수(anonymous fuction)'라고도 한다. 예시//메서드int method() { return (int) (Math.random()*5) + 1;}//람다식int[] arr = new int[5];Arrays.setAll(arr, (i) -> (int)(Math.random()*5) + 1; 람다식의 장점- 모든 메서드가 클래스에 포함되어야 한것과 달리, 람다식은 오직 람다식 자체만으로 메서드의 역할을 대신할 수 있다. 2.람다식 작성하기람다식은 '익명 함수'답게 메서드에서 메서드..
Stream- Java8부터 도입된 컬렉션 및 배열의 요소를 반복처리 하기 위한 기술- for문과 Iterator와 비교해 가독성이 좋고, 재사용성이 좋다.- Stream을 이용하면 배열이나 컬렉션뿐만 아니라 파일에 저장된 데이터도 모두 같은 방식으로 다룰 수 있다. Stream은 중간 연산과 최종 연산이 있다.중간 연산은 연산 결과가 스트림인 연산, 스트림에 연속해서 중간 연산을 할 수 있다. 최종 연산은 연산 결과가 스트림이 아닌 연산이다. 스트림의 요소를 소모하므로 단 한번만 사용할 수 있다.중간 연산 예시 : map(), filter()최종 연산 예시 : forEach(), count() 변환 - map()- 스트림의 요소에 저장된 값 중에서 원하는 필드만 뽑아내거나 특정 형태로 변환해야 할 ..
Thread 구현 방법- Runnable 인터페이스 구현(Thread 클래스로 직접 생성)- Thread 클래스를 상속 => Thread 클래스를 상속받으면 다른 클래스를 상속받을 수 없기 때문에, Runnable 인터페이스를 구현하는 방법이 일반적이다. Runnable 인터페이스 구현(Thread 클래스로 직접 생성)- Thread 클래스로부터 작업 스레드 객체를 직접 생성하려면 다음과 같이 Runnable 구현 객체를 매개값으로 갖는 생성자를 호출하면 된다.Thread thread = new Thread(Runnable target); Runnable- Thread가 작업을 실행할 때 사용하는 인터페이스이다. Runnable 인터페이스에는 run() 메서드가 정의되어 있는데, 구현 클래스는 run..
JVM 메모리의 3가지 주요 영역- method area, call stack, heap call stack(call stack area)- stack 자료구조를 기반으로 메서드 호출을 추적하는 공간, JVM이 thread마다 만들어 줌.- 간단하게 stack area라고도 함. stack frame- 메서드가 호출될 때, call stack에 push되는 단위. 지역변수, 매개변수, 리턴 주소 등이 들어있음.- call stack area에 차례대로 저장되는 메서드의 호출 정보 main thread- Java 프로그램 실행시 JVM이 자동으로 만들어주는 최초의 thread, main() 메서드를 실행함. [JVM 시작] │ ▼[Main Thread 생성] ← OS에서 실제 실행 단위..

Interface는 두 장치를 연결하는 접속기다. Java에서는 객체들을 각각의 장치로 볼 수 있다. 그래서 Java에서 Interface는 두 객체를 연결하는 역할을 한다. 객체 A - Interface - 객체 B 객체 A는 Interface를 통해 객체 B와 연결되어 있다. 객체 A는 Interface를 통해 객체 B를 사용할 수 있다. 그런데 객체 A가 객체 B를 직접 호출할 수도 있는데 왜 Interface를 통해 호출할까? 여기서 요즘 시스템 디자인에서도 중요한 노드 간(객체간) 느슨한 결합을 위해서다. 시스템 디자인에서도 리퀘스트를 보내는 클라이언트와 응답을 하는 서버간의 강하게 결합이 되어 있다면, 빠르게 성장하는 서비스를 위해 서버를 수평확장해야하거나 새로운 기능을 추가할 때 어려움을 겪..
Reader 객체문자 데이터가 외부에서 Java 애플리케이션으로 들어오는 스트림(흐름)을 읽어오는 책임을 맞는 객체외부에서 들어오는 문자데이터를 자바 프로그램이 사용할 수 있도록 연속적으로 읽어오는 역할.abstract classReader 객체 자체는 Buffer기능이 없음. BufferedReader 객체inputStream으로 부터 텍스트를 읽는 역할extends ReaderReader 객체에 버퍼기능을 더해 입출력 성능을 향상 시킨 객체 InputStreamReaderbyte 입력 스트림을 문자 입력 스트림으로 변환하는 역할즉, "0101010...(byte)"를 "글자(String)"로 바꿔줌extends Reader [InputStream] (byte) |[InputStreamRea..
직렬화(Serialization)- Java Object(객체)를 Byte Stream(바이트 스트림)으로 변환하는 과정 직렬화는 하는 이유- Java Object는 JVM이 정한 규칙에 따라 메모리에 저장되어 있는데 이는 외부(OS, 네트워크)에서 해석할 수 없다. 외부와 데이터를 주고받기 위해서는 직렬화 규칙에 따라 연속적인 바이트 흐름(스트림)으로 변환하는 과정을 거쳐야 한다. - 직렬화한 바이트 스트림은 OS가 읽어서 파일로 저장하거나 네트워크로 내보낼 수 있다.

프로그램 에러, 오류- 프로그램이 실행 중 어떤 원인에 의해서 오작동 하거나 비정상적으로 종료 되는 경우 컴파일 에러- 컴파일시에 발생하는 에러 런타임 에러- 실행시에 발생하는 에러- 런타임 에러는 다시 에러(error)와 예와(exception)으로 구분한다. - 런타임 error: 프로그램 코드에 의해서 수습될 수 없는 심각한 오류. ex)메모리 부족, 스택오버플로우 - (런차임) exception: 프로그램 코드에 의해서 수습될 수 있는 다소 미약한 오류. 프로그래머의 적절한 코드로 비정상적 종료를 막을 수 있다. 논리적 에러- 실행은 되지만, 의도와 다르게 동작하는 것.예외 클래스의 계층 구조- 자바는 실행 시 발생할 수 있는 오류를 미리 클래스로 정의했다.- 모든 예외는 Exception 클..