본문 바로가기

Java

(50)
자바 float과 double 자료형 1) Float & Double - float과 double은 소수를 표현하는데 사용되는 자료형입니다. 이 때, float은 32비트, double은 64비트 자료형입니다. 단, 이 두 자료형은 간단한 계산에서는 사용해도 되지만, 돈 계산과 같은 중요한 계산에서는 이 타입들을 사용해서는 안됩니다. 왜냐하면 float과 double은 각각 32비트, 64비트를 넘어서는 계산을 제공하지 못하기 때문입니다. 자바에서 돈 계산과 같은 정확한 계산은 java.math.BigDecimal 클래스를 사용해야 합니다 . 2) Float & Double in Oracle Java Tutorial - 오라클의 자바 튜토리얼에는 float과 double에 대해서 각각 이렇게 설명합니다. float - Single preci..
자바 int와 long 자료형 1) int와 long - 자바는 정수형 자료형으로 byte, short, int, long을 제공합니다. 이 글에서는 그 중에서 자주 쓰이는 int, long을 알아보겠습니다. - 컴퓨터의 기본 단위는 비트입니다. 이 비트는 0,1이라는 2개의 숫자로 구성됩니다. 8개의 비트가 모이면, 1바이트를 구성합니다. 자바의 int는 32비트, 즉 4바이트 자료형이고, long은 64비트, 즉, 8바이트 자료형입니다. - 컴퓨터에서는 바이트의 크기에 따라 표현할 수 있는 값의 범위가 정해집니다. int는 4바이트, 즉 32비트이므로 -2^31 ~ 2^31-1 의 범위의 값을, long은 8바이트, 즉 64비트이므로 -2^63 ~ 2^63-1의 범위의 값을 표현할 수 있습니다. - 그렇다면 여기서 1) 왜 int..
Java 8 람다 표현식 1) 람다 표현식이란? - 람다 표현식(이하 람다식)은 함수를 간단한 '식(expression)'으로 표현한 것을 의미합니다. 람다식을 작성하는 법은 반환 타입과 이름을 지우고, ->를 블록 앞에 추가하면 됩니다. 람다식은 함수명을 가지지 않는데, 이러한 특징을 익명 함수(anonymous function)라고 합니다. int max(int a, int b){ return a > b ? a : b; => (a, b) -> a > b ? a : b } 2) 람다식 작성 시 주의사항 - 람다식을 작성할 때는 몇 가지 주의사항이 있습니다. (1) 매개변수가 하나인 경우에는, 괄호() 생략이 가능합니다. 단, 타입이 없을 때만 가능합니다. (a) -> a * a => a -> a * a // OK (int a)..
Java HashMap 이해하기 자바의 Collection 인터페이스 중에서 대표적인 것이 Map 인터페이스입니다. Map 인터페이스는 여러 구현 클래스를 갖는데, 대표적인 것이 HashMap 클래스와 HashTable 클래스입니다. 그리고 이 두 클래스를 이해하기 위해서는 우선 해시 자료구조에 대해 알아야 합니다. 1) 해시 자료구조란 무엇인가? - 해시 자료구조의 구성 요소는 크게 해시 함수와 해시 테이블입니다. 해시 자료구조는 key, value 셋을 저장하는데, key를 해시 함수로 계산해서 해시값을 만들어내고, 그 해시 값에 해당하는 해시 테이블의 위치에 value를 저장합니다. - 해시 자료구조의 장점은 값의 저장이나 검색, 삭제를 이론상으로 시간 복잡도 O(1)에 할 수 있다는 점입니다. 다만, 실제로는 시간 복잡도가 O(..
Object 클래스 Q1. 모든 자바 클래스의 부모는 어떤 클래스인가? - Object 클래스이다. Q2. 왜 모든 클래스는 Object 클래스의 상속을 받는가? - 클래스의 기본 동작을 구현하기 위함이다. Q3. Object 클래스에서 제공하는 메소드들의 종류에는 무엇이 있는가? - clone(), finalize(), hashCode(), equals() 등이 있다. Q4. clone()란 무엇인가? - 객체를 복제하는 메소드이다. Q5. finalize() 란 무엇인가? - 객체를 종료시키는 메소드이다. Q6. getClass() 란 무엇인가? - Q7. hashCode() 란 무엇인가? - 객체의 메모리 주소를 반환하는 메소드이다. Q8. toString()이란 무엇인가? - (오버라이딩 하지 않았을 때) 객체의 정..
Collection 인터페이스 Q1. Collection 인터페이스에는 어떤 메소드가 존재하는가? - Q1. 자바의 신 Collection (Java Platform SE 8 ) (oracle.com) 5/30
Serializable Q1. Serializable 인터페이스는 어떤 점에서 특이한 인터페이스인가? - 구현된 메소드가 없다는 점에서 특이하다. Q2. Serializable 인터페이스를 선언해놓으면 어떤 기능이 가능한가? - 객체를 네트워크 상에서 주고 받을 수 있게 된다. Q3. Serializable 인터페이스를 구현하지 않는 클래스는 무엇 무엇이 불가능한가? - 참고 Q1~Q3 자바의 신 Serializable (Java Platform SE 7 ) (oracle.com) 5/29
JVM Q1. JVM은 무엇의 줄임말인가? - Java Virtual Machine의 줄임말이다. Q2. JVM의 목적은 무엇인가? - Write Once Run Anywhere를 실현하기 위해서, JRE(Java Runtime Environment)에서 제공하는 VM(Virtual Machine)이다. Q2-1 왜 JVM을 알아야 하는가? - Q2-2 JVM은 자바가 무엇에 구애받지 않고 실행하게 해주는가? - Q3. 자바 소스 파일을 자바 컴파일러가 어떻게 하는가? - 자바 소스 파일(.java)을 자바 컴파일러가 바이트 코드(.class)로 변환한다. Q4. 자바 바이트 코드란 무엇인가? - Q4-1. 왜 자바 바이트 코드를 만드는가? - JVM 내의 실행 엔진(Execution Engine)이 실행할 수..
예외 Q1. 자바에서 예외를 처리하는데는 어떤 블록이 사용되는가? - try~catch 블록을 사용한다. Q2. 자바의 Exception에는 어떤 어떤 종류가 있는가? - Checked Exception, Unchecked Exception(RuntimeException)이 있다. Q3. 자바의 Exception 클래스는 무슨 클래스를 상속받는가? - Throwable 클래스를 상속 받는다. Q4. 자바의 RuntimeException 클래스는 언제 exception이 throw되는가? - Q5. finally 구문의 의미는 무엇인가? - finally 블록에 포함된 영역이 무조건 실행되어야 함을 의미한다. Q6. 두 개 이상의 catch문을 작성할 때, Exception 클래스는 어디에 작성하는게 좋은가? ..
JIT 컴파일러 Q1. JIT는 무엇의 약자인가? - Q2. JIT 컴파일러는 왜 존재하는가? - Q1~Q2 5/27 https://www.ibm.com/docs/en/ztpf/1.1.0.15?topic=reference-jit-compiler