분류 전체보기
-
상속자바 스터디 2021. 1. 22. 21:02
백기선님의 Java 스터디를 진행하며 찾아본 내용입니다. 목표 자바의 상속에 대해 학습하세요. 학습할 것 자바 상속의 특징 super 키워드 메소드 오버라이딩 다이나믹 메소드 디스패치(Dynamic Method Dispatch) 추상 클래스 final 키워드 Object 클래스 자바 상속의 특징 Object 클래스를 제외하고 모든 클래스는 단 하나의 direct super class가 존재한다. 명시적인 super 클래스가 없다면 모든 클래스는 암시적으로 Object의 서브 클래스이다. super 키워드 메소드가 슈퍼 클래스의 메소드중 하나를 오버라이드 할 경우 super 키워드를 이용해 재정의 되어진 메소드를 call 할 수 있다. 다음과 같이 슈퍼클래스와 Subclass가 있다고 할 때 1 2 3 4..
-
클래스자바 스터디 2021. 1. 16. 14:53
백기선님의 Java 스터디를 진행하며 찾아본 내용입니다. 목표 자바의 Class에 대해 학습하세요. 학습할 것 클래스 정의하는 방법 객체 만드는 방법 (new 키워드 이해하기) 메소드 정의하는 방법 생성자 정의하는 방법 this 키워드 이해하기 과제 (Optional) int 값을 가지고 있는 이진 트리를 나타내는 Node 라는 클래스를 정의하세요. int value, Node left, right를 가지고 있어야 합니다. BinrayTree라는 클래스를 정의하고 주어진 노드를 기준으로 출력하는 bfs(Node node)와 dfs(Node node) 메소드를 구현하세요. DFS는 왼쪽, 루트, 오른쪽 순으로 순회하세요. 클래스 정의하는 방법 Syntax: 1 2 3 4 class MyClass exten..
-
Divide and conquer알고리즘 2021. 1. 15. 17:11
Divide And conquer Algorithm DAC 소개 DAC를 사용한 알고리즘들 DAC의 주의점 Divde And Conquer 소개 Divide and conquer Algorithm은 알고리즘 전략 중 하나로써 일반적으로 다음 세단계를 거쳐 문제를 해결한다. 1. Divide 문제를 하위 문제(sub-problem)으로 나누는 과정 2. Conquer 하위 문제가 해결될 때 까지 재귀적인 호출을 해서 하위 문제를 풀어낸다. 3. Combine 풀어낸 하위 문제를 통해 문제의 해결책을 찾아낸다. // P is Problem DAC(P) { if(small(P) return(Solution(P)); else { divide P in P1, P2, P3 ... Pk; // f1(n) Apply ..
-
Sliding Window Technique알고리즘 2021. 1. 15. 14:34
Sliding window Techique이란? 슬라이딩 윈도우 테크닉은 두개의 사각형을 생각하면 되는데 하나는 Array, Linked List, Buffer등의 연속적인 데이터를 저장하는 컨테이너이고 나머지 하나는 저 컨테이너를 훑는 사각형을 생각하면 된다. Sliding Window Technique의 종류 '고정된' 사이즈의 윈도우를 가진 슬라이딩 테크닉 기법 '가변적인' 사이즈의 윈도우를 가진 슬라이딩 테크닉 기법 장점 반복적인 요소를 사용하는 문제를 Brute Force로 해결하려 할 때 불필요한 중복이 많이 발생하는데 슬라이딩 윈도우 기법을 사용해 이러한 중복을 줄일 수 있다. 사용처 연속적으로 주어진 요소들의 값들(Strings, Array, Linked list등)을 계산해야 할 때 사용..
-
디자인 패턴 개요디자인 패턴 2021. 1. 6. 19:19
디자인 패턴이란? 소프트웨어 엔지니어링에서 소프트웨어 디자인 패턴은 소프트웨어 디자인에 주어진 컨텍스트 내에서 일반적으로 발생하는 문제에 대한 일반적이고 재사용 가능한 솔루션이다. 디자인 패턴을 사용함으로써의 장점 디자인 패턴을 사용함으로써 개발의 속도를 높일 수 있다. 구현후에 숨겨져 있는 버그등이 생기는 것을 방지 할 수 있다. 패턴에 익숙한 코더와 아키텍트의 코드 가독성을 향상시킨다. 패턴의 종류 1. Creational Pattern class instantiation이나 object creation에 대한 디자인 패턴이다. Class-Creational Pattern이나 Object Creational 패턴으로 구분할 수 있다. 클래스 생성 패턴은 인스턴스화 하는 과정에서 상속을 주로 사용한다 ..
-
연산자자바 스터디 2021. 1. 6. 17:20
백기선님의 Java 스터디를 진행하며 찾아본 내용입니다. 목표 자바가 제공하는 다양한 연산자를 학습하시오 학습할 것 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선 순위 (optional) Java 13. switch 연산자 산술 연산자 일반적인 수학 연산을 위해 사용되어지는 연산자 +, -, *, /, %, ++, -- 비트연산자 정수 또는 긴 정수 비트로 이진 논리 연산을 수행하는데 사용되어지는 연산자 Operator Description & AND Operator ~ NOT Operator | OR Operator ~ NOT Operator Signed right shift >>> Zero-..
-
자바 데이터 타입, 변수 그리고 배열자바 스터디 2020. 12. 31. 18:43
백기선님의 Java 스터디를 진행하며 찾아본 내용입니다. 목표 자바의 프리미티브 타입, 변수 그리고 배열을 사용하는 방법을 익힙니다 학습할 것 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타입 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 1. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 2. 프리미티브 타입과 레퍼런스 타입 레퍼런스 타입은 다음과 같은 것들을 포함한다 Annotation Array Class Enumeration Interface 3. 리터럴 변수에 할당 할 수 있는 모든 상수 값을 리터럴(Literal)/상수(Constant)라고 한다. Li..
-
자바 JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가자바 스터디 2020. 12. 30. 22:36
백기선님의 Java 스터디를 진행하며 찾아본 내용입니다. 목표 자바 소스 파일 JVM으로 실행하는 과정 이해하기 학습할 것 JVM이란 무엇인가 JVM 구성 요소 바이트코드란 무엇인가 컴파일 하는 방법 실행하는 방법 JIT 컴파일러란 무엇이며 어떻게 동작하는지 JDK와 JRE의 차이 JVM 이란 무엇인가 자바 코드 또는 어플리케이션의 런타임 환경을 제공해주는 엔진. Java 바이트 코드로 컴파일 된 다른 언어로 작성된 프로그램 뿐만 아니라, Java프로그램을 실행할 수 있도록 해주는 가상머신이다. 2. JVM 구성 요소 JVM은 크게 클래스로더, 메모리 구역, 실행 엔진등을 포함한다 1) 클래스 로더 클래스 로더는 JVM의 서브시스템으로써 클래스파일을 로드하며 자바 프로그램을 구동할 때 첫 번째로 구동된다..