자바

자바 - 변수와 타입

록's 2023. 1. 5. 11:51
728x90
반응형

 

변수

  • 변수 (variable)란? 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름
  • 자바의 변수는 다양한 타입(정수형, 실수형 등)의 값을 저장 할 수 없다.

변수 선언

  • 변수를 사용하려면 변수 선언이 필요. 변수 선언은 어떤 타입의 데이터를 저장할 것인지 그리고 변수 이름이 무엇인지를 결정하는 것
  • - 변수에 최초로 값이 대입될 때 메모리에 할당되고, 할당 메모리에 값이 저장

 

byte, short, char, int, long 타입

  • 변수는 선언될 때의 타입에 따라 저장할 수 있는 값의 종류와 허용 범위가 달라짐
  • 정수 타입은 5개로 메모리 할당 크기와 저장되는 값의 범위가 다름
  • 메모리 크기를 n이라고 했을 때 정수 타입은 동일한 구조의 2진수로 저장

 

문자 리터럴과 char 타입

  • 문자 리터럴 : 하나의 문자를 작은 따옴표(')로 감싼 것
  • 문자 리터럴을 유니코드로 저장할 수 있도록 char 타입 제공
char var1 = 'A';    //'A' 문자와 매핑되는 숫자 : 65로 대입
char var3 = '가';      // '가' 문자와 매핑되는 숫자 : 44032로 대입
  • char 타입도 정수 타입에 속함
char c = 65;    // 10진수 65와 매핑되는 문자 : 'A'
char c = 0x0041;	//16진수 0x0041과 매핑되는 문자 : 'A'

 

2진수 1bit

8진수 3bit

16진수 4bit

 

실수 타입

float과 double 타입

  • 실수 타입에는 float과 double이 있음
  • double 타입이 float 타입보다 큰 실수를 저장할 수 있고 정밀도도 높음

boolean 타입 변수에 대입되는 논리 타입

  • 참과 거짓을 의미하는 true 와 false로 구성되며 boolean 타입 변수에 대입할 수 있음
  • 주로 두 가지 상태값을 저장하는 경우에 사용. 조건문과 제어문의 실행 흐름을 변경하는데 사용

문자열과 String 타입

  • 문자열 : 큰따옴표 ("")로 감싼 문자들
  • 문자열을 변수에 저장하려면 String 타입을 사용
String var1 = "A";
String var2 = "홍길동";
  • 이스케이프 문자 : 문자열 내부에 역슬래쉬(\)가 붙은 문자
이스케이프 문자  
\* * 문자 포함
\' ' 문자 포함
\\ \ 문자 포함
\u 16진수 16진수 유니코드에 해당하는 문자 포함
\t 출력시 탭만큼 띄움
\n 출력시 줄바꿈(라인피드)
\r 출력시 캐리지 리턴

자동 타입 변환

  • 데이터 타입을 다른 타입으로 변환하는 것
  • 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 대입될 때 발생
  • 정수 타입이 실수 타입으로 대입되면 무조건 자동 타입 변환이 됨
  • 예외 : char 타입보다 허용 범위가 작은 byte 타입은 char 타입으로 자동 변환될 수 없음

캐스팅 연산자로 강제 타입 변환하기

  • 큰 허용 범위 타입을 작은 허용 범위 타입으로 쪼개어서 저장하는 것
  • 캐스팅 연산자로 괄호 ( ) 를 사용하며, 괄호 안에 들어가는 타입은 쪼개는 단위
  • 예) int -> byte 강제 타입 변환

연산식에서 int 타입의 자동 변환

  • 정수 타입 변수가 산술 연산식에서 피연산자로 사용되면 int 타입보다 작은 byte, short 타입 변수는 int 타입으로 자동 변환되어 연산수행
  • byte 변수가 피연산자로 사용되면 변수값은 int 값으로 연산되며, 결과값 역시 byte 변수가 아닌 int 변수에 저장해야함

String 타입변환하기

변환 타입 사용 예
String -> byte String str = "10";
byte value = Byte.parseByte(str);
String -> short String str = "200";
short value = Short.parseByte(str);
String -> int String str = "300000";
int value = Integer.parseByte(str);
String -> long String str = "40000000000";
long value = Long.parseByte(str);
String -> float String str = "12.345";
float value = Float.parseByte(str);
String -> double String str = "12.345";
double value = Double.parseByte(str);
String -> boolean String str = "true";
boolean value = Boolean.parseByte(str);
  • 기본 타입의 값을 문자열로 변경할 때는 String.valueOf() 메소드 이용

 

변수 범위를 나타내는 중괄호 {} 블록

  • 조건문과 반복문의 중괄호 {} 블록 내에 선언된 변수는 해당 중괄호 {} 블록 내에서만 사용 가능

 

println() 메소드로 변수 값 출력하기

  • 모니터에 값을 출력하기 위해 System.out.println() 이용
  • 출력 방법에 따라 println() 이외에도 다음과 같이 print(), printf()를 사용할 수 있음
메소드 의미
println(내용); 괄호 안의 내용을 출력하고 행을 바꿔라
print(내용); 괄호 안의 내용을 출력하고 행은 바꾸지 말아라
printf("형식문자열", 값1, 값2..); 형식 문자열에 맞추어 뒤의 값을 출력하라
  • printf()의 형식 문자열에서는 %와 conversation(변환 문자)를 필수로 작성하고 나머지는 생략가능

 

printf()

형식화된 문자열 설명 출력형태
정수 %d
%6d
%-6d
%06d
정수
6자리 정수, 왼쪽 빈자리 공백
6자리 정수, 오른쪽 빈자리공백
6자리 정수. 왼쪽 빈자리 0채움
123
___123
123___
000123
실수 %10.2f
%-10.2f
%010.2f
정수 7자리+소수점+소수 2자리. 왼쪽 빈자리 공백
정수 7자리+소수점+소수 2자리. 오른쪽 빈자리 공백
정수 7자리+소수점+소수 2자리. 왼쪽 빈자리 0채움
____123.45
123.45____
0000123.45
문자열 %s
%6s
%-6s
문자열
6자리 문자열, 왼쪽 빈자리 공백
6자리 문자열, 오른쪽 빈자리 공백
abc
___abc
abc___
특수 문자 \t
\n
%%
탭(tab)
줄바꿈
%


%

 

Scanner 타입 변수 활용하기

  • Scanner 타입 변수를 선언하고 대입 연산자 =를 사용해서 new 연산자로 생성한 Scanner 객체를 변수에 대입
  • scanner.nextLine()을 실행하면 키보드로 입력된 내용을 문자열로 읽고 좌측 String 변수에 저장

 

 

 

 

 

 

 

728x90
반응형

'자바' 카테고리의 다른 글

자바 - 클래스 - 02  (0) 2023.01.11
자바 - 클래스 - 01  (0) 2023.01.10
자바 - 참조 타입  (0) 2023.01.09
자바 - 조건문과 반복문  (0) 2023.01.06
자바 - 연산자  (0) 2023.01.05