✍JAVA STUDY 2주차-1

min·2021년 10월 19일
0

✅JAVA STUDY -1주차

✔ 프리미티브 타입 종류와 값의 범위 그리고 기본 값
✔ 프리미티브 타입과 레퍼런스 타입
✔ 리터럴
✔ 변수 선언 및 초기화하는 방법
✔ 변수의 스코프와 라이프타임
✔ 타입 변환, 캐스팅 그리고 타입 프로모션

✔ 1차 및 2차 배열 선언하기
✔ 타입 추론, var
✔ 산술 연산자
✔ 비트 연산자
✔ 관계 연산자
✔ 논리 연산자


자바 데이터 타입

기본 자료형(Primitive data type)

  • 자바 라이브러리에서 기본으로 제공하며, 얼마만큼의 메모리를 어떻게 사용할 것인지가 이미 정해져 있는 자료형

참조 자료형(Reference data type)

클래스를 타입으로 변수를 선언하는 자료형

    public class Student {
        int studentID;
        String studentName;
        int koreaScore;
        int mathScore;
    }

String은 JDK에서 제공하는 참조 자료형
나머지 변수는 기본 자료형

리터럴

상수(Constant)

  • 항상 변하지 않는 값을 의미
  • 자바에서 상수는 final 예약어를 사용해 선언한다.
  • 상수 이름은 주로 대문자를 사용하고 여러 단어를 연결하는 경우 _ 기호를 사용할 수 있다.
  • 한 번 선언한 상수는 변하지 않기에 선언과 동시에 값을 지정하는 것이 좋다.
  • 프로그램 내부에서 반복적으로 사용하고, 변하지 않아야 하는 값을 상수로 선언하여 사용하면 편리하다.

리터럴(Literal)

  • 프로그램에서 사용하는 모든 숫자, 문자, 논리값을 일컫는 말
int num = 10;
char ch = 'A';
final double PI = 3.14;

A, 10, 3.14와 같은 문자, 숫자를 리터럴 혹은 리터럴 상수라고 한다.
리터럴은 변수나 상수 값으로 대입할 수 있다.

변수 선언 및 초기화하는 방법

변수 선언

변하는 값을 변수라고 하며, 값을 저장하는 공간이라고 할 수 있다.
변수를 사용하기 위해 자료형을 선택하고 변수의 이름을 정해주는 것을 '변수를 선언한다'라고 한다.

int age; //정수형 변수 age를 선언
age = 10; //값 10을 age 변수에 대입

변수 초기화

변수를 선언하고 처음으로 값을 대입하는 것을 '초기화'라고 한다.

int age = 10; //age 변수 선언과 동시에 값을 대입(초기화)

변수의 스코프와 라이프타임

스코프(scope)

    public class Student {
        int studentID;
        String studentName;
        int koreaScore;
        int mathScore;
    }

변수는 선언된 클래스의 중괄호 내에서 사용이 가능하다. 이 범위를 '스코프'라고 한다.

라이프 타임(life time)

타입 변환, 캐스팅 그리고 타입 프로모션

1차 및 2차 배열 선언하기

배열

  • 자료가 연속으로 나열된 자료 구조
  • 자료형이 같은 자료 여러개를 한 번에 관리할 수 있는 장점이 있다.

일차원 배열

아래 예시들과 같이 행 하나로 이루어진 배열을 '일차원 배열' 이라고 한다.

배열 선언

배열을 사용하려면 먼저 배열을 선언해야 한다.

int[] userId = new int[10]; //int형 요소가 10개인 배열 선언

배열을 선언하면 선언한 자료형과 배열 길이에 따라 메모리가 할당된다.

배열 초기화

  • 자바에서 배열을 선언하면 동시에 각 요소의 값이 초기화된다.
  • 배열의 자료형에 따라 정수는 0, 실수는 0.0, 객체 배열은 null로 초기화되며 배열 선언과 동시에 특정 값으로 초기화할 수 있다.
//배열이 초기화 요소의 개수만큼 생성되어 [] 안의 개수는 생략함
int[] userId = new int[] {101, 102, 103};
//값을 넣어 초기화할 때 []안에 개수를 쓰면 오류 발생함
int[] userId = new int[3] {101, 102, 103}; 
//선언과 초기화를 동시에 할 때 new int[] 부분을 생략할 수 있음
int[] userId = {101, 102, 103}; 

다차원 배열

이차원 이상으로 구현한 배열을 '다차원 배열'이라 한다.

이차원 배열 선언 및 초기화

int[][] num = {{1,2,3}, {4,5,6}}; 

연산자

  • 연산에 사용되는 기호를 '연산자'라고 한다.
연산자설명연산 예
단항 연산자항이 한 개인 연산자++num
이항 연산자항이 두 개인 연산자num1 + num2;
삼항 연산자항이 세 개인 연산자(5>3) ? 1:0;

산술 연산자

  • 사칙 연산에서 사용하는 연산자
연산자기능연산 예
+두 항을 더합니다.5+3
-앞에 있는 항에서 뒤에 있는 항을 뺍니다.5-3
*두 항을 곱합니다.5*3
/앞에 있는 항에서 뒤에 있는 항을 나누어 몫을 구합니다.5/3
%앞에 있는 항에서 뒤에 있는 항을 나누어 나머지를 구합니다.5%3

관계 연산자

  • 항이 두 개인 이항 연산자
연산자기능연산 예
>왼쪽 항이 크면 참, 아니면 거짓을 반환합니다.num > 3;
<왼쪽 항이 작으면 참, 아니면 거짓을 반환합니다.num < 3;
>=왼쪽 항이 오른쪽 항보다 크거나 같으면 참, 아니면 거짓을 반환합니다.num >= 3;
<=왼쪽 항이 오른쪽 항보다 작거나 같으면 참, 아니면 거짓을 반환합니다.num <= 3;
==두 개의 항이 같으면 참, 아니면 거짓을 반환합니다.num == 3;
!=두 개의 항이 다르면 참, 아니면 거짓을 반환합니다.num != 3;

논리 연산자

  • 두 명제가 모두 참이면 곱은 참이고, 두 명제 중 하나만 참이면 논리 합은 참. 참의 부정은 거짓, 거짓의 부정은 참과 같은 논리 연산을 프로그래밍 언어로 구현한 연산자
  • 주로 관계 연산자와 함께 사용하며 관계 연산자의 우선순위가 더 높기에 관계 연산자의 값을 기반으로 논리 연산자의 결과 값을 계산한다.
연산자기능연산 예
&& (논리 곱)두 항이 모두 참인 경우에만 결과 값이 참 / 그렇지 않은 경우는 거짓boolean val = (5>3) && (5>2);
ll (논리 합)두 항 중 하나의 항만 참이면 결과 값은 참 / 두 항이 모두 거짓이면 결과 값은 거짓boolean val = (5>3) ll (5<2)
! (부정)단항 연산자입니다. 참인 경우는 거짓으로 바꾸고 거짓인 경우는 참으로 바꾼다.boolean val =!(5>3);

비트 연산자

  • 비트 단위로 연산이 이루어지는 연산자
  • 비트 단위의 연산을 하는 경우는 '암호화' 작업처럼 임의의 숫자를 만들거나, 어떤 변수의 특정 비트를 꺼내보는 경우에 사용

& 연산자

| 연산자

^ 연산자

~ 연산자

비트 이동 연산자

<< 연산자

>> 연산자

>>> 연산자


🙇 참고 및 출처 👍

Java의 데이터 타입의 분류(기본 타입, 참조 타입)와 메모리 영역
TCPschool
책) Do it! 자바 프로그래밍 입문 - 박은종 지음

0개의 댓글