[1일차] 1장 ~ 3장 : 자바 프로그래밍 시작하기, 변수와 자료형, 여러가지 연산자

  • Compile 컴파일 : 프로그래밍 언어 문법에 잘 맞는지 확인하고, 컴퓨터가 이해할 수 있는 언어로 번역하는 것.

  • 자바 특징
    -> 플랫폼에 영향 X, 다양한 환경에서 사용 O
    -> 객체 지향 언어로, 유지보수가 쉽고 확장성이 좋다
    -> 안정적인 프로그램
    -> 오픈소스로서 다양한 기능 제공

  • 자바로 만들 수 있는 것
    -> 웹서버, 안드로이드 앱, 게임(ex.마인크래프트)

  • 부호비트 : 부호를 나타내는 비트로 가장 앞쪽 비트 자리 (0이면 양수, 1이면 음수)

  • 2의 보수 : 2진수에서 더하면 0이 되는 값 (음수)

  • 2의 보수 구하기 : 1의 보수를 구한 뒤 가장 낮은 자리에 1을 더하면 됨
    e.g) 00000101의 1의 보수 : 11111010
    11111010 + (가장 낮은 자리) 1 : 11111011 => 2의 보수

  • 변수 선언하고 값 대입하기


  • 변수 초기화하기 : level 변수 선언과 동시에 값을 대입(초기화:변수에 처음 값을 대입하는 것)


  • 기본 자료형 종류 ('☆'가 붙은 것은 기본 단위)
    정수형 : byte(1바이트), short(2바이트), ☆int(4바이트), long(8바이트)
    문자형 : char(2바이트)
    실수형 : float(4바이트), ☆double(8바이트)
    논리형 : boolean(1바이트)

  • 문자형 연습

  • 실수형 연습


  • 논리형 연습


  • 상수 선언하기 : 상수는 변하지 않는 값. final 예약어 사용. (초기화:변수에 처음 값을 대입하는 것)

-> 선언과 동시에 초기화

final double PI = 3.14;
final int MAX_NUM = 500;

-> 사용하기 전 초기화

final int MIN_NUM;
MIN_NUM = 0;

  • 상수 사용이 편리한 이유
    : 내부에서 반복적으로 사용하고 변하지 않아야 하는 값을 상수로 선언하면, 이후에 수정이 필요하더라도 상수를 선언한 부분의 값만 변경하면 됨

  • 리터럴
    : 프로그램에서 사용하는 모든 숫자, 문자, 논리값을 일컫는 말. 리터럴은 프로그램이 시작할 때 상수 풀에 놓이며 거기서 대입 및 복사할 수 있음.
    리터럴 -(로딩)-> 상수 풀 -(대입/복사)-> 변수

  • 형 변환

1) 묵시적 형 변환 : 바이트 크기가 작은 자료형에서 큰 자료형으로 / 덜 정밀한 자료형에서 더 정밀한 자료 형으로
정수 [byte -> short / char -> int -> long] -> 실수 [float -> double]

2) 명시적 형 변환 : 반대, 변환한 범위를 넘는 경우는 손실이 발생(e.g. 실수를 정수로 변환하면 소수점 이하 부분 생략됨)


  • 대입 연산자 : 오른쪽 변수나 식을 왼쪽 변수에 대입하는 것
    왼쪽 변수 = 오른쪽 변수(또는 식)

  • 부호 연산자 : +, -

  • 산술 연산자 : +, -, *, /, %

  • 증가, 감소 연산자 : ++, --
val = ++num //먼저 num 값이 1증가한 후 val 변수에 대입
val = num++ //val 변수에 기존 num 값을 먼저 대입한 후 num 값 1 증가
val = --num //먼저 num 값이 1 감소한 후 val 변수에 대입
val = num-- //val 변수에 기존 num 값을 먼저 대입한 후 num 값 1 감소


  • 관계 연산자 : >, <, >=, <=, ==(두개 항이 같으면 참, 아니면 거짓), !=(두 개 항이 다르면 참, 아니면 거짓)

  • 논리 연산자
    -> && (논리 곱) : 두 항이 모두 참인 경우에만 결과 값이 참이다. 그렇지 않으면 거짓
    -> || (논리 합) : 두 항 중 하나의 항만 참이면 결과 값은 참이다. 그렇지 않으면 거짓
    -> ! (부정) : 단항 연산자. 참인 경우는 거짓으로 바꾸고, 거짓인 경우는 참으로 바꾼다

  • 복합 대입 연산자
    += : 두 항의 값을 더해서 왼쪽 항에 대입
    -= : 왼쪽 항에서 오른쪽 항을 빼서 그 값을 왼쪽 항에 대입
    *= : 두 항의 값을 곱해서 왼쪽 항에 대입
    /= : 왼쪽 항을 오른쪽 항으로 나누어 그 몫을 왼쪽 항에 대입
    %= : 왼쪽 항을 오른쪽 항으로 나누어 그 나머지를 왼쪽 항에 대입
    <<= : 비트를 왼쪽으로 이동하고 그 값을 왼쪽 항에 대입
    >>= : 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입
    >>>= : 비트를 오른쪽으로 이동하고 그 값을 왼쪽 항에 대입 (가장 왼쪽에 채워지는 비트 값은 부호 비트와 관계 없이 무조건 0)
    &= : 두 항의 & 비트 연산 후 그 값을 왼쪽 항에 대입
    |= : 두 항의 | 비트 연산 후 그 값을 왼쪽 항에 대입
    ^= : 두 항의 ^ 비트 연산 후 그 값을 왼쪽 항에 대입

  • 조건 연산자 : 조건식이 참이면 결과1, 조건식이 거짓이면 결과2가 선택됨
    표기법 => 조건식 ? 결과1 : 결과2

  • 비트 논리 연산자 (p.83~)
    &(AND) 연산자 : 두 개의 비트 값이 모두 1인 경우에만 연산의 결과 값이 1
    |(OR) 연산자 : 비트 값이 하나라도 1이면 연산 결과 값이 1
    ^(XOR) 연산자 : 같은 값이면 0, 다른 값이면 1의 결과 값
    ~(반전) 연산자 : 비트 값 0을 1로, 1은 0으로 바꾸는 연산자

  • 비트 이동 연산자(시프트 연산자)
    <<연산자, >>연산자, >>>연산자

  • 연산자 우선 순위
    1    () [] .
    2    ! ++ -- + -
    3    % /
    4    + -
    5    << >>
    6    < > <= >=
    7    == !=
    8    &
    9    ^
    10    |
    11    &&
    12    ||
    13    ? :
    14    = += -= *= %= /=

좋은 웹페이지 즐겨찾기