💡 전위연산 후위연산 차이점과 서로 바꿔 사용하면 어떻게 달라지는지 차이점 알기
정확한 계산을 하기 위해서는 정수를 사용하자.
10 진수
2진수
💡메모리는 할당 받는것이다. 창조X
JVM 메모리 구조(JVM Memory Structure)
1 -> 1bit -> 2
2 -> 2bit -> 4
4 -> 4bit -> 16
8 -> 8bit -> 1byte -> 256
16 -> 16bit -> 2byte -> 65536
32 -> 32bit -> 4byte -> 4,294,967,296
연산방법 :
short = 2byte
2byte -> 16bit -> 65,536
고로 short는, 65,536의 반인 32,768를 +,-로
-32,768 ~ +32,767 사이의 수만 담을 수 있음!
객체지향이란 개체를 지향하는 언어이다
연관성이 있는 복수개(여러개)의 데이터를 다룰 때 사용하는 문법
객체 -> 폴더 라고 생각하면 됨 - 파일을 담는 그릇
관련있는 파일들을 정리할 때 사용
폴더안에 파일들 개개인은 관련이 없어보여도, 폴더명에 따라 관련있는 데이터가 될 수 있음
예: 홍길동 개인정보 폴더 ) 통장사본.jpg, 재직증명서.pdf, 건강검진결과지.jpg
관련있는 데이터들끼리만 객체로 다룬다.
관련이 있을때는 객체를 사용하는게 엄청난 효율이다!
실체: 실제로 존재하는 것
주체: 내(실체)가 나(실체)를 가리킬 때
객체: 내(실체)가 다른거(실체) 가리킬 때
But, 프로그래밍에선 유/무형을 가리지 않음. 실체가 명확할 수도 있고 아닐 수도 있다 -> 데이터 저장방식의 차이
배열객체의 기본꼴이다
💡 조금전에 "변수에는 값을 1개만 넣을 수 있다."라는 개념과 충돌한다..??? 라고 생각했지만,
실제로는 공간 '1개' 만들어서 그 '1개'의 안에 값을 3개를 넣은 것이다.
그렇다고 해서 3개의 값이 들어있는 그 1개의 공간이 arr변수 안으로 들어갈 수 없다.
공간안에는 바로 내장리모컨이 들어있고 그 리모컨을 변수안에 복사해넣은 것이다.
그래서 "변수에는 값(사실상 리모컨)을 1개만 넣을 수 있다"라는 말이 맞게 된다.
변수만 사용했을 때:
int b;
int b2;
int b3;
...
int b200;
.
.
객체를 사용했을 때:
int[ ] arr200 = new int[3];
// 오직 정수형 데이터들만 들어갈 수 있는 arr라는 변수(공간)를 만들고
int[3]의 모양으로 객체 하나를 만들어서 객체를 컨트롤할 수 있는 리모컨을 넣고 연결시키겠다.
[3] <- ‘객체안에 3개의 방이 있다‘라고 생각하면 됨.
변수만 사용했을 때:
int b;
int b2;
int b3;
...
int b200;
.
.
객체를 사용했을 때:
int[ ] arr200 = new int[3];
// 오직 정수형 데이터들만 들어갈 수 있는 arr라는 변수(공간)를 만들고
int[3]의 모양으로 객체 하나를 만들어서 객체를 컨트롤할 수 있는 리모컨을 넣고 연결시키겠다.
[3] <- ‘객체안에 3개의 방이 있다‘라고 생각하면 됨.
class Main {
public static void main(String[] args) {
int[] arr = new int[6]; // 1차원배열
arr[0] = 1;
arr[1] = 2;
arr[2] = 3;
arr[3] = 4;
arr[4] = 5;
arr[5] = 6;
int[][] arr2 = new int[2][3]; // 2차원배열 // int 3개씩 2묶음
arr2[0][0] = 1;
arr2[0][1] = 2;
arr2[0][2] = 3;
arr2[1][0] = 4;
arr2[1][1] = 5;
arr2[1][2] = 6;
// 2차원배열
}
}
철수 데이터(이름, 나이, 키) 만들고싶다면?
1. 철수 타입 + 객체와 연결 할 변수(공간) 으로 철수 객체만들기
2. 철수 클라스 만들기 (설계도)
3. 철수 클라스 안에 필요한 데이터의 타입을 사용해서 변수선언하기
4. 변수명으로 클라스안에있는 타입호출해서 데이터 값 넣기
class Main {
public static void main(String[] args) {
//철수의 개인정보 -> 나이, 이름, 키
철수 a = new 철수();
a.이름 = "김철수";
a.나이 = 10;
a.키 = 160.5;
}
}
class 철수 {//설계도.
//붕어빵틀이라고 생각하면 됨. 설계도 하나를 기반으로 여러개의 붕어빵 만들수있음
//내용이 다른 붕어빵 만들 수 있음. (팥붕어빵, 슈크림붕어빵)
String 이름;
int 나이;
double 키;
}