이론
변수와 타입
- int value = 10
데이터타입 value라고 하는변수 대입연산자 정수 10(값)
- 변수 (Variable) :
값을 저장할 수 있는 메모리의 공간
프로그램에 의해 값이 수시로 변동될 수 있다
복수 개의 값을 저장X, 하나의 값만을 저장할 수 있다
ㄴ명명규칙 : 첫글자는 문자or$,_이어야 하고 대소문자를 구별한다
첫문자는 소문자로 하되 다른단어는 대문자로 한다(ex. carBodyColor)
문자 길이의 제한은 없으며 예약어는 사용할 수 없다
(예약어 Ex. boolean, byte, char, int, private, class, null, void, ture, false, etc.)
같은 타입의 변수는 ,를 이용하여 한꺼번에 선언 가능 (ex. int x, y, z;) - 변수는 직관적으로 의미있는 변수 이름을 지어주는게 좋다
- 변수값 저장 : 대입연산자 = 를 이용한다 (=우측의 값을 좌측 변수에 저장한다)
*리터럴(literal) : 소스 코드 내에 직접 입력된 값
(정수 리터럴, 실수 리터럴, 문자 리터럴, 논리 리터럴)
- 정수 리터럴 : 기본 10진수, 0으로 시작되는 8진수, 0x로 시작하는 16진수
실수 리터럴 : 소수점이 있는 리터럴은 기본 10진수, e가 있는 리터럴은 10진수 지수와 가수로 간주 (float, double)
Ex) float value = 3e6 -> 3*10^6=3000000.0
문자 리터럴 : ''로 묶는 하나의 문자
문자열 리터럴 : ""로 묶는 문자열
논리 리터럴 : ture, false

- 변수의 사용범위
: 변수는 중괄호 { } 블록 내에서만 선언되고 사용된다.
설계시 이용이 용이하도록 짜야한다.
데이터 타입
- 정수 타입 : byte, char, short, int, long
최상위 비트(MSB : Most Significant Bit)는 정수값의 부호를 결정한다. 0=양,1=음 - char 타입 : 자바는 모든 문자를 유니코드(Unicode)로 처리한다.
유니코드는 음수가 없으므로 char 타입의 변수는 음수값을 저장할 수 없다.
ㄴ프로그램 코드에서 char 변수에 저장된 유니코드를 알고 싶다면
char 타입 변수를 int 타입 변수에 저장하면 된다.
Ex)
char c = 'A';
int uniCode = c;
char 타입의 변수를 초기화 하기 위해서는 공백을 포함하여야 한다.
char c = ' ';
String 변수는 ""를 대입하여도 상관없다. - short 타입 : 2byte로 정수값을 저장하며, 대부분 C언어와의 호환을 위해 사용된다.
- int 타입 : 4byte의 정수값을 저장하며 정수 연산을 하기위한 기본 타입이다.
- long 타입 : long(8byte), int 타입의 저장 범위를 넘어서는 큰 정수는 반드시 L을 붙여줘야한다.
Ex) long var3 = 1000000000000; <컴파일 에러
long var4 = 1000000000000L <옳은 코드 - 실수 타입 : float(4byte), double(8byte)
float 는 리터럴 뒤에 f를 붙여주어야한다.
double은 값이 2배로 저장되나 정밀도는 비례한다 - 논리 타입 : boolean(1byte)
boolean 타입은 논리값(true/false)을 저장할 수 있는 데이터 타입
두가지 상태값을 저장할 필요성이 있을 경우 사용한다.
Ex) 스위치
- 타입 변환
정수 타입이 실수 타입으로 변환되면 자동으로 타입변환이 이루어지며 정수 값은 .0이 붙은 실수값으로 변환된다.
byte(1) > short(2) > int(4) > long(8) > float(4) > double(8) - 강제 타입 변환(캐스팅: Casting)
int를 byte로 강제 변환을 한다면 원래의 int값은 보존되지 않는다.
하지만 int값이 끝 1byte로만 표현 가능하면 같은값을 유지할 수 있다. - 연산식에서 타입을 혼합 사용하면 자동으로 큰 타입으로 변환후 연산을 수행한다.
'국비학원 수업' 카테고리의 다른 글
나머지 분량은 노션Notion으로 옮겨갔음을 알립니다. (4) | 2022.11.03 |
---|---|
22.09.27 수업_Java 한달차 중간정리. (1) | 2022.09.27 |
22.08.29 수업_Java 반복문 이론 (3) | 2022.08.29 |
22.08.24 수업_Java 데이터 타입 및 연산자 (0) | 2022.08.24 |
22.08.23 수업_Java 기초 및 이론 (1) | 2022.08.23 |