제 1 절 변수
변수
- 변수 : 하나의 값을 저장할 수 있는 메모리 공간
- 변수의 선언
- 타입 변수 이름 ; → int age; double value;
- 변수 이름을 위한 명명 규칙(naming convention)작성 규칙 예
작성 규칙 예 첫 번째 글자는 문자나 ‘$’,’_’여야 함 숫자로 시작x (팔수) 가능: price, $coin, _company 불가능: 1v, @speed, $#value 영어 대소문자가 구분됨 (필수) firstname와 firstName은 다른변수 첫문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫자를 대문자로 한다 (관계) firstName, carBodyColor 문자 수(길이)의 제한 없음 자바 예약어는 사용할 수 없음 (필수) 책참조 - 변수값 저장
-
int score; //변수 선언 score = 90; // 값저장 int score = 90; // 초기값은 변수를 선언함과 동시에 줄 수 있음
- int score; //변수 선언 score = 90; // 값저장 int score = 90; // 초기값은 변수를 선언함과 동시에 줄 수 있음
- 변수값 읽기
- 변수는 초기화가 되어야 읽을 수 있고, 초기화되지 않은 변수는 읽을 수 없다.
- 변수 value 가 선언되었지만, 초기화가 되지 않았기 때문에 산술 연산식 value + 10 에서 사용할 수 없다. 이런 경우 컴파일 에러가 발생한다.
// * 잘못된 코딩 예 int value; // 변수 value 선언 (초기화 안됨) int result = value + 20; // 변수 value 값을 읽고 10을 더한 결과값을 변수 result에 저장 // * 제대로된 코딩 예 int value = 30; // 변수 value가 30으로 초기화 됨 int result = value + 20 // 변수 value 값 읽고 10 더한 결과값(40)을 변수 result에 저장
리터럴
- 리터럴 : 소스 코드 내에서 직접 입력된 값
- 정수 리터럴
- 소수점이 없는 정수 리터럴은 10 진수로 간주 -> 0.75 -100
- 0으로 시작되는 리터럴은 8진수로 간주 -> 02 -04
- 0x 또는 0X로 시작하고 0~9 숫자나 A,B,C,D,E,F 또는 a,b,c,d,e,f로 구성된 리터럴은 16진수로 간주 -> 0x5 0xA 0xB3 0xAC08
- 정수 리터럴을 저장할 수 있는 타입은 byte, char, short, int, long 과 같이 5개가 있다.
- 실수 리터럴
- 소수점이 있는 리터럴은 10진수 실수로 간주 -> 0.25 -3.14
- 대문자 E 또는 소문자 e가 있는 리터럴은 10진수 지수와 가수로 간주
- 5E7 → 5 x 10⁷, 0.12E-5 → 0.12 x 10^(-5)
- 실수 리터럴을 저장할 수 있는 타입은 float, double
- 문자 리터럴
- 작은 따옴표(’)로 묶은 텍스트는 하나의 문자 리터럴로 간주 -> ‘A’ ‘한' ‘\\t’ ‘\\n’
- 역슬래쉬(\)가 붙은 문자 리터럴은 이스케이프(escape) 문자라고도 함
- 문자 리터럴을 저장할 수 있는 타입은 char 하나 뿐
- 문자열 리터럴
- 큰따옴표(”)로 묶은 텍스트는 문자열 리터럴로 간주. 큰따옴표에는 텍스트가 없어도 문자열 리터럴로 간주. 문자열 리터럴 내부에서 이스케이프 문자 사용 가능 -> “대힌민국”
- 문자열 리터럴을 저장할 수 있는 타입 String 하나 뿐
- 논리 리터럴
- true와 false는 논리 리터럴로 간주
- 논리 리터럴을 저장할 수 있는 타입은 boolean 하나 뿐
- 정수 리터럴
- 종류 : 정수 리터럴, 실수 리터럴, 문자 리터럴, 문자열 리터럴, 논리 리터럴
변수의 사용 범위
- 🔔 변수는 선언된 블록 내에서만 사용이 가능
제 2 절 데이터 타입
기본(primitive) 타입
- 정수 타입
- byte 타입 : 1byte 부호있는(signed) 정수값 저장 (-128~127)
- char 타입 : 2byte 부호없는(unsigned) 정수값 저장
- 한 문자를 유니코드로 저장 하나의 문자 리터럴은 작은 따옴표(’)로 감싸기
- short 타입 : 2byte 부호있는(signed) 정수값 저장 (-32,768~32767)
- C언어와 타입 호환을 위해 사용되며 비교적 자바에서는 잘 사용되지 않는 타입
- 🔔 int 타입 : 4byte 부호있는(signed) 정수값 저장(-2^(31)~2^(31)-1)
- long 타입 : 8byte 부호있는(signed) 정수값 저장 (-2^(63)~2^(63)-1)
- 실수 타입
- float 타입 : 부호(1bit)+지수(8bit)+가수(23bit) = 32bit = 4byte
- double 타입 : 부호(1bit)+지수(11it)+가수(52bit) = 64bit = 8byte
- 실수 리터럴의 기본 타입은 double이다.
- float 리터럴은 끝은 F(대문자) 또는 f(소문자)를 붙인다.
- 정수 리터럴에 10의 지수를 나타내는 E 또는 e가 포함되어 있을 경우
- 실수 타입에 저장해야 한다.
- 부동 소수점(floating-point) 방식으로 저장 동일한 메모리 크기를 가지는 int와 long 보다 더 큰 수를 저장할 수 있음
- 논리 타입
- boolean
- 1byte 크기를 가지며 논리값 true 또는 false를 저장
- 두가지 상태값을 저장할 필요성이 있을 경우 사용
- 조건문, 제어문의 실행 흐름을 변경할 때 주로 이용
- boolean
제 3 절 타입 변환
- 타입 변환
- 데이터 타입을 다른 타입으로 변환하는 것 (byte ↔ int, int ↔ double)
- 종류 : 자동(묵시적) 타입 변환 : Promotion
- 강제(명시적) 타입 변환 : Casting
- 자동 타입 변환
- 프로그램 실행 도중에 작은 타입은 큰 타입으로 자동 타입 변환됨
- byte(1) < short(2) < int(4) < long(8) < float(4) < double(8)
- 강제 타입 변환
- 큰 타입을 작은 타입 단위로 쪼개고 끝 한부분만 작은 타입으로 강제적 변환
- (캐스팅: Casting)
- 강제 타입 변환전에 값이 보존될 것이지(손실이 되지 않는지) 검사
- 강제 타입 변환시 정밀도 손실을 피한다.
- 연산식에서 자동 타입 변환
- 연산은 같은 타입의 피연산자(operand)간에만 수행 (서로 다른 타입의 피연산자는 같은 타입으로 변환됨)
- 자바는 정수 연산일 경우 int 타입을 기본으로 한다. 피산연자를 4byte 단위로 저장하기 때문이다. 그보다 작은 타입(byte, char, short) 결과도 int 타입이다.
- long 타입 피연산자 있으면 결과도 long 타입. 실수 리터럴이나 double타입있으면 결과도 double 타입으로 산출돤다.
- float 타입은 두 피연산자 모두 float일 경우만 결과가 float 타입이다. float 타입 + 정수는 결과가 float 타입으로 산출된다.
'Java > Java Basics' 카테고리의 다른 글
04. 자바(Java) 조건문과 반복문 / [확인문제] (0) | 2022.01.03 |
---|---|
03. 자바(Java) 연산자 (단항, 이항, 삼항) (0) | 2022.01.02 |
인텔리제이(lntelliJ) Auto Import 하기 = 이클립스(Eclipse) Ctrl+Shift+O (0) | 2021.12.31 |
01. 자바(Java) 시작하기 (0) | 2021.12.31 |
자바(Java) 공부 전 알아두면 좋을 것 (0) | 2021.12.31 |
댓글