ysk(0soo)
Lifealong
ysk(0soo)
전체 방문자
오늘
어제
  • 분류 전체보기 (238)
    • Java (50)
      • whiteship-java-study (11)
      • Java (28)
      • time (6)
    • Spring (68)
      • JPA (15)
      • Spring (1)
      • SpringBoot (1)
      • SpringMVC (6)
      • Spring Security (22)
      • Jdbc (1)
      • RestDocs (14)
      • log (6)
    • Kotlin (3)
    • Web (2)
      • nginx (1)
    • Database (14)
      • MySQL (5)
      • PostgreSQL (1)
      • SQL (1)
      • Redis (4)
    • C, C++ (0)
    • Git (1)
    • Docker (2)
    • Cloud (3)
      • AWS (3)
    • 도서, 강의 (0)
      • t5 (0)
    • 기타 (7)
      • 프로그래밍 (1)
    • 끄적끄적 (0)
    • CS (14)
      • 운영체제(OS) (2)
      • 자료구조(Data Structure) (9)
    • 하루한개 (12)
      • 우아한 테크코스-10분테코톡 (12)
    • 스터디 (12)
      • 클린 아키텍처- 로버트마틴 (2)
      • JPA 프로그래밍 스터디 (10)
    • 테스트 (34)
      • JUnit (19)
      • nGrinder (2)
      • JMeter (0)
    • Infra (3)
    • 프로그래머스 백엔드 데브코스 3기 (0)
    • 디자인 패턴 (3)
    • Issue (4)
    • system (1)
      • grafana (0)
      • Prometheus (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • github

공지사항

인기 글

태그

  • tree
  • 정규표현식
  • 트랜잭션
  • nginx basic auth
  • 가상 스레드
  • restdocs enum
  • AccessDecisionVoter 커스텀
  • AuthenticationException
  • scope value
  • DataJpaTest
  • StructuredConcorrency
  • UserDetailsService
  • restdocs custom
  • AccessDecisionManager
  • 가상 스레드 예외 핸들링
  • 구조화된 동시성
  • nGrinder
  • 동일성
  • node exporter basic auth
  • java
  • 동시성 제어
  • FilterSecurityInterceptor
  • mysql
  • VirtualThread Springboot
  • junit5
  • jpa
  • 동등성
  • querydsl
  • LocalDateTime
  • 인가(Authorization) 처리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ysk(0soo)

Lifealong

Java/whiteship-java-study

Whiteship Java Study 목차

2022. 7. 30. 01:25

WEEK 01 :: JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가.

  • JVM 이란 무엇인가
  • 컴파일 하는 방법
  • 실행하는 방법
  • 바이트코드란 무엇인가
  • JIT 컴파일러란 무엇이며 어떻게 동작하는지
  • JVM 구성요소
  • JDK 와 JRE의 차이

WEEK 02 :: 자바 데이터 타입, 변수 그리고 배열

  • 프리미티브 타입 종류와 값의 범위 그리고 기본 값
  • 프리미티브 타입과 레퍼런스 타입
  • 리터럴
  • 변수 선언 및 초기화하는 방법
  • 변수의 스코프와 라이프타임
  • 타입 변환, 캐스팅 그리고 타입 프로모션
  • 1차 및 2차 배열 선언하기
  • 타입 추론, var

WEEK 03 :: 연산자

  • 산술 연산자
  • 비트 연산자
  • 관계 연산자
  • 논리 연산자
  • instanceof
  • assignment(=) operator
  • 화살표(->) 연산자
  • 3항 연산자
  • 연산자 우선 순위
  • (optional) Java 13. switch 연산자

WEEK 04 :: 제어문

  • 선택문

  • 반복문

  • 과제

    • live-study 대시 보드를 만드는 코드를 작성하세요.
      • 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크 할 것.
      • 참여율을 계산하세요. 총 18회에 중에 몇 %를 참여했는지 소숫점 두자리가지 보여줄 것.
      • Github 자바 라이브러리를 사용하면 편리합니다.
      • 깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다.
    • LinkedList를 구현하세요
      • LinkedList에 대해 공부하세요.
      • 정수를 저장하는 ListNode 클래스를 구현하세요.
      • ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요.
      • ListNode remove(ListNode head, int positionToRemove)를 구현하세요.
      • boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요.
    • Stack을 구현하세요.
      • int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요.
      • void push(int data)를 구현하세요.
      • int pop()을 구현하세요.
    • 앞서 만든 ListNode를 사용해서 Stack을 구현하세요.
      • ListNode head를 가지고 있는 ListNodeStack 클래스를 구현하세요.
      • void push(int data)를 구현하세요.
      • int pop()을 구현하세요.
    • (optional) Queue를 구현하세요.
      • 배열을 사용해서 한번
      • ListNode를 사용해서 한번.

WEEK 05 :: 클래스

  • 클래스 정의하는 방법

  • 객체 만드는 방법 (new 키워드 이해하기)

  • 메소드 정의하는 방법

  • 생성자 정의하는 방법

  • this 키워드 이해하기

  • 과제 (Optional)

    • int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요.
    • int value, Node left, right를 가지고 있어야 합니다.
    • BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요.
    • DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요.

WEEK 06 :: 상속

  • 자바 상속의 특징
  • super 키워드
  • 메소드 오버라이딩
  • 다이나믹 메소드 디스패치 (Dynamic Method Dispatch)
  • 추상 클래스
  • final 키워드
  • Object 클래스

WEEK 07 :: 패키지

  • package 키워드
  • import 키워드
  • 클래스패스
  • CLASSPATH 환경변수
  • -classpath 옵션
  • 접근지시자

WEEK 08 :: 인터페이스

  • 인터페이스 정의하는 방법
  • 인터페이스 구현하는 방법
  • 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법
  • 인터페이스 상속
  • 인터페이스의 기본 메소드 (Default Method), 자바 8
  • 인터페이스의 static 메소드, 자바 8
  • 인터페이스의 private 메소드, 자바 9

WEEK 09 :: 예외 처리

  • 자바에서 예외 처리 방법 (try, catch, throw, throws, finally)
  • 자바가 제공하는 예외 계층 구조
  • Exception과 Error의 차이는?
  • RuntimeException과 RE가 아닌 것의 차이는?
  • 커스텀한 예외 만드는 방법

WEEK 10 :: 멀티쓰레드 프로그래밍

  • Thread 클래스와 Runnable 인터페이스
  • 쓰레드의 상태
  • 쓰레드의 우선순위
  • Main 쓰레드
  • 동기화
  • 데드락

WEEK 11 :: Enum

  • enum 정의하는 방법
  • enum이 제공하는 메소드 (values()와 valueOf())
  • java.lang.Enum
  • EnumSet

WEEK 12 :: 애노테이션

  • 애노테이션 정의하는 방법
  • @retention
  • @target
  • @documented
  • 애노테이션 프로세서

WEEK 13 :: I/O

  • 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O
  • InputStream과 OutputStream
  • Byte와 Character 스트림
  • 표준 스트림 (System.in, System.out, System.err)
  • 파일 읽고 쓰기

WEEK 14 :: 제네릭

  • 제네릭 사용법
  • 제네릭 메소드 만들기
  • 제네릭 주요 개념(바운디드 타입, 와일드 카드)
  • Erasure

WEEK 15 :: 람다식

  • 람다식 사용법
  • 함수형 인터페이스
  • Variable Capture
  • 메소드, 생성자 레퍼런스

'Java > whiteship-java-study' 카테고리의 다른 글

6주차 - 상속  (0) 2022.08.28
4주차 - 제어문  (0) 2022.08.15
3주차 - 자바 연산자  (0) 2022.07.31
2주차 - 자바 데이터 타입, 변수 그리고 배열  (0) 2022.07.31
1주차 - JVM은 무엇이며 어떻게 실행하는 것인가?  (0) 2022.07.30
    'Java/whiteship-java-study' 카테고리의 다른 글
    • 4주차 - 제어문
    • 3주차 - 자바 연산자
    • 2주차 - 자바 데이터 타입, 변수 그리고 배열
    • 1주차 - JVM은 무엇이며 어떻게 실행하는 것인가?
    ysk(0soo)
    ysk(0soo)
    백엔드 개발을 좋아합니다. java kotlin spring, infra 에 관심이 많습니다. email : kim206gh@naver.com github : https://github.com/devysk

    티스토리툴바