백기선 스터디
-
13. I/OJava 2021. 2. 24. 20:17
목표 자바의 Input과 Ontput에 대해 학습하세요. 학습할 것 (필수) 스트림 (Stream) / 버퍼 (Buffer) / 채널 (Channel) 기반의 I/O InputStream 과 OutputStream Byte 와 Character 스트림 표준 스트림 (System.in, System.out, System.err) 파일 읽고 쓰기 I/O Input / Output 의 준말로, 프로그램 외부로 부터의 입력과 출력을 의미한다. Java 에서는 java.io 패키지에 있다. New I/O Java 1.4 부터 추가된 API 로 Non-blocking 처리가 가능하며, Stream 이 아닌 Channel 을 사용한다. java.nio 패키지에 있다. I/O vs New I/O Stream 단방향으로..
-
10. 멀티쓰레드 프로그래밍Java 2021. 1. 27. 14:38
목표 자바의 멀티쓰레드 프로그래밍에 대해 학습하세요. 학습할 것 (필수) Thread 클래스와 Runnable 인터페이스 스레드의 상태 스레드의 우선순위 Main 스레드 동기화 데드락 Thread 클래스와 Runnable 인터페이스 Java 에서 쓰레드를 생성하는 방법에는 Thread 클래스 상속받기, Runnable 인터페이스 구현하기 2가지 방법이 있다. Thread 클래스는 Runnable 인터페이스를 구현한 클래스이므로 그냥 어떤 것을 적용하느냐의 차이이다. 어떤 것을 사용할까 ? - 다중 상속을 지원하지 않으므로 확장할 필요가 있을 경우에는 Runnable 인터페이스를 구현, 그렇지 않은 경우는 Thread 클래스를 사용한다. Thread 는 순서대로 동작하는가 ? - 순서대로 실행되지 않는다...
-
9. 예외처리Java 2021. 1. 17. 22:28
목표 자바의 예외 처리에 대해 학습하세요. 학습할 것 (필수) 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 자바가 제공하는 예외 계층 구조 Exception과 Error의 차이는 ? RuntimeException과 RE가 아닌것의 차이는 ? 커스텀한 예외 만드는 방법 예외 처리 방법 Exception ? - 런타임에 발생하는 원치 않거나 예기치 않은 이벤트로, 프로그램 명령의 정상적인 흐름을 방해하는 것 왜 Exception 이 발생하는가 ? - 네트워크 연결문제, 잘못된 입력, 존재하지 않는 파일 열기 등 여러가지 이유로 인해 예외가 발생할 수 있다. public static void exception1() { try { // 예외가 일어날것같은 코드 } ..
-
7. 패키지Java 2021. 1. 2. 12:12
목표 자바의 패키지에 대해 학습하세요. 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 classpath 옵션 접근지시자 1. package 키워드 - 왜 사용 하는가 ? 1. 이름 충돌 방지 college.staff.cse.Employee, college.staff.ee.Employee 이런식으로 두 개의 같은 클래스가 있을때 cse, ee 와 같이 다른 패키지에 넣어서 충돌을 방지 할 수 있다. 2. 클래스, 인터페이스, 이넘, 애노테이션을 찾기 쉽게끔 한다. 패키지를 사용하면 만들거나 찾을때 유용하다. 3. 접근제어자를 통하여 패키지 마다 접근을 다르게 할 수 있다 접근제어자 마다 패키지 접근하는게 다른데 이것을 가능하게 한다. - 패키지 이름 지정..
-
6. 상속Java 2020. 12. 23. 11:27
목표 자바의 상속에 대해 학습하세요. 학습할 것 (필수) 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치 (Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 1. 자바 상속의 특징 Inheritance is an important pillar of OOP. It is the mechanism in java by which one class is allow to inherit the features(fileds and methods) of another class. Important facts about inheritance in Java Default superclass: Except Object class, which has n..
-
5. 클래스Java 2020. 12. 19. 00:05
목표 자바의 Class에 대해 학습하세요. 학습할 것 (필수) 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 (Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 1. 클래스 정의하는 방법 Class 클래스는 객체가 생성되는 사용자 정의 청사진 또는 프로토 타입입니다. 한 유형의 모든 개체에 공..
-
4. 제어문Java 2020. 12. 4. 10:26
목표 자바가 제공하는 제어문을 학습하세요. 학습할 것 선택문반복문 과제 과제 0. JUnit 5 학습하세요. 인텔리J, 이클립스, VS Code에서 JUnit 5로 테스트 코드 작성하는 방법에 익숙해 질 것. 과제 1. live-study 대시 보드를 만드는 코드를 작성하세요. 깃헙 이슈 1번부터 18번까지 댓글을 순회하며 댓글을 남긴 사용자를 체크할 것. 참여율을 계산하세요. 총 18회 중에 몇 %를 참여했는지 소숫점 두자리까지 보여줄 것. Github 자바 라이브러리 참고 깃헙 API를 익명으로 호출하는데 제한이 있기 때문에 본인의 깃헙 프로젝트에 이슈를 만들고 테스트를 하시면 더 자주 테스트할 수 있습니다. 과제 2. LinkedList를 구현하세요. LinkedList에 대해 공부하세요. 정수를 ..
-
3. 연산자Java 2020. 11. 28. 11:06
목표 자바가 제공하는 다양한 연산자를 학습하세요. 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표 (->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 1. 산술 연산자 기본적으로 +, -, *, /, % 가 있다. / 연산자는 % 연산자와 구별되며 몫을 나타내준다. 정수를 나누는 경우 소숫점 아래의 값은 표현해주지 않는다. 실수 타입에서는 자동으로 실수형으로 변환된다. 정수 값을 0으로 나누는 것을 허용하지 않는다. 만약 0으로 나누는 경우 ArithmeticException 을 발생시킨다 만약 실수 값을 0.0 으로 나눈다면 Infinity 라고 출력된다. 결과가 Infin..