Java/whiteship-java-study

    10주차 멀티쓰레드 프로그래밍

    목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 Process vs Thread 프로세스(Process) 사전적 의미 : 일의 과정이나 공정 프로그램의 인스턴스, 실행된 프로그램 이미 메모리에 적재되어 있음 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 됨 쓰레드(Thread) 한 프로세스 내에서 동시에 실행 가능한 단위 Java 에서는 JVM 이 모든 thread 관리 프로세스라는 작업공간에서 실제로 작업을 처리하는 일꾼 프로세스의 자원을 이용해서 작업을 수행함 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재 쓰레드가 하나(싱글 쓰..

    9주차 예외 처리

    목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 프로그램 실행도중에 발생하는 에러는 어쩔 수 없지만, 예외(Exception)은 프로그래머가 미리 대처를 할 수 있다. 그러나 사용자의 원인으로 발생하는 예외는 개발자가 미리 대처를 해줄 수 있다. ​ 예외 처리(exception handling)란, 프로그래머가 예기치못한 예외의 발생에 미리 대처하는 코드..

    8주차 인터페이스

    목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스와 추상클래스의 차이점 추상(abstract) 클래스와 인터페이스(interface) 공통점과 차이점 추상(abstract) : ->사물이 지니고 있는 여러 가지 측면 가운데서 특정한 측면만을 가려내어 포착하는 것 객체의 개념을 이용하여 객체들을 여러 그룹으로 분류함으로써 얻는 장점이 무엇이 있을까? 객체 간의 차이점은 무시하고 객체들 간의 공통점을 파악하기 쉬움 객체..

    7주차 패키지

    목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 패키지 (package) 패키지란 많은 클래스들을 체계적으로 관리하기 위해 존재한다. 패키지의 물리적인 형태는 "파일 시스템의 폴더" 이다. 또한, 파일 시스템의 폴더 기능만이 아니라 클래스의 일부분이다. 소스에 가장 첫 줄에 있어야하고, 패키지 선언은 소스 하나에 하나만 있어야한다. 패키지 이름과 위치한 폴더의 이름이 같아야한다. 패키지이름을 java 로 시작하면 안된다. 패키지는 폴더 또는 디렉토리로서, 우리는 기능이나 특징이 비슷한 클래스를 한대모아 하나의 패키지 않에 넣는다. 서로 관련된 있는 것을 묶어놓..

    5주차- 클래스

    백기선 님의 유튜브 온라인 자바 스터디를 정리한 글입니다 목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 마감일시 2020년 12월 19일 토요일 오후 1시까지. 과제 (Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. Class 정의하는..

    6주차 - 상속

    목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 상속 : Inheritance 상속이란, 부모 클래스의 변수와 메소드를 자식 클래스가 상속 받는 것을 의미한다 상속을 사용하면, 코드를 재사용하기에 편리하고, 클래스간의 계층구조를 분리하며 관리하기 쉬워진다. 상속 키워드 : extends public class Parent {} public class Child extends Parent{} extends 키워드를 사용하여 부모 클래스를 명시하고 상속받을 수 있다. 상속 받는 클래스 (ex: child)를 ..

    4주차 - 제어문

    백기선 님의 유튜브 온라인 자바 스터디를 정리한 글입니다 4주차 - 제어문 목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 (필수) 선택문 반복문 제어문 제어문이란 주어진 조건에 따라 코드 블록을 실행하거나 반복실행 할 때 사용한다. 일반적으로 코드는 위에서 아래로 순차적으로 실행된다. 제어문은 코드의 실행순서를 인위적으로 제어할 수 있다. 선택문 제어문 중 if, if ~ else, switch문 입니다. if문 문법 : if (condition) {코드 실행 블록} condition은 조건식이나 조건문. 변수나 조건식 메서드가 들어갈 수 있습니다. 조건이 참(true)이면 코드 블록을 실행, 거짓(false) 라면 코드 블록을 실행하지 않습니다. 실행 블록 내의 코드가 한 줄인 경우 중괄호를 생..

    3주차 - 자바 연산자

    백기선 님의 유튜브 온라인 자바 스터디를 정리한 글입니다 3주차 - 연산자 목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 연산 연산 (operations) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것 연산자 (operator) : 연산에 사용되는 표시나 기호 피연산자 (operand) : 연산의 대상이 되는 데이터 연산식 (expressions) : 연산자와 피연산자로 연산의 과정을 기술한 것출처: https://xxxelppa.tistory.com/196?categ..

    2주차 - 자바 데이터 타입, 변수 그리고 배열

    백기선 님의 유튜브 온라인 자바 스터디를 정리한 글입니다 2주차 WEEK 02 :: 자바 데이터 타입, 변수 그리고 배열 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 Primitive Type : 원시 타입, 기본형 타입. 변수의 주소 값에 값이 그대로 저장되는 데이터 타입 값이 할당되면서 실제 값을 JVM의 Runtime Data Area 영역 중 Stack 영역에 값이 저장 기본 값이 있기 때문에 Null이 존재하지 않는다. Null을 넣고 싶다면 래퍼(Wrapp..

    1주차 - JVM은 무엇이며 어떻게 실행하는 것인가?

    백기선 님의 유튜브 온라인 자바 스터디를 정리한 글입니다 1주차 목표 자바 소스 파일(.java)을 JVM으로 실행하는 과정 이해하기. 학습할 것 JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JVM 구성 요소 JDK와 JRE의 차이 JVM이란 무엇인가 JVM : Java Virtual Machine의 줄임말(자바 가상 머신) 자바를 실행하기 위한 가상 머신. 자바 바이트코드(java ByteCode)를 실행할 수 있는 주체이다. 자바 바이트코드는 플랫폼(os 등)에 독립적이며 종속받지 않고 실행되는데, 대신 OS 위에서 Java를 실행시킬 것이 필요하다. 그것이 바로 JVM이다. .java파일을 Java Compiler가 .clas..