본문 바로가기

Java/information

[자바/JAVA] 상수와 여러 연산자들

상수란 변하지 않는 변수를 뜻한다. =항상 같은 수
-상수에 넣는 데이터로는 숫자만 오는것이 아니라 클래스나 구조체 같은 객체도 올 수 있다.
-참조변수를 상수로 지정할 때, 참조변수 안의 속성의 데이터까지도 변하지 않는다고 생각할 수 있지만, 참조변수 메모리의 주소값이 변하지 않는다는 의미일 뿐, 그 주소가 가리키는 데이터들은 변할 수 있다.

리터럴이란 데이터(값) 그 자체를 뜻한다. 즉, 변수에 넣는 변하지 않는 데이터를 의미하는 것

const a = 1;
여기서 a는 상수이고, 1은 리터럴이다.

상수는 메모리 위치(공간)이며, 메모리 값을 변경할 수 없다.
리터럴은 메모리 위치(공간) 안에 저장되는 값이다.
리터럴표기법이란, 변수를 선언함과 동시에 그 값을 지정해주는 표기법을 말한다.

상수를 만들기 위해서는 final이라는 키워드를 사용한다.

초기화하지 않은 변수를 사용하는 경우 에러가 발생.

수치 연산자
이항 연산자 : 연산자를 가운데 두고 양 옆에 숫자를 넣어야 하는 연산자
+ 덧셈, - 뺄셈, * 곱셈, % 나머지, / 몫

byte, short 자료형은 연산을 할 때 자동으로 int 형으로 변환된다.

0.0은 0과는 다르다. 그래서 실수로는 나눗셈이 가능하다
정수는 0으로 나눴을때 에러가 난다.

단항 연산자 : 단항 연산자는 ++와 -- 두가지
++은 1 증가시키라는 의미이고, --는 1 감소시키라는 의미
++ 기호가 후치형(뒤에 위치)인 경우에는 먼저 해당 줄을 수행하고 다음 줄로 넘어가기 전에 변수의 값을 1 증
++ 기호가 전치형(앞에 위치)인 경우에는 먼저 변수의 값을 1 증가시킨 후에 그 줄을 수행

비트 연산자 : 0과1만 사용하여 2진수로 계산한다. 기계어로 계산하기 때문에 속도가 굉장히 빠르다.
정수형 데이터에 적용할 수 있는 연산자
byte, char, short, int, long에만 적용
정수를 이진수로 바꾸어서 적용
bitwise 연산자의 세종류 &,|,^

AND - & : 모두가 참이여야 참이라고 계산한다. 두 비트가 모두 1이여야 1이라고 계산한다.
OR - | : 둘 중 하나만 참이여도 참이라고 계산한다. 두 비트 중 하나만 1이여도 1
XOR - ^ : and의 반대되는 계산으로 0과 1이 만나야만 1이라고 생각한다. 0과0 1과1은 모두 0

시프트 연산자
x>>a :이진수 x를 a 비트 오른족으로 이동한다. 왼쪽에 비는 공간은 부호로 채운다.
x>>>a :이진수 x를 a 비트 오른쪽으로 이동한다. >>>는 왼쪽에 비는 공간을 0으로 채운다.
x<<a :이진수 x를 a 비트 왼쪽으로 이동한다. 오른쪽에 비는 공간은 0으로 채운다.

관계 연산자
수 간의 크기를 비교하는 연산자
아래 연산의 결과는 모두 참 또는 거짓이다.
> (크다) >=(크거나 같다) <(작다) <=(작거나 같다) ==(같다) !=(같지 않다)

논리 연산자
피연산자에는 반드시 참 또는 거짓을 판단할 수 있는 문장이 와야함.
A && B : A와 B가 모두 참인 경우에만 A && B는 참이 된다.
A || B : A와 B 중에 한 개 이상이 참이면 A || B는 참이 된다.
!A : !는 A가 참이면 거짓으로, A가 거짓이면 참으로 바꾸어준다.

할당 연산자
=는 같다는 뜻이 아니라 오른쪽의 값을 왼쪽 변수에 넣으라는 뜻이다.

연산자 우선 순위
산술 연산자 > 관계 연산자 > 논리 연산자 > 할당 연산자 순으로
산술 연산자 (!, ++, --) (*, /, %) (+, -) [우선순위가 가장 높다]
관계 연산자 (<,>,<=,>=) (==, !=)
논리 연산자 (&&) (||)
할당 연산자 (=, +=, -=, *=, /=, %=) [우선순위에서 가장 낮다]

'Java > information' 카테고리의 다른 글

[자바/JAVA] 반복문  (0) 2023.04.06
[자바/JAVA] 조건문  (0) 2023.04.04
[자바/JAVA] 형변환과 시스템 입출력  (0) 2023.03.31
[자바/JAVA] 자바의 기본 자료형  (0) 2023.03.27
[자바/JAVA] 자바란  (0) 2023.03.23