Java/기초

Java/기초

[Java] JVM메모리와 메서드 호출

JVM(Java Virtual Machine)이 OS로 부터 메모리를 할당 받아 .class파일(byte code)를 실행시킬때에 메모리에 대해 알아보겠습니다. ①②③④⑤⑥⑦⑧⑨⑩⑪⑫ 1. JVM 메모리 구조 JVM은 다음과 같은 메모리 구조를 가지고 있습니다. 오늘은 .class파일을 실행 시켰을떄 간단한 예제와 함께 JVM의 메모리에 메서드가 올라가고 제거되는 과정을 살펴보겠습니다. 따라서 위 그림의 빨간색 영역에 대해서만 다루겠습니다. 2. JVM Runtime Data Area(Memory Area) 구조 JVM은 Runtime에 Data를 올려놓는 영역인 Runtime Data Area를 가지고 있습니다. 이 영역은 크게 5가지로 나뉘지만, 위 그림 이외의 두 영역은 Low Level 의 Ope..

Java/기초

[Java] 비트 연산자(Bitwise Operator)

1. 비트 연산자란? 비트 연산(bitwise operation)은 한 개 혹은 두 개의 이진수에 대해 비트 단위로 적용되는 연산입니다 처음 비트 연산을 접하게 되면 "곱셈, 나눗셈을 사용하면 되지 이걸 왜 사용하나?"라는 의문이 들 수 있겠지만 비트연산은 곱셈, 나눗셈 연산자보다 실행속도가 빠르고 메모리 사용량이 적어 실무에서 자주 사용된다고 합니다. 그리고 이미지 및 영상처리에도 사용된다고 합니다. 2. 비트연산자(&, |, ^, ~) & (AND 연산자) - 피연산자의 양쪽 비트값이 모두 1이여야만 1을 결과로 얻는다. 그 외에는 0을 얻는다. | (OR 연산자)- 피연산자의 비트값 중 한쪽의 값만 1이여도 1을 결과로 얻는다. 모두 0일 경우 0을 얻는다. ^(XOR 연산자) - 피연산자의 비트값..

Java/기초

[Java] Enum(열거형)

1. Enum이란? 열거형 Enum은 상수를 의미별로 함께 묶어 사용하고자 할때 사용됩니다. 예를 들면 색, 날(일주일)등 대표적인 하나의 주제 아래에 여러 항목들을 하나로 묶어 관리할 수 있으며, 데이터 값에 대한 의미를 명확하게 전달 할 수 있습니다. Enum은 특별한 클래스로 클래스처럼 변수와 메소드를 가질수 있지만, 상속을 하거나 인스턴스를 생성할 수는 없습니다. Enum 값은 상수이며 public, static, final 한 속성을 가지고 있어 변경할 수 없습니다. 2. Enum 선언과 메소드 public enum Day { SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY } enum은 다음과 같이 선언할 수 있으며, enum 내..

Java/기초

[Java] Iterable 인터페이스와 Iterator

1. Iterable이란? Java언어의 Collection framework를 공부하다보면, Collection 인터페이스는 Iterable이라는 상위 인터페이스를 가진것을 확인할 수 있다. Iterate는 "반복한다" 의미를 가지고 있다. 이때, 단순한 반복이 아닌 "어떤 결과를 얻을때까지 반복한다"는 의미를 가지고있다. 그렇다면 Iterable은 무엇을 반복하는것이 가능하도록 한다는 걸까? public interface Iterable { /** * Returns an iterator over elements of type T. * Returns: an Iterator. */ Iterator iterator(); /** * Performs the given action for each element..

chobo5
'Java/기초' 카테고리의 글 목록