2.1~2.3
1. 변수
- 하나의 값을 저장하는 메모리공간
- 변수의 초기화
- 변수를 사용하기 전에 처음으로 값을 지정하는것
- 메모리는 여러 프로그램이 공유하는 자원
→ 초기화 하지 않으면 타 프로그램에 의해 저장된 쓰레기 값이 남아있을 수 있음
- 변수의 명명규칙
- 대소문자 구분
- 길이 제한 없음
- 예약어 사용 불가
- 숫자로 시작 불가
- 특수문자는 ’_’ 와 ‘$’을 허용
- 권장사항
- 클래스 이름의 첫글자는 대문자
- 변수와 메서드의 이름의 첫 글자는 소문자
- 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자
- 상수명은 모두 대문자, 여러 단어로 이루어진경우 _로 구분
- 클래스이름은 ASCII로
2. 변수의 타입
- 기본형 변수
- 실제 값(data)을 저장
- 논리형
- boolean(1 byte, true ~ false)
- 문자형
- char(2 byte, ‘\u0000’~’\uffff’,’0~65535(0~2^16-1)) → unicode 기반으로 인코딩, 디코딩
- 정수형
- byte(1 byte, -128 ~ 127(-2^7~2^7-1)
- short(2 byte, -32768 ~ 32767(-2^15~2^15-1))
- int(4 byte, -2,147,483,648 ~ 2,147,483,647(-2^31~2^31-1))
- long(8 byte, -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807(-2^63~2^63-1))
- 실수형
- float(4 byte, 1.4E-45 ~ 3.4E38(1.410^-45 ~ 3.410^38), 정밀도 7 자리)
- double(8 byte, 4.9E-324 ~ 1.8E308(4.910^-324~1.810^308), 정밀도 15 자리)
- boolean은 다른 기본형과 연산 불가, 다른 기본형 간 연산 가능
- 참조형 변수
- 메모리 주소(메모리에 할당된 1byte단위의 일련번호)를 저장
- 참조형 변수 간 연산 불가
- 기본형이 아닌 타입은 모두 참조형
- 상수
- final 키워드 사용
- 초기화 된 상수의 값을 변경하는 것 은 허용되지 않음
- 리터럴
- 그 자체로 값을 의미 하는 것 (ex 3, “Hello”)
- 접미사
- long: L
- float: f
- double: d(생략가능)
- 접두사
- 정수형 리터럴의 중간에 _ 삽입가능 (1_0 == 10)
- ‘’: 문자 리터럴(빈 문자 불가), “”: 문자열 리터럴
- 타입이 다른 데이터 대입
- 저장범위가 넓은 타입에 범위가 좁은 타입을 할당 가능
- 리터럴 값이 변수의 타입의 범위를 넘어서거나, 리터럴의 타입이 변수의 타입보다 저장범위가 넓으면 컴파일 에러
- printf()
- 지시자를 사용한 포맷 출력
- 지시자
- %b: 불리언
- %d: 10진
- %o, %#o: 8진, 0출력
- %x,X, %#x: 16진 소문자, 대문자, 0x출력
- %f, %014.10f: 부동 소수점, 14자리중 정수 빈자리 0으로 소수점아래 10자리까지 빈자리 0으로
- %e: 지수
- %g: 소수 간략히 출력
- %c: 문자
- %s, %.8: 문자열, 왼쪽에서 8글자 출력
- %n: 개행
- %5d: 5칸에 오른쪽 정렬로 10진수 출력
- %-5d: 5칸에 왼쪽 정렬로 10진수 출력
- %-05d: 5칸에 오른쪽 정렬로 10진수 빈자리0으로 출력
- 2진수 출력은 Integer.toBinaryString(int i)로 변환후 출력
- 문자 %d출력은 (int) 형변환 후 %d로 출력
- 특수문자
- tab: \t
- backspace: \b
- form feed: \f
- new line: \n
- carrage return: \r
- : \
- ‘: \’
- “: \”
- 유니코드 문자: \u유니코드 (char a = ‘\u0041’)
3. 진법
- 컴퓨터는 변수에 값을 저장하면 2진수로 바꾸어 저장함
- 1bit: 컴퓨터가 값을 저장하는 최소단위
- 1byte: 데이터의 기본 단위, 1 bit는 너무 작기 때문에 8bit를 묶은 것
- word: cpu가 한 번에 처리할 수 있는 데이터의 크기
- cpu의 성능에 따라 달라짐(ex) 32비트 컴퓨터의 1워드는 32비트 = 4바이트)
Leave a comment