일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- junit 5
- yield
- annotation processor
- github api
- auto.create.topics.enable
- raw 타입
- throwable
- 스파르타코딩클럽
- 함수형 인터페이스
- 바운디드 타입
- 상속
- 자바할래
- 접근지시자
- 정렬
- 브릿지 메소드
- Study Halle
- 합병 정렬
- 항해99
- docker
- 자바스터디
- 프리미티브 타입
- System.out
- System.err
- 람다식
- 익명 클래스
- Switch Expressions
- 제네릭 와일드 카드
- 제네릭 타입
- System.in
- 로컬 클래스
- Today
- Total
목록Diary (125)
코딩하는 털보
목표 자바의 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..
STUDY HALLE 6주차 : 상속 목표 자바의 상속에 대해 학습하세요. 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바의 상속 이미 구현되어 있는 기존 클래스의 속성과 기능을 그 하위 클래스에서 사용하는 것을 상속이라고 한다. 기존의 클래스를 상속받아 기능을 확장하거나 새로 구현할때 사용할 수 있다. 이러한 상속 관계에 있는 상위 및 하위 클래스를 수퍼 클래스와 서브 클래스 또는 부모 클래스와 자식 클래스라고 한다. 참조 : 위키백과 상속 (객체 지향 프로그래밍) 클래스 상속받기 class B extends A { ... } 인터페이스 상속받기 interfac..
STUDY HALLE 5주차 : 클래스 목표 자바의 Class에 대해 학습하세요. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 클래스 정의하기 먼저 객체지향 프로그래밍의 용어에 대해 알게된 것. 객체(Object)란? 사전적으로는 의사나 행위가 미치..
과제 2. LinkedList를 구현하세요. LinkedList에 대해 공부하세요. 정수를 저장하는 ListNode 클래스를 구현하세요. ListNode add(ListNode head, ListNode nodeToAdd, int position)를 구현하세요. ListNode remove(ListNode head, int positionToRemove)를 구현하세요. boolean contains(ListNode head, ListNode nodeTocheck)를 구현하세요. 과제 3. Stack을 구현하세요. int 배열을 사용해서 정수를 저장하는 Stack을 구현하세요. void push(int data)를 구현하세요. int pop()을 구현하세요. 과제 4. 앞서 만든 ListNode를 사용해서..