JAVA 연산자 및 배열
자바 연산자
논리 연산자
- boolean 데이터 타입(논리형)에 적용되며, 결과값으로는 true 또는 false 값을 가짐
- and(&), or(|), not(!) 연산자를 제공함
연산자 | 사용법 | 설명 |
---|---|---|
& | A & B | A와 B 모두 true 인 경우만 true 를 리턴 |
&& | A && B | - A와 B 모두 true인 경우 true를 리턴 - 단, A가 false 인 경우 B를 수행하지 않고 false 를 리턴 |
| | A | B | A나 B 중 하나라도 true 라면 true 를 리턴 |
|| | A || B | - A와 B 모두 true인 경우 true를 리턴 - 단, A가 false 인 경우 B를 수행하지 않고 false 를 리턴 |
! | !A | A가 true면 false로 , false면 true로 변경 |
자바의 배열
- 같은 데이터타입의 집합
- Non-Primitive Type Data(Reference Type)
- 배열 역시 객체임
- 메모리에 참조값을 저장하고 있음
-
배열의 장점
- 데이터 타입 관리가 용이함 : 반복문과 결합하여 일괄처리가 가능하고 리턴값, 매개변수 전달 시 활용 가능
- 처리 성능의 효율성이 증가함
-
배열의 단점
- 크기가 고정되어 있기때문에 가변적인 크기의 데이터 집합을 다루기 어려움 -> 배열의 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존 내용을 복사하는 방법이 있음
일차원 배열
- 일차원 배열 선언 및 생성
Java
/* 차원과 데이터 타입을 맞춰줘야 함 */
// int형 데이터 집합 빈 배열 생성
int scoreList[] = new int[100]; // 또는
int[] scoreList = new int[100];
// int형 데이터 집합 배열 생성 및 초기화
int[] scoreList = {45, 80, 100, 20}; // 또는
scoreList = new int[] {45, 80, 100, 20};
- 배열의 길이
Java
/* 배열의 인덱싱 */
scoreList[1]
/* 배열의 길이 */
String flag = (scoreList.length != 50) ? "같지 않음" : "같음"
이차원 배열
- 이차원 배열 선언 및 생성
Java
String[][] scoreList = new String[3][4]; // 서로 같은 길이로 생성된 일차원 배열을 참조
String[][] scoreList = new String[3][]; // 서로 다른 길이로 생성된 일차원 배열을 참조
String[] a, b[], c[][]; // a는 1차원, b는 2차원, c는 3차원 배열
/* 1차원 배열 생성 */
int[] year2018 = new int[] {100, 200, 100, 200};
int[] year2019 = new int[] {100, 120, 140, 160};
int[] year2020 = new int[] {150, 170, 120, 140};
int[] year2021 = new int[] {200, 100};
/* 2차원 배열 생성 */
// 가비지가 생기는 비효율적인 생성법
int[] years[] = new int[4][]; // 필요에 따라 2차원 배열 길이 다르게할 수 있음
years[0] = year2018;
years[1] = year2019;
years[2] = year2020;
years[3] = year2021; // null로 초기화된 years 배열을 만든 뒤 다시 새로운 배열을 할당하므로 기존 null 초기화 배열은 가비지가 됨
// 효율적인 생성법
int[] years[] = {year2018, year2019, year2020, year2021};