일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 프리미티브 타입
- Study Halle
- 함수형 인터페이스
- 제네릭 와일드 카드
- System.out
- Switch Expressions
- github api
- 브릿지 메소드
- raw 타입
- System.err
- 정렬
- 바운디드 타입
- 스파르타코딩클럽
- 자바스터디
- yield
- 제네릭 타입
- throwable
- System.in
- 람다식
- 항해99
- 합병 정렬
- 익명 클래스
- 로컬 클래스
- annotation processor
- 접근지시자
- 상속
- docker
- auto.create.topics.enable
- junit 5
- 자바할래
- Today
- Total
목록Diary/Study Halle (18)
코딩하는 털보
처음에 3회차쯤 할때부터 부랴부랴 시작했었는데, 솔직히 처음에는 "이거 그냥 혼자 공부하고 정리하는 컨텐츠자나? 대충해서 올려야지" 하는 마음이 있었습니다. 그러다가 9주차 리뷰때였었나 선장님한테 여러명 혼났던 "Checked Exception" 사건에서 저도 같이 혼나면서 그 전까지의 잘못을 뉘우치게 되었지요. 그리고 그 주였나 그 다음주에 선장님 고등학생 시절 얘기 들으면서도 어떻게 공부해야 하는지부터 어떻게 살아가야 하는지 까지 참 많은 생각을 하게 되었습니다. 일단은 선장님 하트 한번이라도 받고 스터디 마치자는 단기적인 목표가 생기더군요, 그래서 이때부터 오라클 자바 공식문서 위주로 공부하기 시작했습니다. 시간은 좀 더 오래걸리긴 하지만 얻게되는 지식의 깊이 차이가 이전에 견줄바가 되지 않아 너무..
목표 자바의 람다식에 대해 학습하세요. 학습할 것 익명 클래스 로컬 클래스 Variable Capture 익명 클래스 람다식 사용법 람다식 람다식 사용법 함수형 인터페이스 메소드, 생성자 레퍼런스 익명 클래스 로컬 클래스 메소드 구현부에서 정의되는 클래스, 모든 메소드 블록 내에 로컬 클래스를 정의 할 수 있다. Cafe 클래스의 addMusic 메소드 구현부에 있는 Music 클래스 public class Cafe { List musicList = new ArrayList(); public List getMusicList() { return musicList; } public void addMusicOnList(String name, String singer) { int listNumber = 1; c..
목표 자바의 제네릭에 대해 학습하세요. 학습할 것 제네릭 제네릭을 사용하는 이유 자바 제네릭 제네릭 사용법 제네릭 클래스 선언하기 제네릭 타입 호출하기 다이아몬드 여러개의 타입 파라미터 raw 타입 제네릭 메소드 제네릭 주요 개념 (바운디드 타입, 와일드 카드) 바운디드 타입 와일드 카드 Type Erasure Erasure 브릿지 메소드 제네릭 타입 주의사항 전체적으로 아래 문서를 참조하였고 부분적으로는 각 파트에 명시함. https://docs.oracle.com/javase/tutorial/java/generics/index.html 자바 제네릭 Generics를 사용하는 이유 간단히 말해서 제네릭은 클래스, 인터페이스 및 메서드를 정의 할 때 자료형이 매개 변수가되도록한다. 메서드 선언에 사용되는..
목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림, 버퍼, 채널 기반 I/O I/O 스트림 Byte 스트림 Character 스트림 Buffered 스트림 java.nio 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 이번 스터디는 대체적으로 Oracle Java Tutorials 문서와 자바 관련 서적(Do it! 자바 프로그래밍 입문)을 참조하였다. https://docs.oracle.com/javase/tutorial/essential/io/ 스트림, 버퍼, 채널 기반 I/O 스트림 기반 I/O 스트림은 데이터가 이동하는 단방향통로를 의미한다. FIFO 구조를 가지고 있으며 일련적으로 밖에 접근할 수 없기 때문에 특정 ..
목표 자바의 애노테이션에 대해 학습하세요. 학습할 것 Java Ennotation 애노테이션을 정의하는 방법 Java 언어에서 사용되는 애노테이션 다른 애노테이션에 적용되는 애노테이션 애노테이션 프로세서 Java Ennotation 애노테이션은 프로그램의 일부가 아닌 프로그램에 대한 데이터(메타 데이터)를 제공한다. 애노테이션은 애노테이션이 추가 된 코드의 작동에 직접적인 영향을 주지 않는다. 애노테이션의 용도 컴파일러를 위한 정보 컴파일러는 애노테이션을 사용하여 오류를 감지하거나 경고를 숨길 수 있다. Compile-time 및 deployment-time 처리 (애노테이션 프로세서) 소프트웨어 도구는 애노테이션 정보를 처리하여 코드, XML 파일 등을 생성할 수 있다. 런타임 처리 일부 애노테이션은 ..
STUDY HALLE 11주차 : Enum 목표 자바의 열거형에 대해 학습하세요. 학습할 것 enum 정의하는 방법 enum이 제공하는 메소드 java.lang.Enum EnumSet / EnumMap Enum Type enum type은 특수한 데이터 타입으로, 미리 정의된 상수(enum constant)의 모음이다. 과거에는 int Enum 패턴을 통해 열거형을 나타내었으나, //과거의 enum 표현법 public static final int DAY_SUNDAY = 0; public static final int DAY_MONDAY = 1; public static final int DAY_TUESDAY = 2; public static final int DAY_WEDNESDAY = 3; publi..
STUDY HALLE 10주차 : 멀티쓰레드 프로그래밍 목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 Thread 클래스와 Runnable 인터페이스 쓰레드의 상태 쓰레드의 우선순위 Main 쓰레드 동기화 데드락 멀티쓰레드 프로그래밍 ? Thread ? 예전에는 프로그램을 실행하는 흐름이 오로지 프로세스뿐이었으나, 소프트웨어가 진보하면서 하나의 프로그램에서 복잡한 동시 작업을 요구하기 시작하였다. 이를 위해서는 하나의 프로그램이 여러개의 프로세스를 만들어야 했는데 프로세스 특성상 하나의 프로그램이 이러한 동시 작업을 수월하게 할 수가 없었다. 그래서 프로세스보다 더 작은 실행 단위 개념이 만들어지게 되는데 이것이 쓰레드이다. 하나의 프로세스에서 여러개의 쓰레드가 메모리를 공유하여 작동할..
STUDY HALLE 9주차 : 예외 처리 목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는? RuntimeException과 RE가 아닌 것의 차이는? 커스텀한 예외 만드는 방법 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 프로그래밍 용어의 예외 프로그래밍 언어에서 명령을 실행할 시, 입력 값과 계산 대상의 자료형을 함수에서 지원하지 않거나, 함수에서 대상을 계산할 수 없을 때 나오는 오류이다. 프로그래밍 시 이를 미리 예측하고 그에 대한 대처법(예외 처리, Exception Handling)..
STUDY HALLE 8주차 : 인터페이스 목표 자바의 인터페이스에 대해 학습하세요. 학습할 것 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 인터페이스 정의하는 방법 인터페이스(interface)는 클래스들이 구현해야 하는 추상메소드를 지정해 놓는데 사용되는 추상 자료형이다. 인터페이스는 interface라는 키워드를 사용하여 선언하며, 메소드 시그니처(메소드의 이름과 매개변수 리스트)와 상수 선언(static과 final이 둘 다 선언되는 변수 선언)만을 포함할 수 있다. 자바 8..
STUDY HALLE 7주차 : 패키지 목표 자바의 패키지에 대해 학습하세요. 학습할 것 package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 -classpath 옵션 접근지시자 package 키워드 자파 패키지는 여러 자바 클래스들을 구분하여 담고있는 정리함이다. 패키지는 Jar 파일로 압축할 수 있어서 클래스들을 하나씩이 아닌 묶음으로 더 빠르게 다운로드할 수 있게 한다. 클래스가 속하는 패키지는 package라는 키워드와 함께 지정된다. 이 키워드는 일반적으로 소스 파일에서 처음 오는 키워드이다. package 패키지이름;만약 클래스가 특정 패키지내에 들어간다면 java 명령어로 실행시 패키지 이름을 주어야한다. package myclass.util; public class..