본문 바로가기

Java

[Java] 변수

변수 명명규칙

1. 대소문자가 구분되며 길이에 제한이 없다.

 

2. 예약어를 사용할 수 없다.

 

3. 숫자로 시작해선 안된다.

 

4. 특수문자는 _와 $만을 허용한다.

 

변수의 타입

 

변수의 타입은 관점에 따라 다양하게 분류할 수 있다.

값에 따른 분류

값 ---- 문자 (char)

   ㄴ-- 숫자 --- 정수 (byte, short, int, long)

               ㄴ- 실수 (float, double)

기본형과 참조형

기본형:  실제 값을 저장

 

참조형: 객체의 주소를 저장

상수와 리터럴

상수: 초기화 이후 값을 변경할 수 없는 변수

 

리터럴: 값 그 자체

화면에서 입력받기

Scanner 클래스 사용

import java.util.*;

class ScannerEx {
	public static void main(String[] args) {
    	Scanner scanner = new Scanner(System.in);
        
        System.out.println("두 자리 정수를 하나 입력해주세요.>");
        String input = scanner.nextLine();
        int num = Integer.parseInt(input);
        
        System.out.println("입력내용 :"+input);
        System.out.printf("num=%d\n", num);
    }
}

Java에서의 Char 타입

C와 C++과는 달리, JAVA에서 char 타입의 크기는 2바이트다.

 

char 타입은 유니코드를 저장한다.

인코딩과 디코딩

인코딩: 문자를 코드로 변환

          ('A' -> 65)

 

디코딩: 코드를 문자로 변환

          (65 -> 'A')

 

아스키: 기호, 숫자, 영어 대소문자

 

확장 아스키: (iso-8859-1) 아스키는 7bit만 사용하는데 8bit 전부 사용하여 사용할 수 있는 문자를 더 추가한 것

 

코드 페이지: 

 

유니코드

  - 모든 문자 표현 가능하다. 

  - 유니코드에 포함시키고자 하는 문자들의 집합을 character set이라고 한다.

  - UTF-16은 모든 문자 크기가 2바이트인 반면, UTF-8은 크기가 가변적이다.

    (요즘엔 주로 UTF-8을 사용한다.)

부동 소수점 

부호(S), 지수(E), 가수(M)로 나누어 저장

M * (2^E)

 

부호: 1bit

지수: 8bit (음수도 표현할 수 있어야하므로 127을 0이라고 생각한다. 이를 기저라고도 한다.)

가수: 23bit

부동 소수점의 오차

9.1234567을 2진수로 변환하면 아래와 같다

1001.000111111001101011.....

 

2진수로 변환한 값은 무한소수이므로 오차가 발생할 수 밖에 없다.

이 때, 가수 값이 길면 길수록 오차가 줄어든다.

 

소수를 저장할 땐 항상 1.xxx * 2^a 형태로 변환하는데 이를 정규화라고 한다.

정규화된 값은 항상 1로 시작하므로 가수엔 맨 앞의 1을 뺀 나머지 값들만을 저장한다.

 

1001.000111111001101011..... -> 1.001000111111001101011 * 2^3

지수가 3이므로 기저인 127에 3을 더한 값인 130을 지수 부분에 저장한다.

'Java' 카테고리의 다른 글

[Java] java.lang 패키지 & 유용한 클래스들  (0) 2020.11.15
[Java] 예외처리  (0) 2020.11.15
[Java] 객체지향 프로그래밍  (0) 2020.11.15
[Java] 배열  (0) 2020.11.11
[Java] 자바란  (0) 2020.11.11