변수
변수란 하나의 값을 저장할 수 있는 메모리 공간이며 변수를 선언하여 저장할 공간을 마련하여 사용한다.
# 코드
package _ch02;
public class Ex2_3 {
public static void main(String[] args) {
/*
변수에 값을 저장하는 방법은 '='기호를 사용하며
이때의 '='는 등호가 아니라 대입의 의미를 가지고 있다.
*/
int a = 4, b = 2;
}
}
변수의 값 읽어오기 = 변수의 이름을 적는다
# 코드
package _ch02;
public class Ex2_3 {
/**
* @param args
*/
public static void main(String[] args) {
int a = 4, b = 2;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b);
}
}
변수의 타입
int age = 25
여기서 int형임을 선언해주었기 때문에 실수나 string값이 들어오면 에러가 발생한다
char = 문자형
double = 실수
값의 타입
값은 문자와 숫자
숫자는 정수와 실수로 나눌 수 있다
문자 = char
정수 = byte, short, int, long
실수 = float, double
논리 = boolean true, false
변수, 상수, 리터럴
변수 = 하나의 값을 저장하기 위한 공간
상수 = 한번만 값을 저장 가능한 변수
변수 앞에 final을 기입해주면 상수가 된다.
리터럴 = 그 자체로 값을 의미하는 것
상수와 값은 개념이지만 자바에서 상수는 한번만 값을 저장 가능한 변수로 지정했기 때문에 구분하려 리터럴이라 한다.
ex) int score = 100; 에서 ‘100’이 리터럴 값이다.
package _ch02;
public class Ex2_3 {
/*
score의 값은 변수형이기 때문에 출력값이 200이 나온다.
*/
public static void main(String[] args) {
int score = 100;
score = 200;
System.out.println(score);
}
}
package _ch02;
public class Ex2_3 {
/*
final으로 상수로 설정했기 때문에 에러가 발생한다.
*/
public static void main(String[] args) {
final score = 100;
score = 200;
System.out.println(score);
}
}
리터럴의 타입과 접미사
리터럴의 접두사와 접미사
종류 리터럴 접미사
논리형 | false, true | 없음 |
정수형 | 123, 0b0101, 077, 0xFF, 100L | L |
실수형 | 3.14, 3.0e9, 1.4f | f, d |
문자형 | ‘A’, ‘1’, ‘\n’ | 없음 |
문자열 | “ABC”, “123”, “A”, “true” | 없음 |
ex)
boolean power = ture;
char ch = ‘A’;
String str = “ABC”;
byte b = 127; int타입으로 입력 byte 타입은 -128 ~ 127까지의 값을 저장 가능
int i = 100; //10진수
int oct = 0100; // 8진수
int hex = 0x100; //16진수
접두사는 대소문자 구별 안함
long l = 10_000_000_000L; // 값이 20억을 넘어가면 접미사를 붙혀야함
long l = 100; // 이 외에는 생략해도 괜찮음.
float f = 3.14f; // 생략시 더블타입으로 변경되어 생략 불가능함.
double d = 3.14d; // 생략가능.
변수와 리터럴의 타입 불일치
범위가 ‘변수 > 리터럴’ 인 경우는 괜찮음
int i = 'A'; //int > char 여기서 char A 는 65를 의미
범위가 ‘변수 < 리터럴’인 경우 에러
int i = 30_000_000_0000; // int의 범위인 20억을 벗어남
long l = 3.14f; // 실수형의 저장 범위가 정수형의 저장 범위보다 더 넓어 에러발생
float f = 3.14; // float < double 접미사가 생략되어 double형으로 변환됨
실습
package _ch02;
public class Ex2_4 {
/**
* @param args
*/
public static void main(String[] args) {
boolean power = true;
System.out.println(power);
byte b = 127;
System.out.println(b);
int oct = 010; // 8진수, 10진수로 8
int hex = 0x10; // 16진수, 10진수로 16
long l = 10_000_000_000L; // 20억 이상의 수엔 접미사 L을 붙혀야 한다.
float f = 3.14f; // f 를 생략시 에러 발생
double d = 3.14f; // f 를 입력해도 double형의 범위가 더 넓음으로 에러 미발생
System.out.println(10.);
System.out.println(.10);
System.out.println(10f);
System.out.println(1e3);
}
}
'코딩딩 > Java' 카테고리의 다른 글
비트 연산자와 시프트 연산자, 각종 조건문과 반복문 (0) | 2023.06.29 |
---|---|
클래스와 메소드 (0) | 2023.06.29 |
각종 연산자와 조건식, 형변환과 printf 메소드 (0) | 2023.06.28 |
자바의 데이터 입력 방법, 배열, 각종 연산자 (0) | 2023.06.28 |
자료구조 - Arraylist (0) | 2023.05.14 |