메모리란?
- Register: CPU 내부에서 사용되는 저장공간
- Storage: 하드 드라이브라고도 불리는 HDD(Hard Disk Drive). 용량당 가격이 아주 저렴하지만 속도가 매우 느림. 최근엔 SSD(Solid State Disk)라는 HDD의 속도를 보완한 제품이 출시되고 있음
- Memory: RAM이라고도 불리는 하드웨어가 Memory 공간을 담당. Storage보다는 빠르지만 Register보다는 느린 속도 ⇒ Storage와 Register의 사이에 위치하여 다른 속도 및 용량을 갖고 있는 저장장소들을 보완하는 역할 담당
프로그램 동작 원리
- 프로그램들은 Storage에 저장되어 있음
- Storage에 저장된 프로그램을 실행하면 운영체제가 해당 프로그램을 Memory에 Load → Memory에 Load된 프로그램은 Process라고 부름
변수(Variable)
- int a; : ‘a라는 이름을 가진 Integer형 변수를 선언(Declare)한다.’ or ‘Memory에 변수명이 a인 정수형 공간을 만든다.’
- 변수를 선언하면 컴퓨터는 비어있는 주소를 가져와 변수명이 기록된 공간을 생성. 즉, a라는 변수명은 어떠한 Memory 주소와 연결됨 ⇒ 동일한 이름 변수명을 지정하면 같은 이름의 공간이 여러 개 생기는 것이므로 에러가 발생
- 첫 글자에는 영문자, $, _ 만 사용가능
- a=1; : ‘a라는 이름을 가진 정수형 공간에 1을 넣는다’
- = : 우측의 값을 왼쪽에 대입한다
- 초기화: 변수 선언 후 가장 처음으로 값을 대입하는 것
import java.io.*;
class Main {
public static void main(String[] args) {
int a;
a = 1;
}
}
상수(Constants)
- 상수: 값이 변하지 않는 데이터 공간
- 변수 앞에 final을 붙여서 사용
- 내부의 값을 변화시킬 수 없음
import java.io.*;
class Main {
public static void main(String[] args) {
final int a = 2;
System.out.println(a);
}
}
자료형 - 기본형(Primitive Type)
- Integral Type: 정수 형태. integer, short, long
- floating point Type: 실수 형태. float, double
- Character Type: 문자형태. character
- Boolean Type: 참/거짓 형태. boolean
Integral Type(정수형)
- 정수형을 저장할 수 있다는 점에서 동일
- 선언시 Memory에 할당되는 공간의 크기가 다름
Floating point Type(실수형)
- 일반적으로 실수는 기본적으로 double형
- float형에 실수를 저장할 시에는 숫자 뒤에 f를 붙임으로써 해당 실수가 float형태라는 것을 명시해주어야 함. (float varFloat = 12.34f; )
Boolean Type(참/거짓형)
import java.io.*;
class Main {
public static void main(String[] args) {
boolean varTrue = true;
boolean varFalse = false;
System.out.println(varTrue);
System.out.println(varFalse);
}
}
- 각 변수에 저장된 boolean 값은 조건문에서 유용하게 사용함
Character Type(문자형)
- 한 개의 문자만 저장 가능
- 문자는 작은따옴표( ’ )에 감싸서 표현
자료형 - 참조형
기본형이 아닌 자료형은 모두 참조형
- Class Type
- Interface Type
- Array Type
- Enum Type
- 참조형: 값이 저장된 주소를 저장하는 자료형, 자바에서는 모두 객체의 주소를 의미
명시적 형변환
import java.io.*;
class Main {
public static void main(String[] args) {
double varDouble = 98.76;
int varInteger = (int)varDouble;
System.out.println(varInteger);
}
}
- double 형태의 값이 int형으로 강제 변환됨 → 실수부 데이터 유실
- 명시적 형변환: 변수 형태를 명시적으로 지정하여 자료형을 바꾸는 행위
묵시적 형변환
- 묵시적 형변환: 바꾸고자 하는 타입을 명시하지 않아도 자료형이 자동으로 바뀌는 형변환
import java.io.*;
class Main {
public static void main(String[] args) {
short varShort = 5;
double varDouble = varShort;
System.out.println(varDouble);
}
}
- 가능한 조건: 목표 자료형 크기 > 바꾸려는 데이터의 자료형 크기
- 명시적, 묵시적 형변환은 boolean형을 제외한 나머지 기본형 자료형 사이에서 모두 사용 가능
- 참조형 자료형도 형변환 가능하지만 참조형 자료형 간에만 가능 + 여러 조건이 필요
'바로 실행해보면서 배우는 java'를 학습하며 정리한 문서
'Java' 카테고리의 다른 글
Java 문법(6) - 클래스와 객체, 접근제한자 (0) | 2022.02.07 |
---|---|
Java 문법(5) - 배열 기초, String (0) | 2022.02.06 |
Java 문법(4) - 메소드 (0) | 2022.02.06 |
Java 문법(3) - 연산자, 조건문, 선택문, 반복문 (0) | 2022.02.06 |
Java 문법(1) - 시작 (0) | 2022.02.06 |