반응형
데이터타입
- 큰범주로 4가지가 있고 각각 총 9가지가 있다.
| 우선적으로 "bit"에 대하여 이해하자. |0|0|0|1| 1칸이 1bit -> 8bit가 되면 1byte가 된다. 1byte가 1024bypte되면 1kb가된다. 1024kb->mb 🔹 8bit->1byte->kb->mb->gb = 일단 byte까지만 알아두면 된다. 🔹 byte - 1byte 🔹 short - 2byte 🔹 int - 4byte (대략 21억까지 저장가능)(default 사용) 🔹 long - 8byte |
➰1byte의 최대값에 대하여
|1|1|1|1|1|1|1|1|
8칸을 최대로 다 쓰면 -값을 저장하지 못함.
따라서, 제일 앞칸은 양과음을 나타내는 칸으로 사용.
|양/음|1|1|1|1|1|1|1|
=> 제일 큰 값은 127이다.
=> 음수는 -128까지가능
=> 즉, -128 ~ 127까지 가능.
-128 = 10000000 = 128가능
❓칸이 다찼을때는 -128로 사용, 칸이 널널할때는 128로 사용한다는데 이해하지 못했다.
1. 정수형 - byte / int / short / long
//정수형 실습
//byte, short, int, long 각각의 저장가능한 숫자
//byte a = 128; 127까지 저장가능하다.
byte b = -128; // byte -128~127까지 저장가능
short c = 32767;//32768은 안되고 32767까지 가능하다
short d = -32768;
int e = 2147483647;
int f = -2147483648;
long g = 123123123123123123L;
//long은 숫자뒤에 L을 붙여서 long타입임을 명시해주어야 에러가 안뜸.
System.out.println(g);
2. 실수형 - float / double
- float - 4byte
- double - 8byte (default 사용)
- 실수가 실제 값을 어떻게 저장하는지 형태를 알아둬야한다.
- float 32bit 대략적으로 실수와 정수의 양을 구분하여 반절 나눠서 사용한다.
- 실수 부분을 표현할때 문제 발생. (한계치가 있다)
- float 소수부 7자리까지 신뢰성이 있다고 본다.
- double은 15자리까지 신뢰성이 있다고 본다.
- 연산이 일어났을 때, 오차가 있다. (어쩔수 없는 한계이다.)
- 반올림/올림같은 것으로 맞춰줘야 한다.
// 실수형 실습
float f1 = 3.14F; // float을 표기할 때에는 f를 붙여준다.(기본형이 double이므로)
double d1 = 3.14;
float f2 = 3.1415923333F; // 7자리까지 유효
double d2 = 3.1415923333; // 15자리까지 유효
System.out.println(f2);
System.out.println(d2);
결과값
3.1415923
3.1415923333
3. 논리형 - boolean
- boolean 타입에는 true(1)/false(0)만 저장할 수 있다.
- boolean은 1bit임
//논리형 실습
boolean bool1 = true;
boolean bool2 = false;
System.out.println(bool1);
System.out.println(bool2);
결과값
true
false
4. 문자형 - char / string
- char
2byte, 부호가 없는 bit 16칸을 풀로 사용함 UNSIGNED
' '로 묶어서 한글자(문자)만 저장가능
- string
가변형 사이즈
" "로 묶어서 문자열 저장가능
//문자열
String s1 = "hello";
String s2 = " world"; // 공백도 문자로 인식됨.
//문자열은 +로 연결하면 붙인 결과를 가져옵니다.
System.out.println(s1 + s2);
//문자열의 길이를 알려주는 length()
System.out.println(s1.length());
System.out.println(s2.length());
//문자열과 다른 타입의 + 연산
System.out.println(100 + 200); //300
System.out.println("100" + 200); // 문자는 가장 강력한 타입 (문자열 우선) , 문자열에 다른타입 붙으면 결과는 문자열이 된다.
System.out.println(100 + 200 + "world"); // 300world
System.out.println("world" + 100 + 200); // world100200 문자열이 먼저나오면 뒤에는 다 문자됨.
결과값
hello world
5
6
300
100200
300world
world100200
💡자바는 데이터 타입이 굉장히 중요하여 뒤로 갈수록 중요하다.
5. 2진수 / 8진수 / 16진수 표기
/*
* 2진수로 저장할때에는 0b를 붙임
* 8진수로 저장할때에는 0을 붙임
* 16진수로 저장할때에는 0x를 붙임
*/
int bin = 0b1010; // 2진수
int octa = 064; // 8진수
int hexa = 0xAC00; //16진수
//java는 문자열과 변수를 같이 출력하고 싶을 때 그냥 +를 사용하면된다.
System.out.println("2진수 1010은:" + bin + "입니다");
System.out.println("8진수 64은:" + octa + "입니다");
System.out.println("16진수 AC00은:" + hexa + "입니다");
6. e표기법 (참고용)
//e표기법(구경만)
//자리가 부족한 경우 실수부와 정수부의 크기를 조절해 줄수 있는 표기법
float f3 = 314.15e-2F; // 10 -2승
double d3 = 0.031415e2; //10의 2승
System.out.println(f3);
System.out.println(d3);
결과값
3.1415
3.1415반응형
'국비지원 > JAVA' 카테고리의 다른 글
| [JAVA] 2-4. 연산자 Operator / 2항연산자 / 3항연산자 (0) | 2022.09.22 |
|---|---|
| [JAVA] 2-3. 형변환과 데이터크기 & casting (0) | 2022.09.22 |
| [JAVA] 2-1. 변수 (0) | 2022.09.22 |
| [JAVA] 1-6. eclipse의 export/import (0) | 2022.09.21 |
| [JAVA] 1-5. 변수 (0) | 2022.09.21 |