본문 바로가기

Java

(5)
자바의 Collection 자바에는 기본적으로 배열이라는 자료구조를 제공해 준다. 그치만 배열이 있음에도 불구하고 컬렉션을 사용하는 이유는 다음과 같다. 1. 일괄된 API : Collection의 일관된 API를 사용하여 Collection 밑에 있는 모든 클래스(ArrayList, Vector, LinkedList 등) Collection에서 상속받아 통일된 메서드를 사용하게 됩다. 2. 프로그래밍 노력 감소 : 객체 지향 프로그래밍의 추상화의 기본 개념이 성공적으로 구현되어있다. 3. 프로그램 속도 및 품질 향상 : 유용한 데이터 구조 및 알고리즘은 성능을 향상시킬 수 있다. Collection을 사용하면 자료구조에 대한 알고리즘의 구현을 생각할 필요없이 간단하게 Collection API를 사용하여 구현을 하면 됩다. 이렇..
if-else 문과 switch, enum 객체지향적인 계산기를 만드는것에 도전하였다. 이를 바탕으로 if-else문과 enum에 대해서 공부하고 객체지향적인 계산기를 만들어보자. 다음의 코드를 보자 public class Caculator { public static long calculate(char operator, long value1, long value2) { switch(operator): if (operator == '+') { return vaule1 + value2; } else if (operator == '-') { return value1 - value2; } else if (operator == '*') { return value1 * value2; } else if (operator == '/') { return val..
자바의 변수와 타입 자바의 데이터 타입에는 크게 기본형, 참조형 두가지의 타입이 존재한다. 이 두가지 타입의 특징을 공부해보자 기본형 타입(Primitive type) 타입 할당 메모리 기본값 범위 논리형 boolean 1byte false true, false 정수형 byte 1byte 0 - 2^7 ~ 2^7 - 1 short 2byte 0 -2^15 ~ 2^15 - 1 int 4byte 0 -2^31 ~ 2^31 - 1 long 8byte 0L -2^63 ~ 2^63 - 1 실수형 float 4byte 0.0F (3.4 X 10^38) ~ (3.4 X 10^38) 의 근사값 double 8byte 0.0 (1.7 X 10^308) ~ (1.7 X 10^308) 의 근사값 문자형 char 2byte '\u0000' 0 ..
JVM & GC JVM이란? JVM은 자바 가상 머신으로 자바와 OS사이의 중개자 역할을 한다. 따라서 자바가 OS에 구애받지 않고 작동할 수 있게 해주는 역할을 한다. JVM의 메모리 구조 JVM이 작동하는 과정을 알아보기 전에 JVM이 어떤 메모리 구조를 가졌는지 먼저 확인한 후 작동 과정을 이해해 보도록 하자. 우선 JVM은 다음 그림과 같은 메모리 구조를 갖는다. 각각 하나씩 살펴보도록 하자 (1) Class Loader 이름과 같이 JVM 내로 클래스 파일을 로드하는 역할을 한다. 런타임 시에 동적으로 클래스를 로드한다. (2) Execution Engine 클래스 로더를 통해 JVM 내의 Runtime Data Area에 배치된 바이트 코드들을 명렁어 단위로 읽어서 실행해주는 역할을 한다. (3) Garbag..
객체지향 프로그래밍 객체? 객체란 우리 주변을 이루고 있는 모든것을 말할 수 있다. 객체는 보통 상태와 행위로 이루어져 있는데, 사람이라는 객체를 예를 들어보자. 사람의 키, 몸무게, 머리색 등과 같은것으로 사람의 상태를 묘사할 수 있을것이고, 밥을 먹거나 걷거나 앉거나하는것으로 행위를 묘사할 수 있다. 객체지향 프로그래밍? 위에서 객체에 대해서 말했다. 그렇다면 객체지향 프로그래밍은 무엇일까? 이를 말하기에 앞서 우리가 흔히 객체지향의 반대라고 생각하는 절차적 프로그래밍에 대해서 짚고 넘어가 보겠다. 절차적 프로그래밍? 먼저 절차적 프로그래밍은 절대 객체지향 프로그래밍의 반대가 아니다. 프로그래밍 접근 방법이 상이할 뿐이다. 절차적 프로그래밍(Procedure Programming)이란 Procedure을 이용하여 작성하..