1. 자바 데이터 유형
1-1 기본 데이터 유형
2. 자바 숫자 데이터 유형
2-1 자바 숫자 데이터 유형
2-1-1 byte, short, int
2-1-2 long
2-1-3 float
2-1-4 double
2-2 캐스팅
2-2-1 확대 캐스팅
2-2-2 축소 캐스팅
2-3 연산자
2-3-1 산술 연산자
2-3-2 할당 연산자
2-3-3 비교 연산자
2-3-4 논리 연산자
2-4 Math 클래스
2-4-1 Math.max(x,y)
2-4-2 Math.min(x,y)
2-4-3 Math.sqrt(x)
2-4-4 Math.abs(x)
2-4-5 Math.random( )
3. 자바 문자 데이터 유형
3-1 자바 문자 데이터 유형
3-1-1 char
1. 자바 데이터 유형
1-1 기본 데이터 유형
데이터 유형 | 크기 | 출력할 수 있는 값의 범위 |
byte | 1 byte | -128 ~ 127 |
short | 2 bytes | -32,768 ~ 32,767 |
long | 8 bytes | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
int | 4 bytes | -2,147,483,648 ~ 2,147,483,647 |
double | 8 bytes | 1.7E-308 ~ 1.7E + 308 |
float | 4 bytes | 3.4e-038 ~ 3.4e + 038 |
boolean | 1 bit | true, false |
char | 2 bytes | 문자, ASCII |
자바에는 8가지의 기본 데이터 유형이 있다.
byte, short, int, long, float, double은 숫자 데이터 유형,
char는 문자 데이터 유형,
boolean은 참/거짓 데이터 유형이다.
2. 자바 숫자 데이터 유형
2-1 자바 숫자 데이터 유형
기본 숫자 데이터 유형인 byte, short, int, long, float, double에 대해 알아보았다.
데이터 유형 | 크기 | 출력할 수 있는 값의 범위 |
byte | 1 byte | -128 ~ 127 |
short | 2 bytes | -32,768 ~ 32,767 |
long | 8 bytes | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
int | 4 bytes | -2,147,483,648 ~ 2,147,483,647 |
double | 8 bytes | 1.7E-308 ~ 1.7E + 308 |
float | 4 bytes | 3.4e-038 ~ 3.4e + 038 |
byte, short, int, long은 자연수와 음수를 출력하는 데이터 유형이다.
float와 double은 실수를 출력하는 데이터 유형이다.
각 데이터 유형은 출력할 수 있는 숫자의 범위가 다르다.
byte<short<int<long
float< double
순이다.
byte 로도, long 으로도 1을 출력할 수 있다.
하지만 long 으로 1을 출력하지 않는 이유는, long의 기본 할당 값이 커서, 속도가 느려지기 때문이다.
2-1-1 byte, short, int
public class Main {
public static void main(String[] args) {
byte number = 100;
System.out.println(number);
}
}
byte, short, int 까지는
지금까지 해줬던 변수 선언으로 값을 출력할 수 있다.
2-1-2 long
public class Main {
public static void main(String[] args) {
long myNum = 15000000000L;
System.out.println(myNum);
}
}
long 은 출력하고 싶은 값 뒤에 L 을 붙여줘야 한다.
2-1-3 float
public class Main {
public static void main(String[] args) {
float myNum = 5f;
System.out.println(myNum);
}
}
float 는 출력하고 싶은 값 뒤에 f 를 붙여줘야 한다.
출력한 값은 5.0 으로, 소수점이 붙어서 출력된다.
float 는 10진수 6~7자리를 표현할 수 있다.
2-1-4 double
public class Main {
public static void main(String[] args) {
double myNum = 19.9999999999999d;
System.out.println(myNum);
}
}
double 은 출력하고 싶은 값 뒤에 d 를 붙여줘야 한다.
출력한 값은 19.9999999999999 으로, 소수점이 붙어서 출력된다.
double 은 10진수 약 15자리를 표현할 수 있다.
2-2 캐스팅
캐스팅은 선언한 값을 다른 변수로 변환할 때 사용한다.
- 확대 캐스팅 - 작은 유형을 큰 유형 크기로 변환
byte-> short-> char-> int-> long-> float->double - 축소 캐스팅 - 큰 유형을 작은 크기 유형으로 변환
double-> float-> long-> int-> char-> short->byte
확대 캐스팅은 자동으로 변환할 수 있지만, 축소 캐스팅은 수동으로 변환해줘야 한다.
물리에서는 높은 곳에서 낮은 곳, 농도가 진한 곳에서 묽은 곳, 엔탈피가 큰 곳에서 작은 곳으로
에너지를 사용하지 않고 이동하는데
자바는 반대로 이동한다.
2-2-1 확대 캐스팅
public class Main {
public static void main(String[] args) {
byte numbyte = 1;
double numDouble = numbyte;
System.out.println(numbyte);
System.out.println(numDouble);
}
}
이렇게 뒤에서 다시 한번 선언해주면
byte 에 의해 1 이라고 출력된 값이 자동으로
1.0 으로 출력된다.
2-2-2 축소 캐스팅
public class Main {
public static void main(String[] args) {
double numDouble = 9.78d;
int numInt = (int) numDouble;
System.out.println(numDouble);
System.out.println(numInt);
}
}
하지만 축소 캐스팅은
뒤에서 괄호로 다시 선언을 해줘야 적용이 된다.
2-3 연산자
자바의 연산자에는
산술 연산자, 할당 연산자, 비교 연산자, 논리 연산자가 있다.
연산자는 어느 언어든 거기서 거기인 것 같다.
그래서 익히는 데 별로 어렵지 않았다.
2-3-1 산술 연산자
연산자 | 설명 | 예시 |
+ | 값을 더한다. | x+y |
- | 값을 뺀다. | x-y |
* | 값을 곱한다. | x*y |
/ | 값은 나눈다. | x/y |
% | 나눈 값의 나머지를 구한다. | x%y |
++ | 1 씩 증가시킨다. | ++x |
-- | 1 씩 감소시킨다. | --x |
사용 방법은 다 비슷비슷하니 하나만 예시로 코딩해봤다.
public class Main {
public static void main(String[] args) {
int x = 5;
++x;
System.out.println(x);
}
}
2-3-2 할당 연산자
연산자 | 설명 | 예시 |
= | 값 정의 | x = 1 (x = 1) |
+= | 값 추가 (+) | x += 1 (x = x + 1) |
-= | 값 추가 (-) | x -= 1 (x = x - 1) |
*= | 값 추가 (*) | x *= 1 (x = x * 1) |
/= | 값 추가 (/) | x /= 1 (x = x / 1) |
%= | 값 추가 (%) | x %= 1 (x = x % 1) |
&= | 값 추가 (and) | x &= 1 (x = x & 1) |
|= | 값 추가 (or) | x |= 1 (x = x | 1) |
^= | 값 추가 (Xor) | x ^= 1 (x = x ^ 1) |
>>= | 값 추가 (shift right) | x >>= 1 (x = x >> 1) |
<<= | 값 추가 (shift left) | x <<= 1 (x = x << 1) |
할당 연산자도 산술 연산자와 마찬가지로 사용 방법은 비슷비슷하다.
public class Main {
public static void main(String[] args) {
int x = 5;
x ^= 3;
System.out.println(x);
}
}
혹시 비트의 and or xor 연산을 까먹을까봐 남겨놓는다.
비트의 shift 연산도 까먹을까봐 남겨놓는다.
2-3-3 비교 연산자
연산자 | 설명 | 예시 |
== | 같을 때 | x == y |
!= | 같지 않을 때 | x != y |
> | 클 때 | x > y |
< | 작을 때 | x < y |
>= | 크거나 같을 때 | x >= y |
<= | 작거나 같을 때 | x <= y |
말 그대로 두 값을 비교하는 연산자이다.
결과는 true와 false로 출력된다. (boolean)
public class Main {
public static void main(String[] args) {
int x = 5;
int y = 3;
System.out.println(x != y); // returns true because 5 is not equal to 3
}
}
2-3-4 논리 연산자
연산자 | 설명 | 예시 |
&& | 두 식을 and 로 연결 | x < 5 && x < 10 |
|| | 두 식을 or 로 연결 | x < 5 || x < 4 |
! | 두 식을 nor 로 연결 | !(x < 5 && x < 10) |
결과는 true와 false로 출력된다. (boolean)
public class Main {
public static void main(String[] args) {
int x = 5;
System.out.println(x > 3 || x < 4);
}
}
2-4 Math 클래스
Math 클래스의 여러 매소드를 사용해서 숫자 연산을 할 수 있다.
2-4-1 Math.max(x,y)
public class Main {
public static void main(String[] args) {
System.out.println(Math.max(5, 10));
}
}
둘 중 큰 값을 출력해준다.
2-4-2 Math.min(x,y)
public class Main {
public static void main(String[] args) {
System.out.println(Math.min(5, 10));
}
}
둘 중 작은 값을 출력해준다.
2-4-3 Math.sqrt(x)
public class Main {
public static void main(String[] args) {
System.out.println(Math.sqrt(8));
}
}
입력한 값의 제곱근을 출력해준다.
2-4-4 Math.abs(x)
public class Main {
public static void main(String[] args) {
System.out.println(Math.abs(-8));
}
}
입력한 값의 절댓값을 출력해준다.
2-4-5 Math.random( )
public class Main {
public static void main(String[] args) {
System.out.println(Math.random());
}
}
랜덤한 숫자를 출력해준다.
보통 코드 실습할 때 많이 사용한다. (파이썬에서도 데이터 테이블 채울 때 많이 썼다.)
랜덤한 숫자이기 때문에 범위가 들쭉날쭉하다.
그래서 보통은 데이터 유형을 앞에 입력해줘서 범위를 제어해준다.
public class Main {
public static void main(String[] args) {
int randomNum = (int)(Math.random() * 101);
System.out.println(randomNum);
}
}
int로 입력해줬기 때문에 자연수와 음수로 범위가 좁혀졌고
*101을 입력해줬기 때문에 0 부터 100 사이의 수가 출력된다.
3. 자바 문자 데이터 유형
3-1 자바 문자 데이터 유형
데이터 유형 | 크기 | 출력할 수 있는 값의 범위 |
char | 2 bytes | 문자, ASCII |
String 도 기본 데이터 유형인 줄 알았는데 아니라고 한다.
그 이유는 객체를 참조하기 때문이다.
그래서 문자열을 다룰 수 있는 다른 매서드가 있다고 한다.
나는 아직 객체에 익숙하지 않아서… 일단 공부를 하면서 이해하려고 노력중이다ㅠㅠ
3-1-1 char
char 도 위의 데이터 유형과 마찬가지로 값을 출력할 수 있다.
근데 char 로 ASCII 를 출력할 수도 있다.
public class Main {
public static void main(String[] args) {
char p = 85, b = 66;
System.out.println(p);
System.out.println(b);
}
}
아스키코드 테이블이 있는 사이트이다.
참고해서 출력하면 되지만, 이걸 개발하는 데 쓸 일이 있을지 궁금하다.
'컴퓨터 > Java' 카테고리의 다른 글
[JAVA] 자바의 기본(5)_제어문 공부 1, if문, switch문 (0) | 2021.09.22 |
---|---|
[JAVA] 자바의 기본(5)_제어문 공부 1 (0) | 2021.09.20 |
[JAVA] 자바의 기본(4)_배열 array (0) | 2021.09.20 |
[JAVA] 자바의 기본(3)_문자열 변수 String, 문자열 구분 \ (0) | 2021.09.18 |
[JAVA] 자바의 기본(1)_문장 출력하기, 변수 선언하기 (0) | 2021.09.17 |
댓글