eterno

JAVA공부4. 자료형과 인코딩, 디코딩 본문

JAVA/강의노트

JAVA공부4. 자료형과 인코딩, 디코딩

영원한별똥별 2022. 8. 9. 15:31
728x90
반응형

오늘 배울 내용

 - 자료형 / 변수 / 초기화 / 상수 / 리터럴

- 인코딩, 디코딩


자료형(data type)
  : 변수가 저장되는 공간의 특성 (데이터(문자)를 구분하기위해서 사용)
- Data : 숫자(정수, 실수), 문자, 문자열
- Java에서는 정수(byte, short, int, long), 실수(float, double), 문자(char), 문자열(string), 논리값(boolean true/false) 가 있다.

* 문자열은 리터럴값이 아닌 객체(나머지는 다 리터럴 값)

* 참고자료형(문자열)은 클래스(배열)를 사용함

  기초자료형 : 정수, 실수, 문자, 논리 (리터럴 쓰는 변수)

  정수형 문자형 실수형 논리형
1바이트 byte - - boolean
2바이트 short char - -
4바이트 int - float -
8바이트 long - double -
* 자바의 최소단위는 바이트 ( 비트)

1byte = 8 bit

1byte 1byte 1byte 1byte 1byte 1byte 1byte 1byte
0 0 0 0 0 0 0 0

* 맨 앞에는 부호비트 라고 함(0이면 양수, 1이면 음수)

정수 자료형 크기

자료형 바이트 크기 수의 범위
byte 1 -2^7 ~ 2^7-1
short 2 -2^15 ~ 2^15-1
int 4 -2^31 ~ 2^31-1
long 8 -2^63 ~ 2^63-1
char 2 2
* char은 문자하고 대응하기 위해 음수 범위를 사용하지 않음
 
디폴트값 
자료형 byte short int long float double char boolean string
디폴트값 0 0 0 0 0.0 0.0 null   null

 

char에 -122를 넣으면 오류남(char는 양수만 가능하기때문)
 
* 정수보다 실수가 크다( long < float)
byte(1) < char(2) < short(2) < int(4) < long(8) < float(4) < double(8)
 => 왜냐하면 실수는 슬롯을 2개를 쓰기 때문
정수는 디폴트벨류(defaultvalue)의 슬롯 1개( [0] ), 실수는 슬롯 2개( [0].[0] )
 

byte  형은  – 128 ~ 127 까지인데  128 을 입력하면 오류남

 

자바는 버철머신은 int만 알아서 int로 형변환 해서 자료형을 외울필요는 없으나 알아두기!

 

*형변환이란 ?

 - 캐스팅이라고도 하며 정수와 실수를 하나의 자료형으로 통일하는 것

 - 형변환 연산자 ( )  => ex) (int)b


 

변수
 : 데이터를 담는 통(공간)

 - 자료를 선언해서 사용

 - 변수명은 소문자로 시작(숫자로 시작할 수 없고 예약어 안됨)

 * 변수와 자료형은 다른 것 임
참조변수 :  다른 변수의 주소값을 받아 오는 것

ex) A a = new A();

     - a : 참조변수


초기화

 : (변수)에다가 데이터를 담는 것

 

선언(declare)

: 자료형을 쓰는 것

정수형 변수 b를 선언하시오 -> int b

 

호츨(invoked)

 : 부르는 것 

 


상수(constant)

 : 통에 담은 데이터를 변경하면 안됨(변수는 가능)


리터럴(literal)

 : 데이터() / 프로그램에서 사용하는 숫자, 문자, 논리값    ≠  문자열(=객체)

 
예시) 리터럴 값 1을 자료형이 byte인 변수 b에 초기화 한다.
   byte             b               =                   1                       ;
자료형         변수     대입연산자       리터럴값         문장종결
  • 자료형 b 선언 방법 

1. byte : byte 데이터타입 선언
2. b : byte 데이터타입을 사용하려고 변수이름 b 선언
3. = : 대입연산자 선언
4. 1 : byte 타입 자료형에 데이터를 변수이름이 b인 통에 담으려고 리터럴 1을 선언
5. ; : 문장을 종결하기 위해서 세미콜론 문장종결연산자(;) 선언
 => 하기 문장은 버철 머신이 읽으면서 해당 값을 b변수에 대입함 
 => 이 행위를 초기화(initialization)라고한다.

* 문자는 ''(작은따옴표) , 문자열은 ""(큰따옴표) 로 표시하고 문장끝은 ;(종결연산자)처리하기

 

이클립스에서 주석(설명)달기 

 - // : 한 주 주석

 - /*    */ : 여러줄 주석

주석달고 싶은 범위를 드레그 한 후 ctrl + / 치면 범위전체에 한줄 주석으로 달림

 

 
예제 1) byte타입의 변수 b선언하기

예제2) 타입별로 변수 선언해서 디폴트벨류 확인하기

예제3) char문자열로 문자A를 여러 진수로 표시하기 
 

예제4)'a'를  10진수로 화면에 출력하시오.
영문자 a를 자바 char 자료형에 변수명은 a로 선언해서 초기화하고
콘솔에 영문자 a를 10진수로 형변환하여 출력하시오.


인코딩과 디코딩

인코딩(encoding): 문자를 정해진 코드값(숫자)로 변환 하는 것

디코딩(decoding): 숫자를 문자로 변환하는 것

* 인코딩 혹은 디코딩만 하는걸 단방향

   인코딩과 디코딩을 같이 하는 건 양방향이라고 한다.

(나중에 암호화할때 필요함)

 

* 아스키코드(ASCII CODE)

아스키코드는 대표적인 문자 인코딩이다.

아스키는 7비트 인코딩으로,

- 33개의 출력 불가능한 제어 문자들과 공백을 비롯한 95개의 출력 가능한 문자들로 총128개로 이루어진다.

- 52개의 영문 알파벳 대소문자와, 10개의 숫자, 32개의 특수 문자, 그리고 하나의 공백 문자로 이루어진다.

https://ko.wikipedia.org/wiki/ASCII 참고

* 이클립스에서 인코딩 확인하는 방법

window - preferences  general  workspace  text file encording

자바는 utf-16을 사용함 
: 16비트 기반으로 저장
   멀티바이트(1~4바이트)로 문자를 나타냄

인코딩 ; ASCII 7bit / utf-8 / ms949 구별

 
 
인코딩 참고자료 ) https://d2.naver.com/helloworld/19187

 

728x90
반응형