개발자입니다
JAVA 3일차 - 메모리 구조, 데이터 타입 본문
-----------교육내용 1~2주---------------
데이터 타입
- 숫자
: 정수(int) : 소숫점을 갖지 않는 숫자 데이터. int 절반은 short
: 실수(double) : 소숫점을 갖는 숫자 데이터. double 절반은 float
- 문자(char) : unicode 문자 데이터
- 문자열
: 2문자 이상 문자 집합
- 논리(boolean)
: 상태 데이터
데이터 입출력 기능
- 출력기능
- 입력기능
데이터 가공 명령어(연산자)
-----------------3~4주--------------------
명령어 응용
데이터 타입 응용
- 하드디스크 -> 메모리 -> CPU 로 정보 전달. 하드디스크 -> CPU로 바로 가는것은 불가
- 메모리에서 사용자가 절대 접근하면 안되는 영역(시스템 데이터), 읽고 쓰기 가능한 영역, 읽기만 가능한 영역으로 나뉨
- 메모리에서 8bit 단위로 번호를 붙임. 그러나 사용자는 데이터 위치 주소를 알수 없음. 알게되면 접근하면 안되는 영역에 접근 가능 = 해킹
- 사용자가 저장을 하면 컴퓨터가 주소를 할당 = 변수. 예컨대 score라고 하면 score = 변수 이름
- ptr 참조 변수 (100번지 정보) → 변수 값 (실제 100번지)
- 변수는 데이터를 저장하기 위한 공간. 변수 선언을 하면 메모리 공간을 할당 받아 사용할 수 있게 된다.
- 변수 선언 = 길이에 대한 정보, 구조에 대한 정보 선언
- 변수명 작성 규칙 있음
- 변수명 관행
1. 클래스 이름 첫글자 대문자 : KimKangSaJuminNumber
2. 변수와 메서드 이름의 첫글자 소문자
3. 여러 단어로 이루어진 이름은 단어의 첫글자 대문자 : kimKangSaJuminNumber (Camel expression)
4. 상수는 완전 대문자
- 변수를 초기화 하지 않으면 어떤 데이터가 남아있던지 메모리 공간을 할당함 → 쓰레기 데이터 할당
변수 초기화 → int score = 0; 대입 → score = 1;
- 대입 연산자(=)의 왼쪽(L value)은 공간, 오른쪽(R value)은 값
- 논리형 크기 1byte(Java 데이터 최소 단위)
- 주석 : 해당 부분은 컴파일 하지 말라는 명령
- 이정도는 외우면 좋음
2^8 = 256
2^10 = 1024
2^16 = 65536
2^24 = 16,000,000
2^32 = 4,300,000,000
2의 10승 = 1024
20승 = 1024,000
30승 = 1024,000,000
40승 = 1024,000,000,000
float형 데이터 사용 방법 : float fv = 3.14f;
int fn = 5;
int sn = 3;
System.out.println(fn*sn/2); // 7 (데이터가 모두 int 형이므로)
System.out.println(fn*sn/2.0); // 7.5 (타입이 다르면 연산이 안됨. 메모리 공간에서 데이터 타입은 변하지 않음. 그러나 CPU가 자동 형 변환(casting)해서 연산 가능)
자동 형 변환 : 서로 다른 데이터 타입을 연산할때 크기가 작은 데이터 타입을 크기가 큰 타입으로 변환
문자열 + int → int를 크기가 무한대인 문자열로 변환하여 연산
int radian = 5;
double pi = 3.141592;
int area;
area = (int)(radian*radian*pi); // (int)로 형 변환
- 문자열은 길이와 구조를 알 수 없으므로 데이터 타입을 정의할 수 없음
- 문자열 데이터 타입 정의 : 두 문자 이상이면서 마지막 문자는 null(\0) 문자여야 한다.
- 모든 주소는 4Byte → 참조 데이터 타입 변수
char ch = 'A';
char code = '\u0041'; // 유니코드
System.out.println(ch); // A
System.out.println(code); // A
ch = '1' + '1';
// 49 49 → unicode로
System.out.println(ch); // b
'Java > IT BANK - Java 기초' 카테고리의 다른 글
JAVA 6일차 - 제어문, System.currenTimeMillis() (0) | 2022.08.30 |
---|---|
JAVA 5일차 - 연산자 (0) | 2022.08.30 |
JAVA 4일차 - 입력과 출력 (0) | 2022.08.29 |
JAVA 2일차 - 이클립스 설정, 진수, ASCII (0) | 2022.08.29 |
JAVA 1일차 - 설명, 공부 방법, 업계 조언 (0) | 2022.08.29 |