/* Hello.java */
package 경로.하위경로;
public class Hello {
// 클래스 블록
// 클래스 명은 파일명과 같아야 함
public static void main(String[] args) {
// 메소드 블록
System.out.println("Hello, java");
}
}
byte , char , short , int , longfloat , doubleboolean int x; // 선언
x = 10; // 대입
int y = 10; // 변수 초기화
int z = x; // 복사
정수 타입은 5개가 있고 각 타입마다 차지하는 메모리 공간이 다르다.
| 타입 | 메모리 | 범위 : -n ~ n-1 |
|---|---|---|
byte | 1byte | 2^7 |
short | 2byte | 2^15 |
char | 2byte | 0 ~ 2^16 - 1 |
int | 4byte | 2^31 |
long | 8byte | 2^63 |
10진수 외 숫자 저장
int a = 0b1011; // 2진수
int b = 013; // 8진수
int c = 0x1A; // 16진수
long 타입에서 값이 int 범위를 초과할 경우, 숫자 뒤에 L을 붙여준다.
long longVal = 1000000000000L;
유니코드 숫자 값을 저장하기 때문에 char 타입도 정수 타입에 속한다.
char a = 'A'; // 유니코드 65
char b = 65; // A
char c = 0x0041; // A
char d = '가'; // 유니코드 44032
char e = ' '; // 빈 문자 대입 시 공백(32)으로 저장
문자를 직접 지정할수도 있고, 이때 문자를 작은 따옴표로 감싸야 한다.
float 타입과 double 타입이 있다.
실수를 기본적으로 double 타입으로 해석하므로, float 타입은 숫자 뒤에 f 또는 F를 붙여줘야 한다.
실수를 부호 부분 / 지수 부분 / 가수 부분 으로 나누어 저장한다.
double a = 3.14; // 15자리 소수까지 저장
float b = 3.14f; // 7자리 소수까지 저장
// 10의 거듭제곱 리터럴
double c = 5e2;
double d = 4e-2;
boolean a = true;
boolean b = (a == true); // true
큰 따옴표로 감싸야 한다
String var1 = "A";
String var2 = "ABC";
String var3 = """
조건문, 반복문 사용 시 중괄호 블럭 내에서 선언된 변수는 중괄호 밖에서 사용할 수 없다.
큰 타입 변수에 작은 타입 값이 대입될 때,
해당 값의 타입이 큰 타입으로 자동 변환된다
ex) 실수 타입에 정수 타입이 대입될 때, int 타입 값이 실수 타입으로 자동 변환된다.
int x = 100;
float var1 = x; // 1.0E2f 로 저장
double var2 = x; // 1.0E2 로 저장
문자의 경우, 유니코드 숫자 값이 int 로 바뀌어 저장된다.
char x = 'A';
int var = x; // 65
큰 타입 값을 작은 타입에 대입하고 싶을 때
타입 명을 값 앞에 괄호로 붙여준다.
int x = 10;
byte var = (byte) 10;
값이 커서 넘칠 경우 앞부분 bytes 들이 날아가고 값이 제대로 보존되지 않는다.
double pi = 3.14;
int intPi = (int) pi; // 3
실수 -> 정수 대입 시 소수 부분은 버려지게 된다.
String str = "1000";
int intVal = Integer.parseInt(str);
long longVal = Long.parseInt(str);
float val = Float.parseFloate(str)
String.ValueOf() String str = String.valueOf(10); // "10"
피연산자가 정수 타입이면 연산의 결과는 int
피연산자가 정수 타입이고 그중 long 타입이 있으면 결과는 long
피연산자 중 하나가 실수이면 연산의 결과는 실수 타입
int x = 10;
double y = 0.1;
double result = x + y = 10.1 // 10이 10.0으로 자동 변환됨
정수 타입 연산에서 오버플로우가 발생하면 결과값은 해당 정수타입의 최솟값이 된다.
언더플로우가 발생하면 결과값은 해당 정수타입의 최댓값이 된다.
byte a = 127;
a++; // -128
byte x = -128;
x--; // 127
Scanner 객체를 생성한다nextLine() 메서드를 이용해서 입력받은 값을 변수에 저장한다.Scanner scanner = new Scanner(System.in); // 생성
System.out.print("값을 입력하세요 : ")
String data = scanner.nextLine(); // 저장