JAVA 기본-자바 연산자 및 배열
자바 연산자 및 배열
자바 연산자
자바 연산자는 산술, 비교, 논리, 비트 연산자 등이 존재하며 연산자 우선순위가 존재한다.
산술 연산자
- 정수형, 실수형에 사용되며 덧셈, 뺄셈, 곱셈, 나눗셈, 나머지 등의 연산이 가능
| | 연산자 | 사용법 | 설명 | 비고 |
| ————- | —— | ——— | —————————————- | —- |
| 증감 연산자 | ++
| ++값
| 값 1 증가 후에 값을 취함 | 단항 |
| | | 값++
| 현재 값을 취한 후 값 1 증가함 | |
| | --
| --값
| 값 1 감소 후에 값을 취함 | |
| | | 값--
| 현재 값을 취한 후 값 1 감소함 | |
| 부호 연산자 | +
| 값1 + 값2
| 덧셈 | 이항 |
| | -
| 값1 - 값2
| 뺄셈 | |
| | *
| 값1 * 값2
| 곱셈 | |
| | /
| 값1 / 값2
| 나눗셈 | |
| 나머지 연산자 | %
| 값1 % 값2
| 정수의 몫을 취한 후 나머지를 구하는 연산 | |
- 단항 : 피연산자가 하나인 연산자
- 이항 : 피연산자가 두개인 연산자
비교 연산자
- 대소 비교나 객체의 타입 비교 등에 사용됨,
- 수행 결과에 따라
true
나false의
boolean
타입 값 반환
연산자 | 사용법 | 설명 |
---|---|---|
> |
값1 > 값2 |
값 1이 값 2보다 큰 경우 true |
>= |
값1 >= 값2 |
값 1이 값 2보다 크거나 같은 경우 true |
< |
값1 < 값2 |
값 1이 값 2보다 작은 경우 true |
<= |
값1 <= 값2 |
값 1이 값 2보다 작거나 같은 경우 true |
== | 값1 ==값2 |
값 1과 값 2가 같은 경우 true |
!= |
값1 != 값2 |
값 1과 값 2가 같지 않은 경우 true |
instanceof |
값1 instanceof 값2 |
값 1이 값 2 데이터 타입의 객체인 경우 true |
논리 연산자
연산자 | 사용법 | 설명 |
---|---|---|
& |
값 1 & 값 2 |
값 1과 값 2 모두 true 인 경우만 true 를 리턴 |
&& |
값 1 && 값 2 |
위와 동, 단, 값 1이 false 면, 바로 false 리턴 (단축 평가) |
| | 값 1 | 값 2 | 값 1이나 값 2 중 하나라도 true 라면 true 를 리턴 |
|| | 값 1 || 값 2 | 위와 동, 단, 1이 true 면 바로 true 리턴 (단축 평가) |
! |
!값 |
값이 true 면 false 로, false 면 true 로 변경 |
비트 연산자
- 값을 비트(bit)로 연산하는 연산자
- 메모리를 최대한 효율적으로 활용해야 하는 경우 비트 단위로 데이터를 관리
연산자 | 사용법 | 설명 |
---|---|---|
& |
값1 & 값2 |
값 1과 값 2의 비트 단위 논리곱(and) 연산 |
| | 값1 | 값2 | 값 1과 값 2의 비트 단위 논리합(or) 연산 |
^ |
값1 ^ 값2 |
값 1과 값 2의 비트 단위 배타 논리합(exclusive or) 연산 |
~ |
~ 값 |
값의 비트 단위 보수(not) 연산 |
>>> |
값1 >> 값2 |
값 1을 비트 단위로 값 2만큼 오른쪽으로 이동하고 왼쪽에는 현재 부호 비트가 채워짐, 양수이면 부호비트 0이므로 0로 채워짐 |
>> |
값1 >>> 값2 |
값 1을 비트 단위로 값 2의 비트 수만큼 오른쪽으로 시프트하고, 왼쪽에는 0이 채워짐 |
<< |
값1 << 값2 |
값 1을 비트 단위로 값 2의 비트 수만큼 왼쪽으로 시프트하고, 오른쪽에는 0이 채워짐 |
기타 연산자
- 대입 연산자
- 변수에 값을 저장하기 위환 용도
- 대입 연산자(
=
)를 중심으로 오른쪽의 값을 왼쪽에 대입하여 사용
op= |
의미 |
---|---|
+= |
변수 = 변수 + 수싱 |
-= |
변수 = 변수 - 수식 |
\*= |
변수 = 변수 \* 수식 |
/= |
변수 = 변수 / 수식 |
%= |
변수 = 변수 % 수식 |
&= |
변수 = 변수 & 수식 |
|= | 변수 = 변수 | 수식 |
^= |
변수 = 변수 ^ 수식 |
<<= |
변수 = 변수 << 수식 |
>>= |
변수 = 변수 >> 수식 |
- 조건 삼항 연산자 (
?, :
)?, :
형태의 삼항 연산자를 제공- 조건 제어문인
if-else
문장을 축약하여 사용 - 단 가독성을 해치는 경우도 있으므로 사용에 주의
- 형식 :
변수 = 조건 ? 값 1: 값 2
- 조건이 참이면 값 1이 변수에 대입, 거짓이면 값 2가 변수에 대입
자바의 연산자 우선순위
| 우선순위 | 연산자 또는 표현식 |
| ——– | —————————- |
| 1 | () [] .
|
| 2 | ++ -- ~ !
(데이터 타입) |
| 3 | * / %
|
| 4 | + -
|
| 5 | >> >>> <<
|
| 6 | > >= < <=
|
| 7 | == != |
| 8 | &
(비트 연산) |
| 9 | ^
|
| 10 | | (비트 연산) |
| 11 | &&
|
| 12 | || |
| 13 | ?:
|
| 14 | =
및 각종 축약된 대입 연산자 |
- 연산자의 우선순위는 고정이며, 외우기 보다는 괄호 ()를 이용하여 연산하자
자바의 배열
배열의 개념
- 같은 타입의 데이터들의 모임
- 메모리가 절약되고, 쉽고 간결하게 프로그램을 처리 가능
String greeting; //Ox12abcf 번지라는 주소가 저장됨
greeting = new String( " Hello, Java! "); // "Hello Java!"는 위 주소에 저장됨
일차원 배열의 선언과 사용
// 배열 변수 선언 형식
// 데이터타입 배열변수명[];
// 또는
// 데이터타입[] 배열변수명;
int scoreList[];
int[] scoreList;
String nameList[];
String[] nameList;
// 배열 객체 생성 형식:
// 배열변수명 = new 데이터타입[배열의길이];
scoreList = new int[100]; //100개의 정수형 데이터를 저장할 수 있는 배열 객체 생성
nameList = new String[5]; // 5명의 이름 문자열을 저장할 수 있는 배열 객체 생성
// 한꺼번에 선언 형식:
// 데이터타입 배열변수명 = new 데이터타입[배열의길이];
// 또는
// 데이터타입[] 배열변수명 = new 데이터타입[배열의길이];
// 한문장으로 표현 하기
int scoreList[] = new int[100];
int[] scoreList = new int[100];
String nameList[] = new String[5];
String[] nameList = new String[5];
// 배열 선언, 생성, 초기화 까지 한꺼번에 형식:
// 데이터타입[] 배열변수명 = {초기화할 원소들};// 배열의 길이는 원소들 수만큼으로 설정됨
// 또는
// 데이터타입 배열변수명[] = {초기화할 원소들};
// 또는
// 배열변수명 = new 데이터타입[] {초기화할 원소들};
// 초기화까지 한번에
int[] scoreList = { 45, 80, 100, 59, 80 };
scoreList = new int[] { 45, 80, 100, 59, 80 };
변수명.length
로 배열의 길이를 알수 있음,- 배열에 저장된 값을 참조하고자 할때
배열변수명[인덱스번호]
로 참조 가능,0번부터 n-1
까지다차원 배열
- 2 이상의 차원 배열을 의미함, 배열의 배열
// 배열 변수 선언 형식 :
int scoreList [][]; // 데이터타입 배열변수명 [][];
int[][] scoreList; // 데이터타입[][] 배열변수명;
int[] scoreList[]; // 데이터타입[] 배열변수명 [];
String nameList[][];
String[] nameList[];
String[][] nameList;
// 배열 객체 생성 형식:
// 첫번재 배열첨자의 길이만 지정하여 생헝한 후에 일차원 배열들의 주소값을 순서대로 할당
// 배열변수명 = new 데이터타입[배열의 배열 길이][배열길이];
scoreList = new int[3][4];// 가로 3 x 세로 4의 이차원 배열 생성
// 또는
scoreList = new int[3][];
scoreList[0] = new int[2]; // 서로다른 길이의 이차원 배열 생성도 가능
scoreList[1] = new int[3]; // 배열변수명[인덱스번호] = new 데이터 타입[배열길이];
scoreList[2] = new int[4];
// 한꺼번에 선언 형식:
// 데이터타입 배열변수명 = new 데이터타입[배열의길이];
// 또는
// 데이터타입[] 배열변수명 = new 데이터타입[배열의길이];
// 배열 선언, 생성, 초기화 까지 한꺼번에 형식:
// 데이터타입[배열의 길이][] 배열변수명 = {초기화할 원소들};// 배열의 길이는 원소들 수만큼으로 설정됨
// 또는
// 데이터타입[배열의길이] 배열변수명[] = {초기화할 원소들};
// 또는
// 배열변수명 = new 데이터타입[배열의길이][배열의배열길이] {초기화할 원소들};
_articles/computer_science/PL/JAVA/JAVA 기본/자바 문법/JAVA 기본-자바 연산자 및 배열.md