Chapter 1: 값 타입과 참조 타입
- 값 타입과 참조 타입
- Java 기본 데이터 타입
Chapter 2: 변수 이름 붙이기
- 변수 명명 규칙
- 권장되는 변수 이름 짓기
Chapter 3: 기본 데이터 타입 사용
- 지역 변수 선언과 값 할당
- 연산자
- 연산자 우선 순위
Chapter 4: 데이터 타입 변환
- 기본 데이터 타입 변환 규칙
- 암시적 형 변환 (Implicit data type conversion)
- 명시적 형 변환 (Explicit data type conversion)
- 연산 시 타입 변환
Chapter 1: 값 타입과 참조 타입
값 타입과 참조 타입
- 값 타입 (Value Type): 값 타입 변수는 스택(Stack) 영역에 저장되며, 해당 데이터가 직접 포함된다(데이터가 copy된다).
- 참조 타입 (Reference Type): 참조 타입 변수는 힙(Heap) 영역에 저장되며, 데이터가 저장되어 있는 주소를 가리킨다.
Java 데이터 타입
- 고정 소수점(소수점 위치가 고정적): byte, char, short, int, long
- 부동 소수점(소수점 위치가 가변적): float, double
Chapter 2: 변수 이름 붙이기
변수 명명 규칙
- 하나 이상의 글자로 구성되어야 함.
- 첫 번째 글자는 문자, _(Underscore), '$' 이어야 한다.
- 예약된 키워드는 사용할 수 없다. ex) int, float, do, final, if 등등
권장되는 변수 이름 짓기
- CamelCasing 명명 규칙: 첫 문자는 소문자로 시작하고, 두 번째 단어부터는 첫 글자가 대문자로 시작하는 방법으로 메소드, 지역 변수, 필드와 파라미터, 상수 등에 사용한다.
int productCount;
void openDocument() { }
- PascalCasing 명명 규칙: 모든 단어의 첫 단어를 대문자로 지정하는 방법으로 클래스, 인터페이스, 열거형 등에 사용한다.
class ProductFactory { }
Chapter 3: 기본 데이터 타입 사용
지역 변수 선언과 값 할당
- 일반적으로 변수는 아래와 같이 선언하고 값을 할당한다.
int customerCount;
customerCount = 0;
int customerCount = 0;
int customerCount = 1, productNumber = 2;
- char type은 ' ' 기호를 사용하여 값을 할당한다.
char initial = 'k';
- Java에서는 초기화되지 않은 지역 변수는 사용할 수 없다.
int customerCount;
System.out.println(customerCount);
HelloWorld.java:6: error: variable customerCount might not have been initialized
System.out.println(customerCount);
연산자
연산자 우선순위
- Java의 연산자에서 할당 연산자(=, +=. -= 등)는 우선 순위가 가장 낮아 항상 식의 마지막에 실행된다
- 할당 연산자를 제외한 나머지 연산자들은 왼쪽에서 오른쪽으로 수행된다.
ex) x = y = z -> x = (y = z) , x + y + z -> (x + y) + z
Chapter 4: 데이터 타입 변환
Primitive Data Type(기본 데이터 타입) 변환 규칙
- 각 Data type의 값의 표현 범위를 기준으로 한다.
- 각 Data type의 메모리 공간 크기를 기준으로 하지 않는다.
암시적 타입 변환 (Implicit type casting)
- 작은 범위의 data type -> 큰 범위의 data type으로 변환할 때 자동으로 Type이 변환되는 것.
명시적 타입 변환 (Explicit type casting)
- 큰 범위의 data type -> 작은 범위의 data type으로 변환할 때 타입 변환식(cast expression)을 사용하여 변환하는 것.
public class Typecasting {
public static void main(String[] args){
int i = 0;
long l = i; // int -> long 변환 O (암시적 타입 변환)
int j = (int)l; // long -> int 변환 X, 따라서 type casting 연산자 사용 (명시적 타입 변환)
/* 암시적 형변환 */
int intValue = 123; // 1.0D -> double, 1.0F -> float, 12L -> long
long longValue = intValue;
System.out.printf("(long)%d = %d", intValue, longValue);
System.out.println("");
/* 명시적 형변환 */
long longValue2 = 100L;
int intValue2 = (int)longValue2;
System.out.printf("(long) %d = %d", longValue2, intValue2);
}
}
연산 시 타입 변환
- 정수형 간의 산술 연산: int로 암시적 타입 변환
- 정수와 실수의 산술 연산: float과의 연산이면 float / double과의 연산이면 double로 암시적 타입 변환
/* 정수형 간의 산술 연산 */
byte byteValue = 6;
short shortValue = 7;
short result = byteValue + shortValue; // 오류
int result = byteValue + shortValue; // 동작함
short result = (short)(byteValue + shortValue); // short으로 할당할 경우 명시적 타입 변환
/* 정수와 실수의 산술 연산 */
float floatValue = 12.5F;
int intValue = 5;
float result = floatValue + intValue; // float으로 암시적 타입 변환
double doubleValue = 12.5;
int intValue = 5;
double result = doubleValue + intValue; // double로 암시적 타입 변환
출처: https://github.com/gikpreet/class-programming_with_java
GitHub - gikpreet/class-programming_with_java
Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.
github.com
'Java' 카테고리의 다른 글
[OOP] 객체지향 설계 원칙: SOLID (0) | 2024.08.23 |
---|---|
[OOP] 객체 지향 프로그래밍(OOP)의 정의와 4가지 특징 * (0) | 2024.08.23 |
[Java] 04. Statement와 Expression (0) | 2024.08.22 |
[Java] 02. Java 프로그래밍 언어 개요 (0) | 2024.08.22 |
[Java] 01. Java 개요 (0) | 2024.08.20 |