Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

개발자입니다

JAVA 3일차 - 메모리 구조, 데이터 타입 본문

Java/IT BANK - Java 기초

JAVA 3일차 - 메모리 구조, 데이터 타입

끈기JK 2022. 8. 29. 16:54

-----------교육내용 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