변수란?
-데이터를 저장하는 메모리 공간이다.
-한번에 하나의 데이터만 저장 가능하다. 그러나 저장되는 데이터가 언제든지 변할 수 있기 때문에 변수라고 한다.
변수 선언 - 변수 초기화 과정을 통해 사용 가능하다.
1. 변수 선언을 통해 메모리 공간을 할당 받는다
int = a ;
데이터타입 = 변수명;
변수명은 식별자 작성 규칙에 따른 이름을 지정한다
*식별자 작성 규칙
- 대,소문자를 구별한다.
- 첫 글자에 숫자가 올 수 없다
- 특수문자는 &와 _만 가능하다.
- 공백 사용이 불가능하다.
2. 변수 초기화를 통해 변수에 데이터를 저장한다.
=> 변수에 이미 저장된 데이터가 있다면 해당 데이터가 제거되므로 초기화라고 함
=> 변수 선언 전에는 초기화 사용 불가
a=1;
3. 동시에 수행하는 법
int a = 10;
데이터 타입 변수명 = 데이터;
위의 두 과정이 진행되지 않으면 변수에 저장된 값을 출력할 수 없다.
변수값 출력은
System.out.println(a); 로 출력한다
동일한 데이터 타입 변수 여러개를 동시에 선언할 경우?
int x ;
int y ;
int x, y; 형태로 , 로 연결해주면 된다.
초기화는 int x = 10, y = 20 요렇겡
System.out.println("=======================================);
앞에서 변수를 나타낼 때 썼던 데이터타입에 대한 설명
-자바에서 처리할 수 있는 데이터의 종류
-데이터 종류에 따라 변수 선언 시 데이터타입을 달리해야한다.
-데이터타입은 크게 참조형과 기본형으로 구분됨.
-데이터타입에 따라 메모리 크기가 달라지므로 효율적인 메모리 공간 사용을 위해 데이터타입을 구분해야함 (이유)
(기본형 데이터타입은 종류에 따라 크기가 다르지만 참조형 데이터타입은 무조건 4Byte)
|
1Byte |
2Byte |
4Byte |
8Byte |
정수형 |
byte |
short |
int |
long |
실수형 |
|
|
float |
double |
문자형 |
|
char |
|
|
논리형 |
boolean |
|
|
|
2. 논리형 데이터타입
자바의 기본 데이터타입 8개를 제외한 나머지 타입
대표적으로 문자열을 저장하는 String 타입이 있다.
System.out.println("=======================================);
<정수형, 실수형>
정수 데이터의 표현 범위는
-2^(x-1) ~ +2^(x-1)-1
* byte(1Byte = 8bit) : -2^7 ~ 2^7-1 = -128 ~ +127
* short(2Byte = 16bit) : -2^15 ~ 2^15-1 = -32768 ~ +32767
* int(4Byte = 32bit) : 약 -21억 ~ +21억 => 정수의 기본형
* long(8Byte = 64bit) : 약 -922경 ~ +922경
실수 데이터 표현 범위는 근사치 표현 방식으로 표현한다.
정수 데이터의 표현
1. 진법에 대한 표현 방법
- 기본적으로 정수 데이터는 10진수로 표시한다.
- 2진수 (0 ~ 1)는 숫자 앞에 접두사 0b를 붙혀서 표현
- 8진수 (0~7) 는 숫자 앞에 접두사 0 붙혀서 표현
- 16진수 (0~F)는 숫자 앞에 0x를 붙혀서 표현
2. 큰 정수에 대한 자릿수 표기 방법
- 자바에서는 큰 정수를 표기할 때 (,) 콤마 대신 (_)를 사용 함
=> 숫자에는 영향이 없고 단지 사용자가 식별하기 편하게 해줌
ex) 10000000000 => 10_000_000_000
3. long 타입의 정수에 대한 표기 방법
- int 형 범위를 벗어나는 정수 또는 범위 안에 있지만 long 타입으로 표기할 경우
정수 뒤에 접미사 L 표기하여 long 타입을 표현함
ex) 10은 int 형 정수지만 10L은 long 형 정수로 취급
실수 데이터의 표현
1. 실수형의 기본 데이터타입은 double 형이므로 float 타입에 저장 불가능하다 .
=> 만약, 실수 데이터를 float 타입으로 표현하려면 접미사 F나 f를 붙인다.
ex. 3.14는 double 타입이지만 3.14f는 float 타입이다
2. 실수 데이터를 표현할 때 근사치 표현 방식을 사용한다.
- float 타입은 소수점 9번째 자리에서 반올림해 8번째자리까지 표현한다
- double 타입은 소수점 18번째 자리에서 반올림해 17번째 자리까지 표현한다
3. 아주 크거나 작은 실수를 표현할 때 지수 표현 방식을 사용
- 어떤 실수를 X.X * 10^Y 형태로 표현하는데 이를 자바에서는 간편하게 X.XeY로 표현할 수 있다.
ex. 3.14 * 10^10 을 3.14e10으로 => 31400000000
e-10이면 소수점 앞으로 이동
<논리형>
boolean 타입
-자바에서 참 또는 거짓에 해당하는 데이터를 처리하는 타입이다.
-참을 true로 표기하고 거짓을 false 로 표기함
-무조건 소문자로만 표기
-문자열 "true" "false"와는 다르다
<문자형>
을 설명하기 전에
아스키 코드 = ASCII 중에서
0 a A에 해당하는 코드 기억하기
0 = 48
A = 65
a = 97
char 타입
-char 타입은 1개의 문자 데이터를 표현하는 데이터타입이다.
-반드시 ('')안에 1개의 문자가 포함되어야 한다. 아무것도 없이 '' 만 표현 불가능하고 두개 이상의 문자 절대 안됨
-2Byte 크기를 갖는 유니코드 체계를 사용해 2^16 65536개의 문자 표현이 가능하다~
-유니코드 값은 16진수 4자리 정수로 표기함 ('\uXXXX')
-정수 형태의 데이터로 취급되므로 문자 데이터대신 정수 값을 사용하거나 정수 데이터와 연산도 가능하다
ex. char ch2 = 65;
System.out.println(ch2);
대문자 A가 출력~
주의! 문자로 특수기호 \ 표기할 경우
System.out.println(\);
=> 자바의 문자 데이터에서 \기호는 뒤에 이스케이프 문자가 붙어야하는데
\기호만 표기할 경우 자바는 잘못된 데이터로 판단하여 오류가 발생함!
=> 따라서, \ 기호를 출력하기 위해서는 '\\' 형태로 입력해야 한다.
System.out.println('\\');
=> 위의 규칙과 마찬가지로 작으 따옴표 1개 (')를 출력할 경우
/System.out.println('''); //오류발생 따라서 '\'' 라고 입력해야함
System.out.println('\'');
System.out.println("=======================================);
<참조형 데이터 타입>
문자 vs 문자열
- 문자는 작은 따옴표 ('')로 표기하는 1개의 문자데이터고 문자열은 ("")로 표기하는 0개 이상의 문자데이터의 집합
-문자는 char로 관리되고 문자열은 String 타입
String 타입
-기본 데이터타입이 아니라 참조 데이터타입의 일종
-문자열 데이터를 보관하는 용도
-반드시 큰 따옴표를 사용해야 하고, 0개 이상의 문자열을 표현 가능하다
=> 큰 따옴표 사이에는 아무것도 없이 표현 가능 (""= 널스트링)
String 타입도 char 타입과 마찬가지로 이스케이프 문자가 포함될 수 있다.
=> \ 기호를 출력하려면 "\"가 아닌 "\\" 형태로 저장
char 타입은 ' 를 표현하기 위해 ''' 대신에 '\''로 표현해야 했는데
String 타입은 "를 표현하기 위해 "\""로 표현한다.
System.out.println("나는 자바를 좋아합니다")
System.out.println("나는 "자바"를 좋아합니다") < 노노
System.out.println("'나'는 \"자바\"를 좋아합니다.");
간단한 이스케이프 문자
\n 줄바꿈
\t 탭
System.out.println("=======================================);
println() 메서드와 print() 메서드의 차이점
* - println() 메서드는 출력작업 후 엔터키 역할을 통해 줄바꿈을 수행하고
* print() 메서드는 출력 작업 후 줄바꿈을 수행하지 않음
* - println() 메서드는 아무 데이터도 없이 실행할 경우 줄바꿈만 수행함
'develop > Java' 카테고리의 다른 글
for 문과 while문 - 중첩 (2) (0) | 2021.01.25 |
---|---|
for 문과 while문 - (1) (0) | 2021.01.23 |
switch 조건문 (0) | 2021.01.19 |
if 조건문 (0) | 2021.01.19 |
형변환 연산자 (0) | 2021.01.19 |