반응형

전체 글 103

01. 재귀호출(Recursion)과 반복호출

재귀호출은 반복적으로 자기 자신을 호출하는 것을 말한다. 가장 친근한 예시로는 수학에서 찾아볼 수 있는데, 팩토리얼이나 피보나치가 있다. 재귀호출은 비선형 자료구조에 기반을 둔 알고리즘에 자주 사용이 된다. 예를 들어 tree 또는 graph의 노드 탐색이 있겠다. 재귀의 큰 특징은 종료 조건이 반드시 존재한다는 것이다. base case(최소한계)라고도 부르며 이것이 존재하지 않으면 시스템 스택에서 에러가 발생한다. 이 부분에 대해서는 밑에서 OS 관점에서의 재귀에 대해 설명하면서 다시 언급하겠다. 어쨋든 재귀는 하나의 큰 문제를 여러 개의 작은 문제로 쪼개어 해결한다는 점에서 Divide and Conquer(분할정복)이라 부를 수 있다. 재귀호출은 3가지로 분류된다. 1. Linear Recursi..

07. 클래스 - 필드, 생성자, 메소드

클래스 이름을 Test로 하고싶다면 우선 Test.java 파일을 생성해야한다. 그리고 public class Test{ } 라는 형태로 클래스를 선언해야한다. 한 파일에는 일반적으로 하나의 클래스를 선언해서 사용하지만, 추가로 클래스를 선언하는 것이 에러라는 건 아니다. 다만 추가로 선언할 클래스에는 public 키워드가 붙어서는 안된다. 어쨋건 java 파일을 컴파일하면 byte code file은 클래스의 개수만큼 생성된다. 클래스의 용도는 라이브러리용, 실행용으로 구분되는데 main 메소드가 있는 클래스를 실행용이라고 생각하면 된다. new 연산자를 이용하면 클래스로부터 객체를 생성할 수 있다. ex) Test test = new Test(); 이렇게 생성되는 객체는 Test클래스의 instanc..

간단 지식/Java 2020.05.29

06. OOP(Object Oriented Programming)의 특징

java는 객체지향프로그래밍(OOP)을 할 수 있게 해주는 언어이다. 그렇다면 객체에 대해서 우선적으로 알아야한다. 객체는 속성(field)과 동작(method)으로 구성되며, 각 객체는 다른 객체와 구별되는 독립적인 존재이다. 그리고 객체는 일반적으로 다수의 객체와 연결되어 조직되며 이러한 프로그래밍을 OOP라고 부른다. 객체 간의 관계는 집합,사용,상속 관계로 정의된다. 이렇게 객체들의 관계로 구성되는 프로그램, OOP의 특징은 대표적으로 아래 5개가 있다. 캡슐화 객체의 field와 method를 처리하는 함수를 하나로 묶어 세부내용은 은닉 객체의 재사용 용이 상속 이미 정의된 상위 클래스의 모든 속성, 연산을 하위 클래스에게 전달 단일 상속, 다중 상속 효율 상승, 개발시간 단축, 유지보수 용이 ..

간단 지식/Java 2020.05.28

05. main 메소드의 매개값 - String[] args

public class Test{ public static void main(String[] args){ System.out.println("hello"); } } 메소드는 매개값을 이용할 수 있다. 이는 main 메소드도 매개값을 가질 수 있다는 의미이다. 위 코드를 보면 main의 매개값이 String[] args임을 알 수 있다. 즉, 이름이 args이고 타입이 String인 일차원 배열이 매개값이 된다는 것을 이해할 수 있어야한다. 왜 main 메소드에 매개값이 필요할까? 자바 클래스로 프로그램을 실행하면 JVM이 구동된다는 것을 우리는 안다. JVM이 하는 일 중 길이가 0인 String 타입의 배열을 생성하는 일이 있다. 그리고 생성된 그 배열을 main의 매개값으로 전달해준다. 그러나 위 코..

간단 지식/Java 2020.05.26
반응형