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};