풀스택 웹🌐 개발자 지망생 🧑🏽💻
➕ 인공지능 관심 🤖
Categories
-
┣
▶ COMPUTER_SCIENCE
📂: 7 -
┣
▶ WEB
📂: 3 -
┣
▶ ETC
📂: 3-
┃
┣
ETCS
📄: 10 -
┃
┣
SUBBRAIN 개발기
📄: 5 -
┃
┗
YOS 개발기
📄: 1
-
┃
┣
-
┗
▶ AI
📂: 9-
┣
AITOOLS
📄: 3 -
┣
CV
📄: 2 -
┣
DEEP_LEARNING
📄: 1 -
┣
DATA_VIS
📄: 2 -
┣
GRAPH
📄: 1 -
┣
LIGHTWEIGHT
📄: 1 -
┣
MATH
📄: 1 -
┣
NLP
📄: 3 -
┗
STRUCTURED_DATA
📄: 2
-
┣
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