Cute Running Puppy

Language/[Java] 자바 완전 정복

1주차_02. 자료형

R.silver 2022. 1. 20. 21:19
반응형

변수 선언

변수에 저장할 데이터의 타입과 이름을 결정하는 것

자료형 변수이름;

 

//사용 예시
int age;
float avr;
int a, b, c; //여러개를 한번에 선언 가능

변수 이름 작성 규칙

  • 첫 글자는 문자이거나, $, _ 이어야 한다. 숫자로 시작할 수 없다
  • 대소문자를 구분한다
  • 첫 문자는 소문자로 작성하되, 다음 단어부터는 첫 글자를 대문자로 작성한다
  • 문자수의 길이가 없다
  • 자바 예약어는 사용할 수 없다 

값 저장 방법

대입 연산자(=)를 사용하여 변수에 값을 대입

변수를 사용하기 전 반드시 초기화

변수 사용 범위 

로컬 변수

메소드 블록 내에서 선언된 변수로 메소드 블록 내부에서만 사용 가능하다

자바에서 변수는 어디에서든 선언할 수 있지만 변수가 속한 블록 안에서만 사용 가능하다

 

public class Example {
	public static void main (String[] args) {
    	int a = 10; // 로컬 변수
        int b; // 로컬 변수
	}
}

기본 타입 

정수, 실수, 논리 값을 저장할 수 있는 타입

자바에서 제공하는 기본 타입은 8개

byte, charm short, int, long
float, double
boolean

타입 변환

데이터의 타입을 다른 데이터 타입으로 변환하는 것 

자동 타입 변환

자동으로 타입이 바뀌는 것 (프로그램 실행 도중에 자동으로 변환)

값의 허용 범위가 작은 타입 -> 값이 허용 범위가 큰 타입

기본 자료형의 크기 비교
byte < short < int < long < float < double

 

byte a = 10;
int intValue = a; //a가 byte 자료형에서 int 자료형으로 변환됨

 

정수 타입이 실수 타입으로 저장될 때에는 무조건 자동 타입 변환이 이루어짐

byte는 char로 자동 변환될 수 없다 (char는 음수를 포함하지 않기 때문)

강제 타입 변환

큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 저장하는 것 

작은_허용_범위_타입 = (작은_허용_범위_타입) 큰_허용_범위_타입;

 

int a = 10;
byte b = (byte) a; //a를 강제로 byte로 저장

 

int 타입은 char 타입으로 자동 변환되지 않아서 캐스팅 연산자를 사용해서 강제로 변환해야 함

(문자를 출력할 때 사용)

실수 -> 정수 강제 변환하면 소수점 이하 부분은 버려지고 정수 부분만 저장됨

 

정수 타입 변수가 산술 연산에서 피연산자로 사용되면 byte, short 타입은 자동으로 int 형으로 바뀌어 연산됨

-> 처음부터 int 타입으로 선언하면 타입 변환을 줄일 수 있다 (실행 성능 향상)

 

그렇지만 모든 변수가 int 형으로 변환되는 것은 아님

두 연산자 중 허용범위가 큰 타입으로 변환된다 

 

실수 연산에서도 동일하게 자동으로 타입 변환이 이루어진다 

+ 연산에서의 문자열 자동 타입 변환

자바의 + 연산자의 2가지 기능

  1. 피연산자가 모두 숫자이면 덧셈 연산 수행
  2. 피연산자 중 하나가 문자열일 경우 나머지 피연산자도 문자열로 자동 변환한 후 문자열 결합 연산 수행
int res = 1 + 2; // res = 3

String str = "1" + 2; // str = 12, 2가 string 으로 자동 변환됨

 

연산자에서 + 연산자가 연이어 나오면 앞에서부터 순차적으로 연산 수행

먼저 수행된 연산이 결합 연산이라면 이후 + 연산은 모두 결합 연산이 된다 

 

String str = 1 + 2 + "3" // str = 33
String str = 1 + "2" + 3; //str = 123

문자열을 기본 타입으로 강제 타입 변환

문자열 "12"를 정수 12로 변환할 때

변환 타입 예시
String -> byte String str = 1;
byte value = Byte.parseByte(str);
String -> short String str = 100;
Short value = Short.parseShotr(str);
String -> int String int = 100000;
int value = Integer.parseInt(str_;
long, float, double, boolean 모두 가능 같은 방식으로 사용 

문자열이 숫자가 아닌 알파벳이나 문자, 한글 등을 포함했을 땐 숫자 형식 예외 발생 (NumberFormatException)

 

반대로

가본 타입을 문자열로 변경하고 싶으면 아래 코드를 작성하면 된다 

String str = String.valueOf(기본타입값);
반응형

'Language > [Java] 자바 완전 정복' 카테고리의 다른 글

2주차_06. 클래스와 객체  (0) 2022.01.27
2주차_05. 참조 자료형 2  (0) 2022.01.27
2주차_05. 참조 자료형 1  (0) 2022.01.27
2주차_04. 제어문과 제어 키워드  (0) 2022.01.27
1주차_03. 연산자  (0) 2022.01.20