개인공부/java(11)
-
자바의정석 - Chapter 2 변수
1. 변수 1.1 변수(variable)란? 단 하나의 값을 저장할 수 있는 메모리상의 공간 1.2 변수의 선언과 초기화 변수 타입 : 변수에 저장될 값이 어떤 '타입(type)'인지 지정 변수이름: 메모리 공간에 이름을 붙여주는 것. 변수의 초기화 : 변수를 사용하기 전에 처음으로 값을 저장하는 것 초기화 이유 : 메모리는 여러 프로그램이 공유하는 자원이므로 전에 다른 프로그램에 의해 저장된 '알 수없는 값(쓰레기값, garbage value)'이 남아있을 수 있기 때문. 1.3 변수의 명명규칙 변수의 이름 처럼 프로그래밍에 사용하는 모든 이름을 식별자 라고 하며, 식별자는 같은 영역 내에서 서로 구분될수 있어야한다. 규칙 대소문자가 구분되며 길이에 제한이 없다. 예약어를 사용해서는 안 된다. 숫자로 ..
2020.11.17 -
자바의 정석 - Chapter 01 자바를 시작하기 전에
제가 따로 보기 위해 제 기준으로 요약하고 건너뛴 부분이 있습니다. 처음 자바를 공부하신 분이라면 학습하는데 있어 왜곡이 생길수도 있으니 그 점 주의하시면서 참고해주시면 감사하겠습니다. :) 1. 자바 ( Java Programming Language) 1.1 자바란? C++의 장점을 채택하는 동시에 잘 사용되지 않는 부분은 과감히 제외 풍부한 클래스 라이브러리(Java API)를 통해 프로그래밍에 필요한 요소들을 기본적으로 제공 1.2 자바의 역사 JVM (Java Virtual Machine) 자바 가상 머신으로 자바 바이트 코드(.class 파일)를 OS에 특화된 코드로 변환(인터프리터와 JIT 컴파일러)하여 실행한다. 바이트 코드를 실행하는 표준(JVM 자체는 표준)이자 구현체(특정 밴더가 구현한..
2020.11.16 -
Java - Executors
15. Executors 고수준 (High-Level) Concurrency 프로그래밍 ● 쓰레드를 만들고 관리하는 작업을 애플리케이션에서 분리. ● 그런 기능을 Executors에게 위임. Executors가 하는 일 ● 쓰레드 만들기: 애플리케이션이 사용할 쓰레드 풀을 만들어 관리한다. ● 쓰레드 관리: 쓰레드 생명 주기를 관리한다. ● 작업처리및실행:쓰레드로실행할작업을제공할수있는API를제공한다. 주요 인터페이스 ● Executor: execute(Runnable) ● ExecutorService: Executor 상속 받은 인터페이스로, Callable도 실행할 수 있으며, Executor를 종료 시키거나, 여러 Callable을 동시에 실행하는 등의 기능을 제공한다. ● ScheduledExecu..
2020.09.28 -
Java- Concurrent 프로그래밍
14. 자바 Concurrent 프로그래밍 소개 Concurrent 소프트웨어 ● 동시에여러작업을할수있는소프트웨어 ● 예)웹브라우저로유튜브를보면서키보드로문서에타이핑을할수있다. ● 예)녹화를하면서인텔리J로코딩을하고워드에적어둔문서를보거나수정할수있다. 자바에서 지원하는 컨커런트 프로그래밍 ● 멀티프로세싱 (ProcessBuilder) ● 멀티쓰레드 자바 멀티쓰레드 프로그래밍 ● Thread / Runnable Thread 상속 public static void main(String[] args) { HelloThread helloThread = new HelloThread(); helloThread.start(); System.out.println("hello : " + Thread.currentThread(..
2020.09.28 -
Java - Date와 Time Api
13. Date와 Time API 지금 이 순간을 기계 시간으로 표현하는 방법 ● Instant.now(): 현재 UTC (GMT)를 리턴한다. ● Universal Time Coordinated == Greenwich Mean Time 인류용 일시를 표현하는 방법 ● LocalDateTime.now(): 현재 시스템 Zone에 해당하는(로컬) 일시를 리턴한다. ● LocalDateTime.of(int, Month, int, int, int, int): 로컬의 특정 일시를 리턴한다. ● ZonedDateTime.of(int, Month, int, int, int, int, ZoneId): 특정 Zone의 특정 일시를 리턴한다. 기간을 표현하는 방법 ● Period / Duration . beteen() ..
2020.09.27 -
JAVA - stream
pararelleStream. 병렬처리가 항상 빠른 것은 아니다. 병렬처리가 효과가 클때는 데이터가 정말 방대할 때이다. 8. Stream 소개 Stream ● sequence of elements supporting sequential and parallel aggregate operations ● 데이터를 담고 있는 저장소 (컬렉션)이 아니다. ● Funtional in nature, 스트림이 처리하는 데이터 소스를 변경하지 않는다. ● 스트림으로 처리하는 데이터는 오직 한번만 처리한다. ● 무제한일 수도 있다. (Short Circuit 메소드를 사용해서 제한할 수 있다.) ● 중개 오퍼레이션은 근본적으로 lazy 하다. ● 손쉽게병렬처리할수있다. 스트림 파이프라인 ● 0 또는 다수의 중개 오퍼레이..
2020.09.27