변수 명명규칙
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 |