일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 아이들이 좋아하는
- 심폐지구력
- 송도커낼워크
- 탄수화물
- 바이러스
- 비전공자개발자이야기
- 인천맛집
- 걷기
- 에너지원
- 무궁화분식
- 막창맛집
- 다이어트
- 근력
- 조깅
- 부평파스타맛집
- 청라맛집
- SementicWeb
- 심박수
- 코로나19
- 달리기
- SementicTags
- 마라탕맛집
- TypeORM
- 유연성
- 근지구력
- K 디지털 크레딧
- HTML
- 서구맛집
- 시맨틱태그
- 칼국수맛집
- Today
- Total
Feel It First
[Do it! 자바 프로그래밍 입문] 02 변수와 자료형 본문
컴퓨터는 데이터를 어떻게 표현할까?
변수란 무엇일까?
변수가 저장되는 자료의 특성, 자료형
상수와 리터럴
형 변환
컴퓨터는 데이터를 어떻게 표현할까?
컴퓨터는 0과 1로만 데이터를 저장한다. (2진수)
따라서 숫자나 문자도 0과 1의 조합으로 표현된다.
그러나 2진수로만 표현되면 너무 길어지므로, 8진수와 16진수를 사용하기도 한다.
int num = 10; // 10
int bNum = 0B1010; // 10
int oNum = 012; // 10
int hNum = 0XA; // 10
//4개의 변수 모두 10을 가르킨다.
※ 비트(bit) : 컴퓨터가 표현하는 데이터의 최소단위로 2진수 하나의 값을 저장할 수 있는 크기를 말한다.
※ 바이트(byte) : 1byte = 8bit를 의미한다.
변수란 무엇일까?
프로그램에서 사용되는 자료를 저장하기 위한 공간
할당 받은 주소 대신에 부르는 이름
프로그램 사용 중에 값 변경 가능
사용되기 이전에 선언되어야 함
영어로 variable 이라고 부름
변수 선언과 초기화
int level; //level이라는 이름의 변수를 선언
int level = 0; //level 이라는 이름의 변수를 0으로 초기화
변수 선언시 유의점
변수의 이름은 알파벳과 숫자로 구성되며, 특수문자는 _ (언더바), $(달러)만 허용된다. (공백은 허용하지 않음.)
변수의 이름은 숫자나 특수문자로 시작할 수 없고, 소문자(관례적)를 시작으로 이후 단어의 첫 알파벳은 대문자로 구분한다.
키워드도 변수의 이름으로 사용할 수 없다.
※ 변수의 이름을 정할 때는 변수의 역할에 어울리는 의미 있는 이름을 지어야 한다.
변수가 저장되는 자료의 특성, 자료형
정수형 | 문자형 | 실수형 | 논리형 | |
1byte | byte | - | - | boolean |
2byte | short | char | - | - |
4byte | int | - | double | - |
8byte | long | - | float | - |
변수를 사용할 공간의 크기와 특성에 따라 자료형을 사용하여 변수를 선언한다.
byte
동영상, 음악 파일 등 실행 파일의 자료를 처리 할 때 사용하기 좋은 자료형
byte bNum; // 1byte
short
주로 c/c++ 언어와의 호환시 사용
short sNum; // 2byte
int
자바에서 사용하는 정수에 대한 기본 자료형
프로그램에서 사용하는 모든 숫자(리터럴)는 기본적으로 int로 저장됨
int iNum; // 4byte
long
가장 큰 정수 자료형
값의 끝 부분에 L을 명시하여 long형임을 표시해야 함
long lNum = 100L; // 숫자 마지막의 L입력 8byte
※ 소문자 l을 써도 되지만 숫자 1과 구분하기 위해 대문자 사용을 권장함
char
컴퓨터에서는 문자도 내부적으로는 비트의 조합으로 표현
각 문자의 특정한 숫자 값을 부여하여 변환(인코딩)
ex) 'A', 65 'B' 66
char ch1 = 'A'; // 2byte
char ch2 = 65; // 'A' 출력
※ 인코딩 : 각 문자에 따른 특정한 숫자 값(코드 값)을 부여
※ 디코딩 : 숫자 값을 원래의 문자로 변환
float, double
부동 소수점 방식 : 실수를 지수부와 가수부로 표현, 무한의 실수를 표현하기 위함.
실수는 기본적으로 double 형을 사용함
float 형으로 사용하는 경우 값 마지막에 f 또는 F를 명시함.
double dNum = 3.14; // 4byte
float fNum = 3.14F; // 8byte
boolean
논리값 true(참), false(거짓)을 표현하는 자료형
boolean isMarried1 = true; // 참
boolean isMarried2 = false; // 거짓
// 1byte
자료값 없이 변수 사용하기
지역 변수 자료형 추론(local variable type inference)
변수에 대입되는 값을 보고 컴파일러가 추론
var num = 10; // int
num = 10.0 // 오류발생
var dNum = 10.0; // double
dNum = 10 // 10.0 출력
※ 최초의 선언된 자료형 변경 안됨.
상수와 리터럴
상수
변하지 않는 값
상수를 선언
final 키워드 이용
final double PI = 3.14;
PI = 3.15; // 에러발생
final int MAX_NUM = 100;
final 로 선언된 상수는 다른 값을 대입할 수 없음.
프로그램에서 변경되지 않아야 하는 값을 상수로 선언한 후 변경이 필요할 때에는 상수의 값을 수정
리터럴
프로그램에서 사용되는 모든 문자, 숫자, 논리 값
ex) 10, 3.14, 'a', true
리터럴에 해당되는 값은 특정 메모리 공간인 상수 풀(constant pool)에 있음.
필요한 경우 상수 풀에서 가져와서 사용
상수 풀에 저장할 때 정수는 int, 실수는 double를 저장
long이나 float 값으로 저장하는 경우 식별자(L, l, F, f)를 명시해야 함.
형 변환
자료형은 각각 사용하는 메모리 크기와 방식이 다름
서로 다른 값이 대입되는 경우 형 변환이 일어남
묵시적 형변환
작은 수에서 큰 수로 덜 정밀한 수에서 정밀한 수로 대입되는 경우
byte bNum = 10; // 1byte
int iNum = bNum; // 4byte
System.out.println(bNum); // 10
System.out.println(iNum); // 10
명시적 형변환
묵시적 형 반대의 경우
반환되는 자료형을 명시해야 함(자료의 손실이 발생할 수 있음)
double dNum1 = 1.2; // 8byte
float fNum2 = 0.9F; // 4byte
int iNum3 = (int)dNum1 + (int)fNum2;
int iNum4 = (int)(dNum1 + fNum2);
System.out.println(iNum3); // 1
System.out.println(iNum4); // 2
'IT' 카테고리의 다른 글
[Do it! 자바 프로그래밍 입문] 04 제어 흐름 이해하기 (0) | 2022.05.22 |
---|---|
[Do it! 자바 프로그래밍 입문] 03 자바의 여러 가지 연산자 (0) | 2022.05.22 |
[Do it! 자바 프로그래밍 입문] 01 자바 프로그래밍 시작하기 (0) | 2022.05.20 |
[Computer Science] 초기컴퓨팅 #1 (0) | 2022.03.09 |
비전공자 개발자가 되기 위한 플랜 (0) | 2022.03.08 |