Java/개념 정리
-
[Camel][Java] Generics Class (제네릭 클래스)Java/개념 정리 2020. 2. 29. 19:22
Generics 클래스를 사용하는 이유 영어 Generics은 일반화라는 의미를 가지고 있습니다. 우리가 배우고자 하는 일반화(Generics)의 대상은 자료형입니다. Generics을 설명하기에 앞서 Generics이 유용하고 필요한 이유를 설명하기위해 아래 코드를 통해 설명하겠습니다. class Camel { int weight; public Camel (int weightOfCamel) { weight = weightOfCamel; } public void showWeight() { System.out.println("Weight : "+weight); } } class AnimalCage { Object item; public void putInto(Object item) { this.item =..
-
[Camel][Java] Math 클래스 & Random 클래스Java/개념 정리 2020. 2. 28. 17:34
Math 클래스란? Math 클래스는 수학관련 기능을 제공하는 클래스입니다. Math클래스는 Java 표준라이브러리의 java.lang 패키지에 정의되어 있습니다. 이 클래스는 모든 멤버가 static으로 선언되어 있습니다. 즉, 이것은 인스턴스의 생성의 목적이 아닌 수학관련 기능 제공을 목적으로 정의된 클래스라는 것입니다. Math 클래스에는 매우 다양한 메소드가 존재하지만, 이 메소드들의 이름과 사용방법이 매우 직관적이기 때문에 필요한 메소드를 찾거나 사용하기가 쉽습니다. Math 클래스의 메소드는 다음 링크에서 확인 할 수 있습니다. https://docs.oracle.com/en/java/javase/13/docs/api/java.base/java/lang/Math.html 자주 사용하는 주요 메..
-
[Camel][Java] BigInteger & BigDecimal 클래스Java/개념 정리 2020. 2. 28. 16:20
BigInteger & BigDecimal 클래스를 사용하는 이유 우리가 흔히 사용하는 int, short와 같은 정수 자료형은 매우 큰 수의 표현이 불가능합니다. 그리고 float, double 같은 경우에는 실수 자료형이고 매우 정밀한 수의 표현에 제약이 있기에 오차가 발생합니다. 이러한 문제점을 해결하기 위해 사용되는 것이 BigInteger & BigDecimal 클래스입니다. 클래스들은 java.math 패키지에 묶여 있기때문에 import를 해주어야합니다. BigInteger 클래스 일반적으로 우리가 사용하는 정수의 표현에 있어서 기본자료형인 int형을 사용하면 원하는 수의 표현이 가능합니다. 그러나 기본자료형으로 표현이 불가능한 정수를 표현해야하는 상황이 발생하면 우리는 Java에서 제공하는..
-
[Camel][Java] Wrapper 클래스에 대해서Java/개념 정리 2020. 2. 28. 15:45
Wrapper 클래스란? Wrap이라는 영어를 해석해보면 '감싸다'라는 의미를 가지고 있습니다. 그렇습니다. Wrapper 클래스란 감싸는 클래스라는 의미를 가지고 있습니다. 이런 Wrapper 클래스는 기본 자료형 데이터를 인스턴스로 표현을 하고 싶을 때 사용합니다. 물론 기본 자료형 데이터를 인스턴스로 표현하기 위해 직접 클래스를 정의해도 되지만 Wrapper 클래스를 사용하면 이러한 불필요한 작업을 줄일 수 있습니다. Wrapper 클래스의 종류는 다음과 같습니다. Boolean - Boolean( boolean value ) Character - Character( char value ) Byte - Byte( byte value ) Short - Short( short value ) Intege..
-
[Camel][Java] JVM(가상머신)의 메모리 모델Java/개념 정리 2020. 2. 27. 19:23
JVM이란? JVM은 Java Virtual Machine의 약자 입니다. 이 JVM의 가장 큰 특징은 Java로 작성된 프로그램이 다른 플랫폼에서도 실행 될 수 있게 하는것입니다. JVM의 또다른 특징은 메모리를 관리하고 최적화하는 것입니다. JVM은 프로그램의 실행을 위해서 메모리 관리가 필요하고, 이를 위해 메모리 공간은 나눠서 데이터의 특성에 따라 분류해서 저장합니다. JVM의 메모리 공간은 크게 메소드 영역, 스택 영역, 힙 영역 총 3개의 영역으로 구분됩니다. JVM의 구조 Class Loader (클래스로더) JVM 내에 클래스 파일을 Load 하고 배치하는 작업을 수행하는 모듈입니다. Java의 기본적인 클래스로더는 Bootstrap, Extention, Application 클래스로더 3..
-
[Camel][Java] 예외처리 (feat. try~catch문)Java/개념 정리 2020. 2. 24. 17:37
예외처리란? Java에서는 프로그램 실행 중 발생하는 예외적인 상황을 처리하기위해 별도의 문법을 제공하고 있습니다. 이러한 예외상황이란 컴파일 중에 발생하는 문법적인 에러를 제외한 프로그램 실행 도중에 발생하는 문제 상황을 말합니다. 단적인 예를 하나 들면 입력값으로 자연수를 받고 싶은데 -3과 같은 정수가 입력되는 상황을 의미합니다. 우리는 종종 예외를 처리하기 위해 우리는 if문을 사용해왔습니다. 하지만 if문의 경우 예외처리 이외의 용도로도 사용이 되기때문에 해당 if문이 예외처리를 위한 코드인지 구별하기가 어렵습니다. 이러한 불편함을 해결하기 위해 try~catch 기반의 예외처리 방식이 사용되는 것입니다. try ~ catch문 인터넷 상에서 Java로 작성된 코드를 보다가 보면 try~catc..
-
[Camel][Java] Inner , Local , Anonymous 클래스란?Java/개념 정리 2020. 2. 24. 15:53
Inner 클래스란? class Outer1 { class Inner { . . . } } class Outer2 { static class Nested { . . . } } Java에서는 클래스 내부에 다른 클래스를 정의할 수 있습니다. 바깥쪽에 정의된 클래스를 Outer 클래스라고 하고 내부에 정의된 클래스를 Inner 클래스라고 합니다. Inner 클래스의 경우 static으로 선언이 가능하고 이를 가리켜 Static Inner 클래스 또는 Nested 클래스라고 합니다. Nested 클래스는 클래스 내부에 정의되는 클래스이기 때문에 private으로 정의될 경우 외부에서 인스턴스 생성이 불가능하게 됩니다. Inner 클래스의 특징 Inner 클래스의 특징은 다음과 같습니다. 첫 번째, Inner클..
-
[Camel][Java] Abstract Class (추상클래스)와 Interface(인터페이스)Java/개념 정리 2020. 2. 21. 17:18
abstract 클래스란? abstract 클래스를 해석하면 추상클래스입니다. 추상이라는 말은 한국말이라도 참 어렵죠? 좀더 이해하기 쉽게 해석하면 abstract 클래스는 완전하지 않은 클래스라고 할 수 있습니다. 완전하지 않다는 것은 인스턴스의 생성이 불가능하기 때문이라고 할 수 있습니다. 좀 더 빠른 이해를 돕기 위해 아래의 코드를 가지고 설명하겠습니다. class Animal () { private String kind; public void showKind() { System.out.println("Kind : " + kind); } public void showBase() { } } 다음과 같이 Animal 클래스를 정의했습니다. 이 Animal 클래스의 showBase 메소드를 확인하면 내용..