
데이터의 크기
| 8 bit | 1 byte |
| 1024 byte | 1 kilobyte |
| 1024 kilobyte | 1 megabyte |
| 1024 megabyte | 1 gigabyte |
| 1024 gigabyte | 1 terabyte |
| 1024 terabyte | 1 petabyte |
| 1024 petabyte | 1 exabyte |
| 1024 exabyte | 1 zettabyte |
데이터 타입 비교
| 데이터 타입 | 메모리의 크기 | 표현 가능 범위 |
|---|---|---|
| byte | 1 byte | -128 ~ 127 |
| short | 2 byte | -32,768 ~ 32,767 |
| int | 4 byte | -2,147,483,648 ~ 2,147,483,647 |
| long | 8 byte | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 |
int가 가장 빠르고 많이 사용됨
상수의 데이터 타입
변수는 변하는 값, 상수는 변하지 않는 값(constant)
int a = 1;
여기서 a는 변수, 1은 상수이다.
형 변환
double a = 3.0F;
변수 a는 double, 상수 3.0은 float이다. 자바에서 3.0F를 float형이 아닌 double로 자동 형 변환을 해줘서 double a의 변수에 담는데 전혀 에러가 나지 않는다.
float a = 3.0;
이거는 오류가 나는데, 왜냐면 기본적으로 실수는 double을 가지는데 자바가 float를 double로 자동 형 변환 해주지 않기에 위는 3.0이라는 double 형인 상수를 float형인 변수 a에 담으려고 하니 type mismatch가 발생
따라서, 자동 형 변환의 원칙은?
=== 암시적 형 변환
표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다는 것!!
int a = 3; float b = 1.0F; double c = a+b; //a가 먼저 float형으로 자동 형 변환이 일어나서 3.0F가 되고 a+b = 4.0F인데, double c에 담아야 하기에 4.0F는 4.0D의 형태로 타입 변환이 일어난다.명시적 형 변환
float a = 100.0; //double,double->float(x) 오류 int b = 100.0F //float,float -> int(x) 오류 float a = (float)100.0; int b = (int)100.0F; //아래 바뀐 코드는 에러가 나지 않는다. 명시적으로 double일 100.0을 float이라고 데이터 타입을 지정해줬고, 100.0F도 원래는 float이어야하지만, 명시적으로 int로 지정해줘서 오류가 나지 않는 것!
2. 연산자
대입 연산자 '=' 는 변수에 값을 할당할 때 사용한다.
int a = 1;
산술(Arithmatic)연산자는 수학적인 계산에 사용되는 연산자다.수학에서의 연산자와 프로그래밍에서의 연산자는 기호의 모양이 조금 다른 점!
| 연산자 | 설명 |
|---|---|
| + | 더하기 |
| - | 빼기 |
| * | 곱하기 |
| / | 나누기 |
| % | 나머지 |
이항연산자
기본적인 산수를 연산자를 이용해 표현
문자열을 + 연산자로 더하기
단항연산자
하나의 항을 대상으로 연산이 이루어지는 연산자
| 연산자 | 설명 |
|---|---|
| + | 양수를 표현한다. 실제로는 사용할 필요가 없다. |
| - | 음수를 표현한다. |
| ++ | 증가(increment) 연산자로 항의 값을 1씩 증가 시킨다. |
| -- | 감소(Decrement) 연산자 |

Boolean
불린(Boolean)은 참과 거짓을 의미하는 데이터 타입으로 bool이라고 부른다. Boolean은 정수나 문자와 같이 하나의 데이터 타입인데, 참을 의미하는 true와 거짓을 의미하는 false 두 가지의 값을 가지고 있다.
비교 연산자는 피연산자 사이의 상대적인 크기를 판단하여, 참(true)과 거짓(false)을 반환
비교 연산자는 모두 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽

=== 같다
1===1 True
!= 같지않다
1!=2 True
크다
1>2False
= 크거나 같다
1>=2False
<= 작거나 같다
1<=2True
비교연산자는 비교 결과 boolean값인 True or False를 반환한다.
| 비교 연산자 | 설명 |
|---|---|
| == | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같으면 참을 반환함. |
| === | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같고, 같은 타입이면 참을 반환함. |
| != | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않으면 참을 반환함. |
| !== | 왼쪽 피연산자와 오른쪽 피연산자의 값이 같지 않거나, 타입이 다르면 참을 반환함. |
| > | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크면 참을 반환함. |
| >= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 크거나 같으면 참을 반환함. |
| < | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작으면 참을 반환함. |
| <= | 왼쪽 피연산자의 값이 오른쪽 피연산자의 값보다 작거나 같으면 참을 반환함. |
논리 연산자는 논리식을 판단하여 참(True)과 거짓(False)를 반환한다.
and,or,xor 연산자는 두 개의 피연산자를 가지는 이항 연산자이며, 피연산자들의 결합 방향은 왼쪽에서 오른쪽이다.
! 연산자는 피연산자가 단 하나뿐인 연산자, 피연산자의 결합 방향은 오른쪽에서 왼쪽
| and | 논리식이 모두 참이면 참을 반환함. (AND 연산) |
| or | 논리식 중에서 하나라도 참이면 참을 반환함. (OR 연산) |
| xor | 논리식이 서로 다르면 참을 반환함. (XOR 연산) |
| && | 논리식이 모두 참이면 참을 반환함. (AND 연산) |
| || | 논리식 중에서 하나라도 참이면 참을 반환함. (OR 연산) |
| ! | 논리식의 결과가 참이면 거짓을, 거짓이면 참을 반환함. (NOT 연산) |
&&(AND 연산자)
and 연산자는 좌항과 우항이 모두 true일 경우 true의 결과를 반환한다.
package org.opentutorials.javatutorials.conditionaloperator;
public class AndDemo {
public static void main(String[] args) {
if (true && true) {
System.out.println(1);
}
if (true && false) {
System.out.println(2);
}
if (false && true) {
System.out.println(3);
}
if (false && false) {
System.out.println(4);
}
}
}
|| Or 연산자
좌항 또는 우항 중에 하나라도 True면 True가 되는 것이다.
package org.honey.javatutorials.conditionaloperator;
public class OrDemo {
public static void main(String[] args) {
if (true || true) {
System.out.println(1);
}
if (true || false) {
System.out.println(2);
}
if (false || true) {
System.out.println(3);
}
if (false || false) {
System.out.println(4);
}
}
}
! Not 연산자
!true === false
!false = true
package org.honey.javatutorials.conditionaloperator;
public class NotDemo {
public static void main(String[] args) {
if (!true) {
System.out.println(1);
}
if (!false) {
System.out.println(2);
}
}
}
https://opentutorials.org 생활코딩http://www.tcpschool.com/javascript/js_operator_comparison