2023/11 3

Ch 02. Java와 절차적/구조적 프로그래밍

Java 로 작성된 프로그램을 실행하기 위한 과정에 대해 알아보려고한다. JDK, JRE, JVM 의 역할 Java 로 작성된 프로그램을 실행하기 위해서는 JVM(Java Virtual Machine, 자바 가상 머신)이 필요하다. JVM으로 Java 코드를 실행하는 것은 컴퓨터가 어떤 프로그램을 실행하는 것과 비슷하다. ex) 어떤 소프트웨어 개발자가 개발 도구를 이용해서 개발하고 OS를 통해서 물리적 컴퓨터인 하드웨어 상에서 구동한다. JDK(Java Development Kit, 자바 개발 도구): JVM용 소프트웨어 개발 도구이다. 컴파일러인 javac.exe를 포함한다. JRE(Java Runtime Enviornment): JVM용 운영체제로서Java.exe(자바 프로그램 실행기)를 포함한다...

Ch 03. 자바와 객체 지향

객체 지향 객체 지향은 '인간' 지향 언어이다. 객체 지향은 현실 세계를 반영한다. 기계에 맞춰서 프로그래밍하던 방식(절차 지향 프로그래밍)을 버리고 인간이 사물을 인지하는 방식대로 프로그래밍하고자 만들고자 객체 지향 프로그래밍 언어가 탄생했다. 클래스와 객체의 관계는 붕어빵틀과 붕어빵이라기보다는 분류와 실체의 개념에 가깝다. 클래스는 분류, 집합, 같은 속성과 기능을 가진 객체를 총칭하는 개념이다. 객체지향의 대표적인 특성 캡슐화(정보 은닉) 추상화(모델링) 상속(재사용) 다형성(사용 편의) 추상화 = 모델링 Object 의 의미는 '객체'보다는 '개체'라는 뜻에 더 가깝다. 객체는 세상에 존재하는 유일무이한 사물을 말한다. (By 저자) 객체를 특성(속성, 기능)에 따라 분류해보니 객체를 통칭할 수 ..

Java 큰 수의 피보나치 수열의 값은?

피보나치(Fibonacci) 수열이란? 1, 1, 2, 3, 5, 8, .. 와 같이 f(x) = f(x - 2) + f(x - 1); 을 만족하는 수열을 말한다. (첫 항: f(0) = 0 또는 f(1) = 1) 아주 큰 자연수 n에 대하여 피보나치 수열의 n 번째 값은 어떻게 구할 수 있을까? 첫 번째 시도 [Long] static 으로 선언한 List 안에 하나씩 값을 넣어준다. list = [1, 1, 2,3, 5, ...] 해당 리스트에 메모이제이션을 적용했다. static List list = new ArrayList(); private static void fiboFunc(int idx) { if (idx == 1 || idx == 2) { list.add(idx, 1L); return; }..