"[Spring Boot] - 002 Basic Syntax 기본 문법" 을 공부할 땐 2개의 유튜브 영상을 보고, 아티클을 읽으며 정리했다. 처음보는 접근 제어자의 Default 는 바로 찾아 이해하려고 했다. 이 방법의 문제는 아티클 요약이 안되었던 점이다. (물론 충분히 요약되어 있긴 했다.)
효율적인 학습을 위해 전략을 바꿔 3개의 레퍼런스를 모두 읽어본 후 정리하는 방식으로 해보려 한다.
Java 의 변수는 Java 프로그램 실행 중에 데이터 값을 저장하는 데이터 컨테이너이다. 모든 변수에는 데이터 유형이 할당되며, 이는 보유할 수 있는 값의 유형과 수량을 지정한다. 변수는 데이터의 메모리 위치 이름입니다. Java 변수에는 주로 Local, Instance 및 Static의 세 가지 유형이 있다.
데이터 유형은 두 그룹으로 나뉜다.
- 원시형 (Primitive) - byte, short, int, long, float, double, boolean, char
- 비원시형 (Non-Primitive) - String, Arrays, Classes
자세히 알아보려면 아래 레퍼런스를 참고할 수 있다.
3개의 글을 읽어보니 모두 동일한 내용이지만 예시에 따른 깊이가 달랐으며 이 내용을 종합하여 정리해봤다.
변수란 메모리에 할당된 예약된 영역의 이름이다. (메모리 위치의 이름)
변수를 사용하려면 2단계를 수행해야 한다.
- 변수 선언
- 변수 초기화
이 Java 튜토리얼에서는 5가지 범위를 학습한다.
- 변수 선언
- 변수 초기화
- 변수 유형
- Java의 데이터 유형
- 유형 변환 및 유형 캐스팅
1. 변수 선언
변수를 선언하려면 데이터 유형을 지정하고 변수에 고유한 이름을 지정해야 한다.
int a, b, c; // 데이터는 가변적이다.
float pi;
double d;
char a;
2. 변수 초기화
변수를 초기화하려면 유효한 값을 할당해야 한다.
pi = 3.14f;
do = 20.22d;
a = ’v’;
변수 선언과 초기화를 함께 사용할 수 있다.
int a = 2, b = 4, c = 6;
float pi = 3.14f;
double do = 20.22d;
char a = ’v’;
public class Simple{
public static void main(String[] args){
float f=10.5f;
//int a=f;//Compile time error
int a=(int)f;
System.out.println(f); // 10.5
System.out.println(a); // 10
}
}
class Simple{
public static void main(String[] args){
//Overflow
int a = 130;
byte b = (byte)a;
System.out.println(a); // 130
System.out.println(b); // -126
}
}
3. 변수 유형
Java 에는 세 가지 유형의 변수가 있다.
- 지역 변수
- 인스턴스 변수
- 정적 변수
1) 지역변수
지역 변수는 메소드 본문 내부에 선언되는 변수이다. 이 변수는 해당 메서드 내에서만 사용할 수 있으며 클래스의 다른 메서드는 변수가 존재한다는 사실조차 인식하지 못한다. 지역 변수는 "static" 키워드로 정의할 수 없다.
2) 인스턴스 변수
인스턴스 변수는 static 키워드 없이 정의되며 메소드 선언 외부에서 정의된다. 값은 인스턴스별로 지정되고 인스턴스 간에 공유되지 않기 때문에 인스턴스 변수라고 한다.
3) 정적 변수
static 으로 선언된 변수를 static 변수라고 한다. 정적 변수의 단일 복사본을 만들고 이를 클래스의 모든 인스턴스 간에 공유할 수 있습니다. 정적 변수에 대한 메모리 할당은 클래스가 메모리에 로드될 때 한 번만 발생한다.
class Example {
static int a = 1; //static variable
int data = 99; //instance variable
void method() {
int b = 90; //local variable
}
}
4. Java의 데이터 유형이란
Java의 데이터 유형은 변수나 식별자에 저장할 수 있는 다양한 크기와 유형의 값을 할당하는 지정자로 정의된다. Java에는 다양한 데이터 유형 세트가 있다. Java의 데이터 유형은 두 부분으로 나눌 수 있다.
- 기본 데이터 유형 : integer, character, boolean, float
- 비원시 데이터 유형 : classes, arrays, interface
기본 데이터 유형
기본 데이터 유형은 사전 정의되어 있으며 Java 에서 사용할 수 있다. 기본 값은 다른 기본 값과 상태를 공유하지 않는다.
기본 유형에는 byte, short, int, long, char, float, double 및 boolean의 8가지 기본 유형이 있다.
Integer data types
- byte (1 byte)
- short (2 bytes)
- int (4 bytes)
- long (8 bytes)
Floating Data Type
- float (4 bytes)
- double (8 bytes)
Textual Data Type
- char (2 bytes)
Logical
- boolean (1 byte) (true/false)
Data Type | Default Value | Default size |
byte | 0 | 1 byte |
short | 0 | 2 bytes |
int | 0 | 4 bytes |
long | 0L | 8 bytes |
float | 0.0f | 4 bytes |
double | 0.0d | 8 bytes |
boolean | false | 1 bit |
char | ‘\u0000’ | 2 bytes |
- 모든 숫자 데이터 유형은 부호가 있다. (+/-)
- 데이터 유형의 크기는 모든 플랫폼에서 동일하게 유지된다. (표준화)
- Java의 char 데이터 유형은 UNICODE 문자 세트를 사용하므로 2바이트이다.
이로 인해 Java는 국제화를 지원한다. UNICODE는 전 세계에 알려진 모든 스크립트와 언어를 포괄하는 문자 집합이다.
Java 변수 타입 변환 및 타입 캐스팅
한 타입의 변수는 다른 유형의 값을 받을 수 있다.
Example 1) 더 작은 용량의 변수가 더 큰 용량의 변수에 할당된다.
double d;
int i = 10;
d = i;
이 프로세스는 자동이며 명시적이지 않은 프로세스를 변환 이라고 한다.
Example 1) 더 큰 용량의 변수가 더 작은 용량의 변수에 할당된다.
double d = 10;
int i;
i = (int) d;
이러한 경우 타입 캐스트 연산자를 명시적으로 지정해야 한다 . 이 프로세스를 타입 캐스팅 이라고 한다 .
3개의 레퍼런스를 읽어보고 정리한 소감으로서 잊고 살았던 데이터 유형별 Bytes 사이즈에 관해 학부시절에 배웠던 내용이 떠올랐다.
또한 기본 값이 있다는 사실은 모르고 있었다. 이 점에서 기본값의 존재를 깨닫았다.
학습하고 정리하는데 걸린 시간은 약 1시간 30분으로서 레퍼런스의 수준에 비해 많은 시간을 할애했다.
이정도 수준의 자료는 학습하는데 30분 내외로 끝내고 정리해야 할 것 같다.
다음 학습자료인 Conditionals (조건문)은 20분 내로 끝내고 정리할 수 있도록 해야겠다.
레퍼런스
'Programming > 스프링 부트(Spring Boot)' 카테고리의 다른 글
리액티브 프로그래밍 RxJS Marbles 주요 연산자 자바로 구현하기 (1) | 2024.05.02 |
---|---|
[Spring Boot] - 002 Basic Syntax 기본 문법 (0) | 2024.04.09 |
[Spring Boot] - 001 Spring Boot 개발자 로드맵 (0) | 2024.03.26 |
[Spring Boot] - Hikari (0) | 2024.03.03 |
[Spring Boot] - Valid Annotation 정리 (0) | 2024.02.24 |