본문 바로가기

Etc../SWExpertAcademy

[Java Programming] 자바언어의 구조와 기본문법 (3)

자바 연산자 및 배열

■ 자바 연산자

  • 산술 연산자 : 정수형, 실수형에 사용됨.
    • 증감 연산자: ++, --
    • 부호 연산자: +, -, *, /
    • 나머지 연산자: %
  • 비교 연산자 : 대소 비교, 객체의 타입 비교 등에 사용됨, 수행결과는 boolean 데이터타입으로 리턴
    • >, >=, <, <=, ==, !=
    • instanceof : 값1 instanceof 값2 → 값1이 값2 데이터 타입 객체인 경우 true 반환
  • 논리 연산자 : boolean 데이터 타입에 적용됨
    • and( & ), or( | ), not( ! ) → 값1, 값2 모두 True, False를 연산한다.
    • 단축 연산자: &&, || → 값1 && 값2라는 연산이 있으면 값1이 False일 때, 값2는 연산하지 않는다.
  • 비트연산자 : 값을 bit로 연산하는 연산자
    • &, |, ^, ~, >, <
  • 기타 연산자
    • 대입 연산자( = ): 오른쪽의 값을 왼쪽에 대입 ( +=, -=, *=, /= )
    • 조건 삼항 연산자( ?, : ): 변수 = 조건 ? 값1 : 값2 → 조건이 참이면 값1을, 거짓이면 값2를 변수에 대입

■ 자바의 배열

참조형 메모리
String greeting;                        // 변수 선언
greeting = new String("Hello, Java!");    // 객체 생성 및 변수 할당

greeting 변수 선언 시 변수를 위한 메모리가 할당되고 객체 생성 및 할당 시

Hello, Java!라는 String 객체가 생성되고 그 주솟값을 greeting변수의 메모리에 할당한다.

greeting 변수는 저장된 주솟값을 통해 참조하므로 참조형 매개 변수에 해당한다

배열 선언 및 생성
  • (데이터 타입) (배열 변수명)[] = new (데이터타입)[배열의 길이];
  • (데이터 타입)[] (배열 변수명) = new (데이터 타입)[배열의 길이];
int[] score = { 10, 20, 30}; // 배열 객체의 생성과 초기화를 동시에 진행 가능
다차원 배열

일차원 배열을 여러개 사용하여 다시 배열을 구현한 것 = 배열의 배열

  • (데이터 타입) (배열 변수명) [][];
  • (데이터 타입) [][] (배열 변수먕);
  • (데이터타입)[] (배열 변수명)[];
score = new int[3][4]
int[][] score = new int[3];
score[0] = new int[4];
score[1] = new int[4];
score[2] = new int[4];         // 위와 동일한 배열
int[][] score = new int[3];
score[0] = new int[2];
score[1] = new int[3];
score[2] = new int[4];         // 서로다른 배열을 갖는 이차원 배열도 가능
명령행 매개변수
  • main(String args[])를 의미함
  • Main()의 매개변수는 String 데이터 타입의 배열
  • 사용자가 명령행 매개변수로 입력한 문자열의 순서에 따라 차례대로 배열에 저장됨.
  • class 실행 시 공백을 구분자로 하여 여러개의 값을 전달 함
    • java (class 명) arg1 arg2
  • 명령행 매개변수에 해당하는 배열은 문자형, 숫자 사용시 문자열을 숫자로 변환해야 함
    • Integer 클래스의 parseInt() : 정수 형태로 변환
    • Double 클래스의 parseDouble() : 실수 형태로 변환
public class CommandLineArgTest{
    public static void main(String args[]){
        int num1 = Integer.parseInt(args[0]);
        int num2 = Integer.parseInt(args[1]);
    }
}

[참고] : SWExpertAcademy