<1> 변수의 이해와 활용
1. 메모리 공간과 변수의 활용
변수 : 데이터 저장과 참조를 위해 할당된 메모리 공간.
메모리공간의 활용 : 데이터 저장 및 참조
" 변수는 메모리 공간 할당과 접근을 해결하기 위한 것이다"
2. 변수(Varible)에 대한 간단한 이해
: 변수 선언 - 메모리공간 할당 / 공간의 접근을 위해 이름 붙여짐
1) 선언 방법 : 자료형 변수이름; -> ex> int num1;
* 자료형 : 변수에 저장할 데이터 종류
*int: 10진수 정수
2)
저장 : 변수명 = 저장할내용 ; ex) num1=10;
참조 : 변수명을 불러주면 된다. ex) System.out.println(num1 + "은 num1이다"); -- 출력내용 : 10은 num1이다.
3) 선언, 저장, 참조 예시
(+) 선언과 동시에 저장 가능, 변수들의 연산 값 저장 가능
(+) 10진수 정수를 저장하는 용도로 변수를 선언했기 때문에 정수만 저장 가능하다.
3. 자료형의 종류와 구분.
1) 자료형 : 데이터의 종류를 알리는 용도로 사용되는 키워드 (*키워드 : 자바의 문법을 구성하는 단어)
정수 : byte, short, int, long
실수 : (*프로그래밍에서는 실수를 정수아닌 실수를 말한다) float, double
문자 : char
참or거짓 : boolean
값의 번위에 따라 적절한 자료형을 선택해 사용한다.
자료형 |
데이터 |
메모리크기 (byte) |
표현가능범위 |
boolean |
참과거짓 |
1 |
true, false |
char |
문자 |
2 |
모든 유니코드 문자 |
byte |
정수 |
1 |
-128~127 |
short |
2 |
-32768~32767 | |
int |
4 |
-2147483648~147483647 | |
long |
8 |
-9223372036854775808~922337203854775807 | |
float |
실수 |
4 |
±(1.40x10^45 ~ 3.40x10^38) |
double |
8 |
±(4.94x10^-324~1.79x10^308) |
2) 실수의 표현 및 저장에서의 오차 *<3>실수 표현방식에서 다룸
->연산하는 과정이 아니라 1.0000001과 2.000000을 변수에 저장하는 과정에서 오차가 생겼다.
4. 변수의 이름 짓는 방법
1) 대소문자 구분
2) 숫자로 시작할 수 없음
3) $ _ 이외에 다른 특수문자 사용 x
4) 키워드는 변수의 이름으로 사용 x
<2> 정수 표현방식의 이해
1. 정수를 표현하는 방식 ( 1바이트를 예시로 하면 )
()()()()()()()()
1) 8개의 비트중에 맨 왼쪽의 비트는 부호를 의미한다. (1은 음수, 0은 양수) MSB(Most Significant Bit)
2) 나머지 7개는 양적인 크기를 의미한다.
ex) 25(10) = 00011001(2)
2. 음의 정수를 표현하는 방식 :
"양의 값에 2의 보수를 취하여 얻는 값 "
3.
2의 보수 : 1의 보수에 1을 더한것.
1의 보수 : 2진수의 수를 반전시킨것.
ex ) 00000101(+5) ---1의보수----> 11111010 ----1더하기-----> 1111101
1111101이 -5라는 것의 증거 : 00000101 + 1111101 = 100000000 (0) (* 맨 앞의 1은 올림수(carry)버림 한다)
<3> 실수 표현방식의 이해
-->무한개의 실수가 존재한다. 따라서 정수의 표현방식으로 표현하기엔 한계가 크다.
1. 정밀도를 포기하고 범위를 넓혔다.
1) 실수의 표현을 위한 수식 : ( IEEE 754식을 이해하기 쉽게 표현한것 )
±(1.m) x 2^(e-127)
2) 위 수식에 따른 비트 구성
() ()()()()() ()()()()()()()()()()
부호 e m
3) 오차
위 수식으로 양수이고 m=1, e=0인 실수 :
비트표현 : 0 00000 0000000001 = 6.46521893 x 10^30
이 수에서 m 이나 e가 1씩만 차이가 나도 전체값이 아주 크게 변경된다, 즉 오차를 피할 수 없다.
= 수를 저장할 때는 위에서 보인 수식으로 그 값에 최대한 가까운 수가 만들어질 수 있도록 비트를 구성하여 저장한다.
또 참조하는 경우에도 저장된 비트를 위에 보인 수식으로 적용하여 값을 결정한다.
<4> 자료형의 이해
1. 정수 자료형 : byte, short, int, long
--차이 : 메모리 공간의 크기.
1) 컴퓨터의 cpu가 int형 정수연산을 가장 고속으로 처리하게끔 설계가 되어있기 때문에 연산을 하게 될 경우 long을 제외한 모든 정수 자료형이 int로 변환이 된다. 따라서 연산을 할 경우 int를 사용하는 것이 효율적이다.
* long : int로 변환하면 데이터손실이 발생하기 때문에 변환이 일어나지 않는다.
2) byte 와 short : 연산이 아닌 데이터가 지니는 값 자체가 중심이 되는 경우에 쓰인다. 많은 숫자 데이터들이 저장될때
2. 실수 자료형 float, double
- 크기의 차이가 있지만 float도 충분한 값의 표현범위를 가진다.
- 정밀도가 선택의 기준이 된다.
- float : 소수점 6자리의 정밀도 , double : 소수점 15자리의 정밀도
* 하지만 double도 15자리 아래에서 오차가 생겼을때 연산을 하게 되면 소수점 15자리보다 더 앞에서 오차가 발생할 수 있다.
3. 실수에 대한 e표기법과 정수에 대한 16진수 8진수 표기법
1) e±n : x 10의 ± n 승
2) 16진수 : 0x로 시작하면 16진수 표현으로 해석된다
3) 0으로 시작되면 8진수 표현으로 해석된다
3. 문자자료형 char
1) 유니코드 (unicode) 라는 세계의 모든 언어를 표현할 수 있는 문자체계를 사용한다. (16진수로 되어있다)
2) 문자 하나를 해당 변수에 저장하면 실제로는 문자의 유니코드 값이 저장된다.
3) 문자는 작은 따옴표로 표시된다.
4) System.out.println은 char형 데이터를 적절히 출력해낸다.
ch3 : 65는 16진수로 0x41 (unicode A)
ch4: 54620은 16진수로 0xD55C (unicode 한)
* 해당 국가의 폰트가 설치되어 있어야 정상척인 출력을 보인다.
4. boolean (논리형)
true(참)와 false(거짓) 출력
b1, b2 : true 와 false를 저장하는 데이터공간이므로 초기화가 잘 되었고 출력할때 저장한 값 그대로 출력된다.
3<4 & 4<3 : 연산 결과가 참이냐 거짓이를 출력한다.
*반환 : 연산의 결과로 값이 만들어졌다
'언어 > JAVA' 카테고리의 다른 글
chapter4. 연산자(Operator) (2) (0) | 2017.04.12 |
---|---|
chpter4. 연산자(Operator) (0) | 2017.04.07 |
chapter3. 상수와 형변환(Type Casting) (1) | 2017.04.06 |
chapter1 Java의 시작(2) (0) | 2017.04.04 |
chapter1. java의 시작(1) (0) | 2017.04.04 |