[Java] 아스키코드 / 유니코드 / 형변환 / print()
2021. 1. 12. 20:00ㆍDev.Program/Java & Spring
728x90
======== Ex.java 만들기
p.66
ASCII 코드 - American Standard Code(미국 표준 문자 코드)
- 7bit 로 구성 = 2^7 = 128 가지 문자 표현 가능(0 ~ 127 조합)
- 10진수 형태로 표현
Unicode(유니코드)
- 전 세계 모든 문자 표현
- 2Byte(16bit) 로 구성 = 2^16 = 65536 가지 문자 표현 가능(0 ~ 65535)
- 16진수로 표현
- '\ 기호와 u 를 쓰고 뒤에 16진수 4자리(XXXX)를 붙여서 표현'
char 타입
- 문자 1개를 표현하는 데이터타입
- 유니코드 방식 사용
char ch1 = 'A'; // 일반적인 문자 표현법(작은따옴표 사이에 1개 문자 사용)
System.out.println(ch1);
char ch2 = 65; // 정수값을 사용한 문자 표현법(10진수 유니코드값 사용)
System.out.println(ch2);
char ch3 = '\u0041'; // 유니코드 표현법을 사용한 문자 표현법
System.out.println(ch3);
우리는 일반적인 표현법을 사용할 것임.
ch1 = '\'';
System.out.println(ch1);
- 작은따옴표를 사용하여 작은따옴표 1개를 표현하려면 \' 형태로 사용
ch3 = '\uAC00';
System.out.println(ch3);
- 한글 "가"
p.69
String
- 문자열을 표현하기 위한 데이터타입
- 기본형이 아닌 참조형
- 1개 이상의 문자열을 큰따옴표("")로 묶어서 표현
- 아무것도 포함하지 않는 문자열("")을 널스트링(null string) 이라고 한다.
- 덧셈 연산자를 활용하여 문자열 결합이 가능
======== Ex2.java 만들기
p.70-71
< 형변환(Type Casting) >
- 데이터타입 간의 변환이 일어나는 것
- 기본형 끼리의 형변환과 참조형 끼리의 형변환으로 구분
1. 묵시적 형변환(= 암시적 형변환 = 자동 형변환)
- 작은 데이터타입에서 큰 데이터타입으로 변환하는 경우 별도의 형변환 연산자를 사용하지 않아도 자동으로 변환됨
- 따라서, 오류가 발생하지 않으며 원본 데이터 그대로 변환됨
2. 명시적 형변환(= 강제 형변환)
- 큰 데이터타입에서 작은 데이터타입으로 변환하는 경우 반드시 형변환 연산자를 사용하여 우변의 데이터 앞에 작은 데이터타입명을 명시
- 이 때, 강제 변환 과정에서 원본 데이터의 넘침(Overflow, 오버플로우)이 발생하여 원본 데이터가 아닌 다른 데이터가 저장될 수 있다.
<형변환 연산자 사용 문법>
(데이터타입)데이터;
- 명시적 형변환의 경우 작은 데이터타입을 명시한다!
System.out.println();
- 엔터키 역할을 수행하는 문장으로 사용됨
- b2 = b1; 오류 발생! Type mismatch: cannot convert from int to byte
- int 타입(큰) 데이터를 byte 타입(작은) 변수에 저장하려 할 경우 큰 타입 데이터가 저장될 때 오버플로우가 발생할 우려가 있으므로 변환되지 않는다!
- 오류는 안뜨지만 결과값을 보면 원본과 다른 값이 나옴.
======== Ex3.java 만들기
< print(), println(), printf() >
1. print() 와 println() 은 출력 후 줄바꿈 여부의 차이
- ⇒ print() 메서드는 아무 데이터도 없으면 출력 불가능
2. printf()
- 출력할 형식을 미리 지정하여 원하는 형태로 데이터 출력
(printf 메서드의 f 는 format 의 약자)
- 출력할 형식은 "" 큰따옴표 안에 형식 지정문자를 사용하여 형식을 지정한 뒤 큰따옴표("") 우측에 콤마(,) 를 붙이고 실제 데이터를 지정
======== Test3.java 만들고 printf() 로 구구단 만들기
728x90
'Dev.Program > Java & Spring' 카테고리의 다른 글
[Java] switch~case문 / 반복문 / for문 (0) | 2021.01.14 |
---|---|
[Java] 조건문 / if문 / if~else문 / 중첩if문 (0) | 2021.01.14 |
[Java] 삼항연산자 / 논리연산자 / 쉬프트연산자 (0) | 2021.01.14 |
[Java] 연산자 (0) | 2021.01.12 |
[Java] 상수 / 변수 / 기본데이터타입 (0) | 2021.01.12 |