목록Java (5)
이것저것
JAVA 에서 static 이란? JAVA 에서 static 키워드를 사용한다는 것은 메모리에 한번 할당되어 프로그램이 종료될 때 해체된다는 것이다. static 의 메모리 static 키워드를 통해 static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, GC의 관리 영역 밖에 존재하므로 static 을 자주 사용하면 프로그램의 종료시까지 메모리에 할당된 채로 존재한다. (자주 사용하게 되면 시스템 성능에 악영향을 줌) static 변수 특징 - static 변수는 클래스 변수이다. - 객체를 생성하지 않고도 static 자원에 접근이 가능하다. static 변수와 static 메서드는 static 메모리 영역에 존재하므로 객체가 생성되기 이전에 이미 할당 되어 있다. 그렇..
Java Primitve type 종류와 값의 범위 그리고 기본 값 Primitve type은 자바의 기본 타입들이며, 총 8가지가 존재한다. 자바에서는 필드 선언시 초기화를 하지 않으면, 디폴트 값으로 초기화가 된다. Primitive type은 유의미한 값을 가지며, Reference type 은 null로 초기화가 됩니다. - boolean : true/false를 나타내는 타입이며, JVM 의 구현은 1byte을 사용한다. 디폴트 값은 false - char : unicode 문자를 나타내는 정수형 타입이다. unsigned 2byte기 때문에 표현할 수 있는 값의 범위는 '\u0000'(0)에서 '\uffff'(65535) 이다. 기본 값은 '\u0000'이다. - byte : 이름과 같이 1b..
[OOP 란?] OOP 란 Object-Oriented Programming의 줄임말로 객체 지향 프로그래밍 방식을 의미한다. [OOP 외의 프로그래밍 방식은 무엇이 있을까?] - 절차적 프로그래밍 방식 입력을 받은 순서대로 처리하여 결과를 내는 방식 - 구조적 프로그래밍 방식 함수단위로 쪼개고, 함수를 호출하는 방식 큰 문제를 작은 문제 여러개로 나누어 해결 (Top-Down 방식) - 객체 지향 프로그래밍 방식 큰 문제를 작은 문제 여러개로 나누는 것이 아닌, 작은 문제들을 해결하는 객체를 만드는 방식 객체를 조합하여 큰 문제를 해결 (Bottom-Up 방식) [OOP의 다섯가지 원칙 : SOLID] S (Single Respinsibilty Principle) : 한 클래스는 하나의 책임만 갖는다...
[가비지 컬렉터란?] 가비지 컬렉터란 "더 이상 참조되지 않는 메모리"인 가비지를 청소해주는 JVM 의 실행 엔진의 한 요소이다. JVM은 new와 같은 연산자에 의해 새롭게 생성된 객체들 중에 더 이상 참조되지 않는 객체를 정리해준다. 가비지 컬렉터는 Heap 영역을 위주로 탐색하여 메모리를 정리해준다. [Stack, Heap] Stack : 정적으로 할당한 메모리 영역 Primitive 타입의 데이터 값과 함께 할당, Heap 영역에 생성된 Object 타입의 데이터의 참조 값 할당 Heap : 동적으로 할당한 메모리 영역 모든 Object 타입의 데이터가 할당, Heap 영역의 Object를 가리키는 참조 변수가 Stack에 할당 public class Main{ public static void ..
[JVM이란 무엇인가] Java Virtual Machine의 약자로, Java Byte Code를 OS에 맞게 해석해주는 역할을 한다. 즉, Java 와 OS 사이에서 중재자와 같은 역할을 하며, Java 가 OS에 구애받지 않고 재사용 가능하도록 해준다. 즉, 어느 OS 에서든 실행시키기 위해서 Java 애플리케이션은 JVM을 거친 이후 OS를 거치게 된다. 그러다 보니, 해당 HW에 맞게 완전히 컴파일된 상태가 아닌 실행 시 해석되기 때문에 속도가 비교적 느리다는 단점을 가진다. - Java는 직접 실행 가능한 코드가 아닌, Byte Code를 생성 - JVM 이 이 Byte Code를 기계어로 번역 (Interpret)하여 실행 - OS 등 실행환경이 바뀌어도 어디에서든 Java를 실행 가능 (H..