언어/Java 5

[Java] JVM이란?

JVM이란 JVM(Java Virtual Machine)은 자바를 싱행하기 위한 가상 머신이다. 자바로 작성된 어플리케이션은 모두 JVM에서 실행되며, 일반 어플리케이션의 코드는 OS만 거치고 하드웨어로 전달되는 반면, 자바 어플리케이션은 JVM을 한번 더 거치게 된다. 이때문에 자바 어플리케이션은 OS와 하드웨어에 독립적이다. 단, JVM은 OS에 종속적이므로 OS에 따라 실행가능한 JVM이 필요하다. JVM의 메모리 구조 JVM의 3가지 주요 영역에 대해서 써보려고 한다. 1. Method Area 프로그램 실행 중 어떤 클래스가 사용되면, JVM읜 해당 클래스의 클래스파일을 읽어서 분석하고, 클래스에 대한 정보를 이곳에 저장한다. 해당 클래스의 클래스변수 또한 이 영역에 함께 생성된다. 2. Hea..

언어/Java 2019.09.25

[Java] wrapper class

Wrapper Class 래퍼(wrapper) 클래스란 자바의 기본형 변수를 객체로 다뤄야 할 때 사용된다. (기본형 8개는 객체로 다루지 않는다) 래퍼 클래스들은 객체생성 시에 생성자의 인자로 주어진 각 자료형에 알맞은 값을 내부적으로 저장하고 있고, 이에 관련된 여러 메서드가 정의되어있다. 기본형 래퍼클래스 생성자 예시 boolean Boolean Boolean(boolean value) Boolean(String s) char Character Character(char value) Character c = new Character('a'); byte Byte Byte(byte value) Byte(String s) Byte 는 실제 사용 시 byte형의 범위 내에 있는 값을 넣어도 정수의 기본 자..

언어/Java 2019.09.17

[Java] 변수 - 형변환(Casting)

형변환 형변환이란 변수 또는 상수의 타입을 다른 타입으로 변환하는 것을 말한다. 형변환의 방법은 간단하다. 형변환하고자 하는 변수나 *리터럴의 앞에 변환하고자 하는 타입을 괄호와 함께 붙여주면된다. 서로 다른 타입간의 대입 또는 연산을 할 떄, 편의상의 이유로 형변환을 생략할 수 있다. 이를 '자동 형변환'이라고 한다. 자동형변환은 기존의 값을 최대한 보존할 수 있는 타입으로 변환한다. 표현범위가 좁은 타입에서 넓은 타입으로 형변환하는 경우에는 값 손실이 없으므로 두 타입 중 표현범위가 더 넓은 쪽으로 형변환이 이루어진다. boolean을 제외한 기본형 7개의 자동형변환은 그림과 같이 왼쪽에서 부터 오른쪽으로 자동형변환 되며, 오른쪽에서 왼쪽으로의 변환은 명시적으로 형변환연산자를 써줘야 한다. * 기본형..

언어/Java 2019.09.05

[Java] 변수 - 타입

자료형은 값이 저장될 공간의 크기와 저장형식을 정의한 것이다. 자료형은 크게 기본형과 참조형으로 나눌 수 있는데, 기본형 변수는 값을 저장하고, 참조형 변수는 어떤 값이 저장되어 있는 주소를 값으로 갖는다. (메모리에는 1byte단위로 일련번호가 있는데, 이를 메모리 주소라고 한다. 위에서 말한 주소는 변수, 객체가 저장된 메모리 주소를 뜻한다.) * 기본형 변수 분류 타입 논리형 boolean (1 byte) true 와 false 중 하나를 값으로 갖고, 조건식과 논리적 계산에 사용. 문자형 char (2 byte) 문자를 저장하는데 사용, 변수에 하나의 문자만 저장 가능. 정수형 byte (1 byte) short (2 byte) int (4 byte) long (8 byte) 정수를 저장하는데 사..

언어/Java 2019.09.04

[Java] 변수 - 선언과 초기화

변수 변수란 값을 저장할 수 있는 메모리 공간. 하나의 값을 저장할 수 있으므로, 새로운 값을 저장하면 기존의 값은 사라진다. 변수의 선언 변수의 선언은 '변수의 타입 변수이름' 과 같은 형식으로 적어준다. ex) int a; int는 변수의 타입, a는 변수의 이름이다. 변수의 이름은 값을 저장하는 메모리 공간에 이름을 붙여준 것. 변수를 선언하면, 메모리의 빈 공간에 '변수타입'에 알맞은 크기의 저장공간이 확보되고, 이 저장공간은 '변수이름'으로 접근하여 사용할 수 있게 된다. 변수의 초기화 변수는 초기화를 해주어야 한다. 그 이유는 메모리는 자바프로그램 하나만 사용하는 자원이 아닌 여러 프로그램이 공유하는 자원이다. 메모리에 알 수 없는 '쓰레기값'이 남아있을 수 있기 때문에 초기화를 해주어야 한다..

언어/Java 2019.09.04