정수형
| 데이터 타입 | 표현 범위 | 데이터 크기 |
| byte | -128 ~ 127 | 1 byte |
| short | -32,768 ~ 32,767 | 2 byte |
| int | -2,147,483,648 ~ 2,147,483,647 | 4 byte |
| long | -0,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 | 8 byte |
다양한 정수형이 존재하는 이유는 큰 숫자가 필요할 때, 더 많은 공간이 필요했기 때문
✔︎ 정수형 계산 과정에서 long 타입이 포함되어있는 경우를 제외하면, 연산의 경우는 항상 int형이다.
public class Number {
public static void main(String[] args) {
byte byteInteger = 130;
short shortInteger = 20;
int intInteger = 30;
long longInteger = 40;
// 밑의 두 코드는 오류를 가지고 있음.
short sum = byteInteger + shortInteger; // int 타입으로 선언해주어야함.
int sum2 = intInteger + longInteger; // long 타입으로 선언해주어야함.
}
}
실수형
| 데이터 타입 | 표현 범위 | 데이터 크기 |
| float | ±(1.40129846432481707e-45 ~ 3.40282346638528860e+38) | 4 byte |
| double | ±(4.94065645841246544e-324d ~ 1.79769313486231570e+308d) | 8 byte |
float 형을 사용하기 위해서는 숫자 뒤에 F 혹은 f를 붙여주어야 한다. double의 경우는 딱히 표현 상의 제약은 없다.
public class NumberFloat {
public static void main(String[] args) {
// 소수 뒤에 f를 붙이지 않으면 double이라고 인식하게 되어 오류가 발생함
float floatNumberX = 1.2; // 오류 발생 코드
float floatNumberO = 1.2f; // f를 붙여주어야한다.
double doubleNumber = 4.3;
}
}
★ 실수 표현의 한계 때문에 소수점 아래에서 아주 정확한 값을 표현하지 못한다.
public class NumberFloat {
public static void main(String[] args) {
float floatSum = 0.001f + 0.001f + 0.0001f;
System.out.println(floatSum);
}
}
출력 값 : 0.0021000002
이렇게 자바는 실수형 타입의 연산을 수행할 때 아주 정확한 값을 세밀하게 계산하지 못한다는 것을 알 수 있다.
그렇기 때문에 돈 계산과 같은 예민한 계산의 경우에는 (예를 들면 은행에서 사용하는 프로그램) 정수형 타입을 사용하는 것이 일반적.
정수형으로 연산을 수행한 후, 나눗셈을 통해서 스스로 바꾸어 준다.
문자형
문자 1개를 저장하는 자료형
| 데이터 타입 | 데이터 크기 |
| char | 2 byte |
public class Characters {
public static void main(String[] args) {
char character = 'o';
}
}
문자열
1. 문자열은 더하기(+) 연산자를 통해 여러 개의 문자열을 이어 붙이는 것이 가능하다.
(많이 사용된다. 로그인했을 때 "00님 반갑습니다!"와 같이 "아이디+님 반갑습니다!" )
public class StringExample {
public static void main(String[] args) {
String chicken = "치킨은 맛있어.";
String pizza = "피자도 맛있어요.";
String chickenAndPizza = chicken + pizza;
System.out.println(chickenAndPizza);
}
}
출력 값 : 치킨은 맛있어.피자도 맛있어요.
2. 문자열의 글자 수 세기
(비밀번호 길이 제한, 생년월일과 같이 자릿수가 고정되어 있는 데이터 입력, 자기소개서의 글자 수 셀 때 등)
// 변수명.기능
// stringName.length();
public class StringExample {
public static void main(String[] args) {
String chicken = "치킨은 맛있어.";
System.out.println(me.length());
}
}
출력 값 : 8
* 문자열 변수가 제공하는 기능을 사용할 때에는 문자열 변수 뒤에 ".length()"와 같이 점을 찍고 기능명 적고 괄호 열고 닫는 식으로 사용.
length는 글자 수를 세어서 되돌려 주는데(공백도 한글자로 셈) , 되돌아오는 글자 수의 자료형은 앞서 배운 int형이다.
기본적으로 length()라는 기능은 값을 돌려주는 기능이기 때문에, 문자열의 길이를 특정 변수로 받을 수 있다.
public class StringExample {
public static void main(String[] args) {
String chicken = "치킨은 맛있어.";
int length = chicken.length();
System.out.println(length);
}
}
3. 문자열 일부 바꾸기
// stingName.replaceAll("바꿀 문자열", "새 문자열");
public class StringExample {
public static void main(String[] args) {
String chicken = "치킨은 맛있어.";
String replaced = chicken.replaceAll("맛있어", "맛없어");
System.out.println(replaced);
}
}
출력 값 : 치킨은 맛없어.
4. 문자열 자르기
// stringName.substring(시작 위치, 끝위치(미포함));
// stringName.substring(시작 위치);
public class StringExample {
public static void main(String[] args) {
String birthday = "2021/01/01";
String year = birthday.substring(0, 4);
String day = birthday.substring(8);
System.out.println("출생년도:" + year);
System.out.println("출생일:" + day);
}
}
출력 값 : 출생년도:2021
출생일:01
논리형(boolean)
참(true) 또는 거짓(false)의 값(만)을 가지는 자료형.
(유튜브 프리미엄 사용자이면 광고 없애고 아니면 광고)'
public class BooleanExample {
public static void main(String[] args) {
boolean trueValue = true;
boolean falseValue = false;
boolean question = 5>3;
System.out.println(trueValue);
System.out.println(falseValue);
System.out.println(question);
}
}
출력 값 : true / false / true
래퍼(wrapper) 타입
위의 자료형들은 문자열을 제외하면 원시 자료형이라고 부른다. 원시자료형은 순수하게 상수 형태로 표현할 수 있는 자료형으로 크기에 대한 제약을 가지고 있으며 추가적인 기능들이 제공되지 않는다.
문자열은 글자 수를 세거나 문자열을 잘라내는 등의 추가적인 기능이 있다. 자바는 숫자형이나 논리형에도 이런 기능을 제공하기 위해 래퍼 타입들을 제공한다.
각 자료형의 첫 글자를 대문자로 사용하게 된다. (int는 Integer라는 조금 더 긴 이름을 가지게 된다.)
선언과 할당하는 방법은 원시 자료형과 비슷하다.
public class WrapperTypes {
public static void main(String[] args) {
Integer integerNumber = 3;
Long longNumber = 3L;
Float floatNumber = 3.0f;
Double doubleNumber = 3.0d;
Boolean booleanValue = true;
// 변환
float floatChange = integerNumber.floatValue(); // 3.0f
double doubleChange = integerNumber.doubleValue(); //3.0d
String stringChange = integerNumber.toString(); // "3"
}
}
이 자료형들의 주요 기능들로는 다른 정수형으로 변환해 주거나, 문자열로 변환해 주는 기능이 있다.
크게 유용한 기능은 없음
유투브 "초간단 자바"님 영상을 통해 공부한 내용입니다 !
www.youtube.com/watch?v=X35QS65iI8w
'Language > Java' 카테고리의 다른 글
| 반복문 (0) | 2021.03.30 |
|---|---|
| 조건문 (0) | 2021.01.30 |
| 사용자 입력과 예외 처리 (0) | 2021.01.26 |
| 연산자 (0) | 2021.01.19 |
| 숫자, 문자, 주석 그리고 변수 (0) | 2021.01.18 |