자바 기초 의 상세 한 총 결 5 가지 상용 연산 자
산술 연산 자의 기 호 는 보통 더하기(+),감(-),곱 하기(*),나 누 기(/),나머지(%),자가 증가(+),자가 감소(-)이다.
int 형식의 변수 와 int 형식의 변 수 를 나 누 어 얻 은 결 과 는 int 형식 입 니 다.
double 형식의 상수 와 int 형식의 상수 로 나 누 면 double 형식의 결 과 를 얻 을 수 있 습 니 다.강제 형식 double 변환 을 사용 하면 double 형식 을 얻 을 수 있 습 니 다.
System.out.println(7 / 2);//3.0
System.out.println((double)(7 / 2)); // 3.0
System.out.println((double)7 / 2); // 3.5
나눗셈 이 존재 하 는 이상 0 이라는 특수 한 수 를 제외 하고 자바 의 프로그램 은 어떻게 처리 되 었 습 니까?모두 이상 한 보고 가 잘못 되 었 습 니까?저희 가 해 볼 수 있어 요.
// :java.lang.ArithmeticException: / by zero
int i = 123 / 0;
System.out.println(i);
// :java.lang.ArithmeticException: / by zero
int j = 0 / 0;
System.out.println(j);
double k = 123.45 / 2;
System.out.println(k); // 61.725
double x = 123.45 / 0;
System.out.println(x); // Infinity( )
double y = -123.45 / 0;
System.out.println(y); // -Infinity( )
double m = 0.0 / 0;
System.out.println(m); // NaN(Not a number )
double n = -0.0 / 0;
System.out.println(n); // NaN(Not a number )
float x = 123.45F / 0;
System.out.println(x); // Infinity( )
float y = -123.45F / 0;
System.out.println(y); // -Infinity( )
float m = 0.0F / 0;
System.out.println(m); // NaN(Not a number )
float n = -0.0F / 0;
System.out.println(n); // NaN(Not a number )
// :java.lang.ArithmeticException: / by zero
int x = 11 % 0;
System.out.println(x);
double y = 11.0 % 0;
System.out.println(y); // NaN
자가 연산 자자가 증가 연산 자 를 단독으로 사용 합 니 다:++자가 증가 가 필요 한 변수의 앞 이나 뒤에 두 더 라 도 작업 후 변수의 값 을 1 로 증가 시 킵 니 다.
자체 연산 자 를 따로 사용 하지 않 음:int j=i++;/i:3 j:2(올 라 오 자마자 i 의 값 을 j 에 게 부여 한 다음 에 i 가 스스로 증가(먼저 값 을 부여 한 다음 에 증가);int j = ++i; // i:3 j:3(올 라 와 서 i 가 스스로 증가 한 다음 에 i 의 값(증가 후의 값)을 j(먼저 증가 한 다음 에 할당)에 부여 합 니 다.
여기에 연습 문제 하 나 를 추가 합 니 다.
int i = 2;
int j = 3;
j = i++ + ++i+i*6;
마지막 j 는 얼마 입 니까?결 과 는:30)2.할당 연산 자
할당 연산 자:=,+=,-=,*=,/=,%=
이것 은 말 할 것 도 없 이 할당 작업 만 합 니 다.기본 데이터 형식 이 아 닌 데 이 터 를 주의해 야 합 니 다.산술 연산 자 를 가 진 할당 연산 자 를 사용 할 때 자동 으로 강제 형식 변환 을 합 니 다.예 를 들 어:
byte j = 5;j += 6; // 다음 문장 은 상구 j=(byte)(j+6)와 같다.
3.비교 연산 자
비교 연산 자:==,!=,>,<,>=,<=;Java 에서 사용===은 같 음(내용 이 같 음)
4.논리 연산 자
논리 연산 자:&,|,!,^,&,|
&:논리 와,하 나 는 false 가 얻 은 결과 false
|:논리 적 또는,하 나 는 true 가 얻 은 결과 가 true 입 니 다.
!:논리 가 틀리다
↑:논리 적 으로 다 르 거나 자석 과 유사 하 다.
&&:논리 와 연산 에 참여 하 는 첫 번 째 변수 나 표현 식 이 false 라면 결 과 는 false 이 고 다른 변수 나 표현 식 은 실행 하지 않 습 니 다.만약 여러 논리 와 연산 에 참여 한다 면,이렇게 유추 합 니 다.||:논리 나 연산 에 참여 하 는 첫 번 째 변수 나 표현 식 이 true 라면 결 과 는 true 이 고 다른 변수 나 표현 식 은 실행 하지 않 습 니 다.만약 여러 논리 와 연산 에 참여 한다 면 이런 식 으로 유추 할 수 있다.
&&&차이 점:&&단락 이 있 는 동작,예 를 들 어 첫 번 째 표현 식 이 false 일 때 두 번 째 표현 식(if(s!=null&s.equal(")),s 가 null 이면 사용&오류 발생;&재위 연산 자 에 사용 할 수 있 습 니 다.
연습 문제:
int i = 2;
int j = 3;
System.out.println((++i == 2) && (j++ == 3));
가:최종 i 와 j 의 값 은 얼마 입 니까?i 는 3,j 는 3)
int i = 2;
int j = 3;
System.out.println((++i == 2) & (j++ == 3));
가:최종 i 와 j 의 값 은 얼마 입 니까?i 는 3,j 는 4)5.비트 연산 자
비트 연산 자:&,|,~,^,>,>>,<
규칙:(바 이 너 리 에서)패 치 를 작 동 합 니 다.
&:비트 와 조작 을 하 는 두 수의 같은 자리 에서 하 나 는 0 이 고 이 비트 연산 의 결 과 는 0 이다.
|:비트 또는 조작 을 하 는 두 수의 같은 자리 에서 하 나 는 1 이 고 이 비트 연산 의 결 과 는 1 입 니 다.
~:비트 비,조작 을 하 는 수 는 비트 에 따라 반 대 됩 니 다.
^:비트 차이 또는 조작 을 하 는 두 수의 같은 자리 에서 두 개 는 0 이 고 두 개 는 1 이 다르다(규칙:한 수 는 두 번 연속 으로 다른 수 와 비트 차이 또는 연산 을 하여 그 자체 의 값 을 얻는다)
System.out.println(2 & 3); // 2
System.out.println(2 | 3); // 3
System.out.println(~2); // -3
System.out.println(2 ^ 3); // 1
System.out.println(2 ^ 3 ^ 3); // 2
/*
* 2:0000 0010
* 3:0000 0011
*
* 2
* :0000 0000 0000 0000 0000 0000 0000 0010
* :0000 0000 0000 0000 0000 0000 0000 0010
* :0000 0000 0000 0000 0000 0000 0000 0010
*
* ~2
* :1111 1111 1111 1111 1111 1111 1111 1101
* :1111 1111 1111 1111 1111 1111 1111 1100
* :1000 0000 0000 0000 0000 0000 0000 0011
*/
<<:왼쪽으로 이동,왼쪽 높 은 자리 삭제,오른쪽 낮은 자리 보충 0>>:오른쪽으로 이동 합 니 다.왼쪽 의 가장 높 은 위 치 는 기호 위치 이기 때문에 0 인지 1 인지 구분 해 야 합 니 다.왼쪽 의 최고 위 는 0 이 고 왼쪽 은 0 이다.왼쪽 의 가장 높 은 위 치 는 1,왼쪽 보 1>>>:기호 없 이 오른쪽으로 이동 합 니 다.왼쪽 의 가장 높 은 위 치 는 0 이 든 1 이 든 왼쪽 보 0 입 니 다.
System.out.println(2 << 1); // 4
System.out.println(2 >> 1); // 1
System.out.println(-2 >> 1); // -1
System.out.println(-2 >>> 1); // 2147483647
/*
* -2:
* :1000 0000 0000 0000 0000 0000 0000 0010
* :1111 1111 1111 1111 1111 1111 1111 1101
* :1111 1111 1111 1111 1111 1111 1111 1110
*
* 1 ( )
*
* :1111 1111 1111 1111 1111 1111 1111 1111
* :1111 1111 1111 1111 1111 1111 1111 1110
* :1000 0000 0000 0000 0000 0000 0000 0001
*
* 1 ( )
*
* :0111 1111 1111 1111 1111 1111 1111 1111
* :0111 1111 1111 1111 1111 1111 1111 1111
* :0111 1111 1111 1111 1111 1111 1111 1111
*/
자바 기초 에 관 한 상세 한 정리 5 가지 연산 자 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.자바 5 가지 연산 자 에 관 한 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.