1. 상수의 데이터 타입
- double a = 2.2 (O)
- float a = 2.2 -> Error!
- float a = 2.2F (O)
결론 : 실수는 double 형의 데이터 타입을 기본적으로 채택한다. double이 아닌 float으로 바꾸고 싶다면 상수에 F를 붙인다.
마찬가지로 int형의 범위를 넘어가는 숫자를 자료형 long을 통해서 나타내고 싶다면...
- int a = 2147483648 -> Error! : int 자료형의 범위를 넘어간다
- long a = 2147483648 -> Error! : long 으로 명시적으로 바꿔주지 않았다.
- long a = 2147483648L (O) : 상수에 L을 붙인다
2. 형 변환
정의 : 어떤 데이터의 형식을 바꾸다.
- 참고 사이트 : ☕ JAVA 타입 형변환 원리 & 방법 - 완벽 정리
☕ JAVA 타입 형변환 원리 & 방법 - 완벽 정리
타입 변환 (Type Conversion) 하나의 타입을 다른 타입으로 바꾸는 것을 타입 변환 혹은 형변환 이라고 한다. 예를 들어 byte 타입을 int 타입으로 변환하거나 반대로 int 타입을 byte 타입으로 변환하는
inpa.tistory.com
2.1 자동 형 변환
- double a = 3.0F
- 좌변 a : double형
- 우변 3.0 : F를 통해 float으로 변환
Q. 양 변의 데이터 타입이 다른데 에러가 발생하지 않는 이유는?
A. 3.0F라는 상수를 double형으로 자동으로 형 변환
- float과 double 중 double형이 더 많은 정보를 표현/수용할 수 있다.
- 따라서 float 형에서 double형으로 형 변환이 일어나더라도 데이터 손실이 없다.
Q. 그렇다면 반대로 double을 float으로 자동으로 형 변환할 수 있을까?
A. 불가능하다
- float a = 3.0 -> Error!
- float 보다 double이 더 많은 데이터를 표현할 수 있기 때문에 데이터가 유실될 가능성이 있다.
결론 : 자동 형 변환의 원칙은 표현 범위가 좁은 데이터 타입에서 넓은 데이터 타입으로만 허용한다.
2.1.1 예시
int a = 3;
float b = 1.0F;
double c = a + b;
System.out.println(c);
- a+b를 진행한다. int 와 float의 덧셈이므로 우선 형을 같도록 형 변환을 한다. 즉 int가 float형으로 변환된다. 따라서 a+b = 4.0F
- 4.0F를 c에 대입한다. c의 데이터 타입은 double형이고 double형에 float형을 대입하면 float형은 double형으로 형 변환이 일어난다.
2.2 명시적 형 변환
정의 : 수동으로 직접 형 변환
- float a = (float)100.0;
- int b = (int)100.0F;
3. 연산자
3.1 연산자의 우선순위
우선순위 | 연산자 | 결합 방향 |
1 | [ ] () . | -> |
2 | ++ -- +(양수) -(음수) ~ ! (type) new | <- |
3 | * / % | -> |
4 | +(더하기) -(빼기) +(문자열 결합 연산자) | -> |
5 | << >> >>> | -> |
6 | < <= > >= instanceof | -> |
7 | == != | -> |
8 | & & | -> |
9 | ^ ^ | -> |
10 | | | | -> |
11 | && | -> |
12 | || | -> |
13 | ? : | <- |
14 | = *= /= += -= %= <<= >>= >>>= &= ^= != | <- |
3.2 비교와 불린
- 주의! 문자열을 비교할 때는 ==(동등 비교 연산자)를 사용하는 것이 아니라 .equals()라는 메소드를 사용해야 한다.
4. 입력과 출력
package org.opentutorials.javatutorials.io;
public class InputDemo {
public static void main(String[] args) {
System.out.println(args.length);
}
}
- String[] : 문자열로 구선된 배열을 의미
- args : 문자열 데이터 타입을 담을 수 있는 배열
4.1 시작할 때 입력
4.2 실행 중에 입력
:자바에서 기본적으로 제공하는 라이브러리 가운데 Scanner라는 라이브러리를 이용해 실행중에 입력을 받는다.
package org.opentutorials.javatutorials.io;
// Scanner를 사용하려면 애플리케이션에 로드해야 한다.
// java.util 안에 있는 Scanner라는 객체를 사용하겠다
import java.util.Scanner;
public class InputDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int i = sc.nextInt(); // 실행을 멈추고 입력을 기다리는 상태가 된다
System.out.println(i*1000);
sc.close();
}
}
'STUDY > JAVA' 카테고리의 다른 글
[JAVA API] java.nio.file - Class Paths (4) | 2025.01.29 |
---|---|
[JAVA API] java.nio.file - Interface Path (0) | 2025.01.29 |
[생활코딩! 자.프.입] 5부 : 고급 프로그래밍 기법 (4) | 2025.01.25 |
[생활코딩! 자.프.입] 4부 : 자바 API 및 객체지향 프로그래밍 (2) | 2025.01.23 |
[생활코딩! 자.프.입] 3부 : 객체지향 프로그래밍 (2) | 2025.01.21 |