:변수의 값(데이터)
- 2진수 : 0b 또는 0B로 시작하고 0,1로 구성됨
- 8진수: 0으로 시작하고 0~7숫자로 구성
- 10진수 : 소수점없는 0~9숫자로 구성
- 16진수 : 0X또는 0x로 시작하고 0~9숫자와 A,B,C,D,E,F또는 a,b,c,d,e,f로 구성(a부터 f 까지는 10~15숫자임.)
[TYPE]
타입 | 메모리 사용크기 | 저장되는 값의 허용 범위 | 접미사 |
---|---|---|---|
byte | 1byte | -2^7 ~ 2^7 -1 | |
short | 2byte | -2^15 ~ 2^15 -1 | |
char | 2byte | 0 ~ 2^16-1 | |
int | 4byte | -2^31 ~ 2^31 -1 | |
long | 8byte | -2^63~ 2^63 -1 | l또는 L 을 붙여 표시 |
(보통 정수 리터럴은 int 형으로 컴파일하는 편)
char var1 ='a'; // 유니코드 :65
char var2 ='가'; // 유니코드 :44032
char var3 =0ㅌ0041; // 16진수
char var4 =65; // 유니코드 :10진수
char var3, var4의 값도 유니코드로 변환가능해서 ' ' 를 사용하지 않고 그냥 넣어도 인식한다.
boolean a = true;
boolean b = 10 > 0;
boolean c = 1; (오류)
// 자바에서 boolean을 logical하게 인식하게(즉, 참/거짓) 되어있음. 여기서 0,1을 integer으로 인식하기 때문에 오류가 발생함.
타입 | 메모리 사용크기 | 저장되는 값의 허용 범위 | 접미사 |
---|---|---|---|
float | 4byte | (1.410^-45) ~ (3.410^38) | f 또는 F를 붙여 표시 |
double | 8byte | (4.91.^-32.4) ~ (1.810^308) | D 또는 d를 붙여 표시 |
float var = 3.14f;
double var = 3.14;
String str - "Good";
int n = null; // 오류 발생 , 숫자가 아닌 문자로 표기됨
String str = null; //null 이라는 값이 無에 해당되기 때문에
""를 붙이지 않고도 사용가능
int price = 20_100 //20100
long cardNumber = 1234_5678_1357_9998L;
// 1234567813579998
int age = 2___5 //25
int x =15_; // 마지막 끝에 붙이는 경우
double pi = 3_.14; // 소수점 앞에 위치하는 경우
long idNum = 981231_1234567_L; // l,d,f 등 앞에
int y = 0_x15; //n진수 사용시 앞의 구분 부분에서 사용하는 경우
int a = 5/2; // 2(O), 2.5(X)
double b = 5/2.0 //2.5
int score ="100"; //타입 불일치, 컴파일 에러 발생
int score = 100; //int 타입으로 일치
double p = 2; // 정수 2가 대입을 통해, 2.0으로 자동 변환
int n =300;
byte b = n;
byte b = (byte)n;
쉽게 말하자면 강제로 타입 변환시, 데이터 손실이 발생할 수 있음
1) 업 캐스팅(up-casting) : 좁은 범위에서 넓은 범위로 해석
2) 다운 캐스팅(down-casting) : 넓은 범위에서 좁은 범위로 해석
int r = (int) 10.4; //r=10. 다운캐스팅
double s = (double)7; //s=7.0 업캐스팅
int x = Integer.parseInt("3"); // 문자열을 정수로 변환하는 메소드
double z = Double.parseDouble("-9.81"); //문자열을 실수로 변환하는 메소드
String c = Integer.toString(123); // 문자열 123 생성
String d = Double.toString(1.23); // 문자열 1.23 생성
String a = "" + 1234; //문자열 1234 생성. 빈 문자열에 정수를 덧셈.
String b = "" + 3.14; //문자열 3.14 생성. 빈 문자열에 정수를 덧셈.
import java.util.Scanner; //기본적으로 import 문을 사용하여 클래스 경로 호출
Scanner a(참조변수) = new Scanner(System.in); //Scanner 객체 생성
System.in는 사용자로부터 입력을 받기위한 입력 스트림으로 매개변수.
(쉽게 생각하면 여기서 객체가 생성될 때 (System.in)바이트 표준 입력 스트림인 매개변수를 사용했다. 정도로 이해)
(예시) - 원화를 입력받아 달러로 바꾸기.
package chapter02;
import java.util.Scanner;
public class Won2Dollar {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);//객체 생성
System.out.println("원화를 입력하세요.(단위 원)");
int won = scanner.nextInt();
double dollar =(double)won/1100;
System.out.println(won+"원은 "+"$"+dollar+"입니다.");
}
}
(예시 2) - 두개의 실수를 입력하여 계산
package chapter02;
import java.util.Scanner;//무조건 넣어야함.
public class ExCalculation {
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);//객체 생성
System.out.println("2개의 실수를 입력하시오");
double first_num = scanner.nextInt();
double second_num = scanner.nextInt();
double sum = first_num + second_num;
double subtraction = first_num - second_num;
double multiply = first_num * second_num;
double divide = first_num / second_num;
System.out.println("두 수의 덧셈은"+sum);
System.out.println("두 수의 뺄셈은"+subtraction);
System.out.println("두 수의 곱셈은"+multiply);
System.out.println("두 수의 나눗셈은"+divide);
scanner.close();
}
}
연산의 종류 | 연산자 |
---|---|
증감 | ++ -- |
산술 | + - * / % |
비교 | > < >= <= == != |
조건 | ? : |
대입 | = *= /= += -= |
:변숫값을 1만큼 증가 또는 감소
전위 연산은 변숫값 먼저 증감
후위 연산은 한 문장의 수행이 끝난 뒤 변숫값 증감
대입 | 내용 |
---|---|
a = b | b의 값을 a에 대입 |
a += b | a = a + b |
a -= b | a = a - b |
a *= b | a = a * b |
a /= b | a = a / b |
a %= b | a = a % b |
:두 값을 비교
대입 | 내용 |
---|---|
== | x == y |
!= | x != y |
>= | x >= y |
> | x > y |
<= | x <= y |
< | x < y |
XOR 연산자
두 논리값이 다르면 참, 같은 경우 거짓