반응형
* 자료형(DataType)
- 컴퓨터 저장단위
→ Bit(0 또는 1) → Byte(8Bit) ⇒ 영어기준 1문자당 1Byte 사용
→ 저장의 최소단위는 Byte 이다. - 자료형(DataType) : 값 또는 객체를 표현하기 위한 단어(키워드 또는 식별자)
- 기본형 : 값을 표현하기 위한 자료형(8개) → 키워드
→ 숫자형(정수형, 실수형, 문자형) : 연산가능 / 논리형 : 연산불가능
→ byte >> short >> char >> int >> long >> float >> double
- 참조형 : 객체를 표현하기 위한 자료형 → 식별자(클래스)
package basic;
//컴퓨터 저장단위
//=> Bit(0 또는 1) - Byte(8Bit) => 영어기준 1문자당 1Byte가 사용된다고 생각
// 저장의 최소단위는 Byte 다
//50(10진수) => 2진수로 : 110010
//=> 이걸 바이트 단위로 저장해야 한다(8Bit) / 8Bit중 6개만 있으니 앞의 2개를 0으로 채워줌 => 00110010
//자료형(DataType) : 값 또는 객체를 표현하기 위한 단어(키워드 또는 식별자)
//=> 기본형(PrimitiveType) : 값을 표현하기 위한 자료형 - 키워드
//=> 참조형(ReferenceType) : 객체를 표현하기 위한 자료형 - 식별자(클래스)
//기본형 : 숫자형(정수형, 실수형, 문자형), 논리형으로 구분하며 값을 표현하거나 변수를 선언할 때 사용
public class DataTypeApp {
public static void main(String[] args) {
//정수형(IntegerType) : 소수점이 없는 숫자값 - 정수값
//=> Java 언어는 정수값을 기본적으로 4Byte(-2147483648~2147483647)로 표현
System.out.println("<<정수형(IntegerType)>>");
System.out.println("정수값(10진수 100) = "+100); //정수값 : 10진수
//println() 메소드는 정수값을 무조건 10진수로 변환하여 출력 처리
System.out.println("정수값(8진수 100) = "+0100); //정수값 : 8진수(숫자 앞에 0을 붙임)
System.out.println("정수값(16진수 100) = "+0x100); //정수값 : 6진수(숫자 앞에 0x를 붙임)
System.out.println("정수값(10진수 100) = "+100L); //정수값L(대소문자 모두 가능) : 10진수 - LongType(8Byte로 표현)
System.out.println("정수값 = "+2147483647);
//4Byte로 표현할 수 없는 정수값을 사용할 경우 에러 발생
//System.out.println("정수값 = "+2147483648); 정수 범위를 벗어나서 에러뜬다
//4Byte로 표현할 수 없는 정수값은 LongType으로 표현하여 사용
System.out.println("정수값 = "+2147483648L); // 정수 범위를 벗어났지만 뒤에 L을 붙여서 에러 안남
//정수값을 표현하기 위한 자료형 - 키워드
//=> byte(1Byte), short(2Byte), int(4Byte), long(8Byte)
byte a1=127; //1Byte : -128~127범위만 가능
short a2=32767;//2Byte : -32768~32767 => C언어와의 호환을 위해 만들어짐
int a3=2147483647;//4Byte : -2147483648~2147483647
long a4=2147483647;//8Byte : 엄청 큰 값 표현 가능
System.out.println("a1 = "+a1);
System.out.println("a2 = "+a2);
System.out.println("a3 = "+a3);
System.out.println("a4 = "+a4);
//int a5=100L; => 값에 대한 손실이 발생할 수 있으므로 에러 발생(변수는 4Byte 값은 8Byte)
//자료형이 큰 변수에는 자료형이 작은 리터럴(값) 저장 가능
long a5=100;//값에 대한 손실은 없어 에러는 아니지만 4Byte값을 8Byte에 저장한 것이 적절하지는 않다.
System.out.println("a5 = "+a5);
System.out.println("===================================================================");
//실수형(DoubleType) : 소수점이 있는 숫자값 - 실수값
//=> Java 언어는 정수값을 기본적으로 8Byte로 표현 - 부동소수점 방식으로 표현
System.out.println("<<실수형(DoubleType)>>");
System.out.println("실수값(4Byte) = "+12.3F); //실수값F >> 4Byte(FloatType)
System.out.println("실수값(8Byte) = "+12.3); //실수값 >> 8Byte(DoubleType)
//println() 메소드는 실수값이 아주 작거나 큰 경우 지수형태로 변환하여 출력 => 1.23E-10
System.out.println("실수값(8Byte) = "+0.000000000123);
//실수값을 지수형태로 표현하여 사용 가능
System.out.println("실수값(8Byte) = "+1.23E10);
//실수값을 표현하기 위한 자료형 - float(4Byte), double(8Byte)
//float b1=1.23456789; 8Byte(double) 값을 4byte 자료형에 저장하려고 해서 에러남
float b1=1.23456789F;//가수부로 표현 가능한 크기(정밀도) : 소수점 7자리
double b2=1.23456789;//가수부로 표현 가능한 크기(정밀도) : 소수점 15자리
System.out.println("b1 = "+b1); //소수점 7자리까지 표현되기에 뒤에 자리가 반올림 되면서 표현됨
System.out.println("b2 = "+b2);
System.out.println("===================================================================");
//문자형(CharacterType) : ' ' 안에 하나의 문자로 표현되는 값
//=> Java 언어는 문자값을 기본적으로 2Byte로 표현
//=> 문자값은 일반 문자 외에 회피문자(제어문자) 존재
//회피문자(Escape Character) : 표현 불가능한 문자를 표현하기 위해 만들어진 문자값 - [\]기호 사용하여 문자표현
//=> '\n' : 엔터(Enter), '\t' : 탭(Tab), '\'' : ' 문자, '\"' : " 문자, '\\' : \ 문자, '\0' : NULL문자
//문자값은 내부적으로 약속된 정수값(0~65535)으로 표현되어 사용 - 유니코드(Unicode)
//=> 'A' : 65, 'a' : 97 (대소문자의 차이는 32), '0' : 48, ' ' :32, '\n' : 13, '가' : 44032
System.out.println("<<문자형(CharacterType)>>");
System.out.println("문자값 = "+'A');
System.out.println("문자값 = "+'가');
System.out.println("문자값 = "+'\'');
System.out.println("문자값 = "+'\\');
//문자값을 표현하기 위한 자료형 - char(2Byte)
char c1='A';
char c2=65; //문자 변수에는 문자값 대신 약속된 정수값 저장 가능
char c3='a'-32; //문자값에 대한 연산 가능
System.out.println("c1 = "+c1);
System.out.println("c2 = "+c2);
System.out.println("c3 = "+c3);
char c4=45000; // 약속된 숫자값은 문자이다
System.out.println("c4 = "+c4);
System.out.println("===================================================================");
//논리형(BooleanType) : false(거짓) 또는 true(참) - 논리값 / 참과 거짓은 1과 0이 아니다.
//=> Java 언어는 논리값을 기본적으로 1Byte로 표현
System.out.println("<<논리형(BooleanType)>>");
System.out.println("논리값 = "+false);
System.out.println("논리값 = "+true);
//관계연산자(비교연산자)를 이용한 연산식의 결과값으로 논리값을 제공
System.out.println("논리값 = "+(20 < 10));
System.out.println("논리값 = "+(20 > 10));
//논리값을 표현하기 위한 자료형 - boolean(1Byte)
boolean d1=false;
boolean d2=20>10;
System.out.println("d1 = "+d1);
System.out.println("d2 = "+d2);
System.out.println("===================================================================");
//문자열(StringType) : " " 안에 0개 이상의 문자들을 사용하여 표현된 값 - String 객체
//=> 문자열은 기본형(원시형)이 아닌 String 클래스(참조형)를 사용하여 표현
System.out.println("<<문자열(StringType)>>");
System.out.println("문자열 = "+"홍길동");
System.out.println("문자열 = "+"유관순 열사가 \"대한민국 만세\"를 외쳤습니다.");
//문자열을 표현하기 위한 자료형 - String 클래스
String name="임꺽정";
System.out.println("이름 = "+name);
System.out.println("===================================================================");
}
}
반응형
'지식공유 > JAVA' 카테고리의 다른 글
JAVA 수업 복습 정리(7)_연산자/Operator/java/프로그래밍 (0) | 2024.08.03 |
---|---|
JAVA 수업 복습 정리(6)_형변환/TypeCast/java/프로그래밍 (0) | 2024.06.26 |
JAVA 수업 복습 정리(4)_변수/리터럴/값/java/프로그래밍 (0) | 2024.05.31 |
JAVA 수업 복습 정리(3)_github/git/java/jdk/프로그래밍 (0) | 2024.05.01 |
JAVA 수업 복습 정리(2)_이클립스 세팅/IDE/자바기초 (0) | 2024.05.01 |
댓글