📚 Study/JAVA

[JAVA] 변수, 타입, 형변환, 연산, 조건문&반복문, 배열

0_ch4n 2022. 4. 29. 01:04
반응형

✔️ 시작하기 전에

이 내용은 자바의 정석 3판을 참고하여 '선 공부 후 정리'식으로 작성한 글입니다.

체득되지 않고 놓치는 부분이나 개인적으로 중요하다고 생각하는 부분 위주로 구성하였습니다.

Chapter 1~5는 변수, 데이터 타입, 형변환, 연산, 조건문&반복문, 배열 등에 대한 내용으로 기본적인 내용입니다.

그렇기에 생략된 부분이 많지만 뒷 내용부터는 자세하게 쓸 생각입니다.

 

📌 chapter 1

자바의 특징

  • 운영체제에 독립적이다
  • 객체지향언어이다
  • 비교적 배우기 쉽다
  • 자동 메모리 관리(Garbage Collector)
  • 네트워크와 분산처리를 지원한다
  • 멀티쓰레드를 지원한다
  • 동적 로딩을 지원한다

📌 chapter 2

식별자(identifier) 규칙

  • 대소문자가 구분되며 길이에 제한이 없다
  • 숫자로 시작해서는 안 된다
  • 특수문자 ‘_’와 ‘$’만을 허용한다
  • 예약어를 사용해서는 안 된다

 

변수

  • 기본형(primitive type) : 실제 값(data)을 저장

  • 참조형(reference type) : 기본형 외의 모든 타입으로 주소값을 갖고 4byte이다
  • 접두사
    • 0b : 2진수
    • 0 : 8진수
    • 0x : 16진수
  • 접미사
    • long은 20억이 넘으면 접미사로 L을 붙여야 한다 (생략 X)
    • float는 접미사로 f를 붙여야 한다 (생략 X)
    • double은 접미사로 d를 붙여야 한다 (생략 O)

 

단어의 정의

  • 리터럴 : 데이터(값) 그 자체 (ex.100, 100L, 3.14f)
  • 변수 : 하나의 값을 저장하기 위한 공간 (ex.i, l)
  • 상수 : 값을 한 번만 저장할 수 있는 공간 (ex.PI)
  • 키워드 : 미리 예약해 놓은 단어로 소문자이다 (ex.int, long, final, float)

 

문자열과 문자 그리고 연산

  • String str = “”; → 내용 없는 문자열 OK
  • char ch = ‘’; → 내용 없는 문자 Error
  • any type + 문자열(””) → 문자열
  • 문자(’’)는 유니코드로 계산
  • null을 더하면 오류

 

정수형의 오버플로우

  • 최대값 + 1 → 최소값
  • 최소값 - 1 → 최대값

 

형변환

  • (타입) 피연산자
  • 자동 형변환 : 값의 범위가 작은 타입에서 큰 타입으로의 형변환

 

입출력

  • 입력 : Scanner scanner = new Scanner(System.in);
    • 커맨드라인 입력 : String[] args에 저장 (args의 이름은 바뀔 수 있음)
  • 출력 : System.out.print(), printf(), println();

 

📌 chapter 3

연산자의 우선순위와 결합규칙

 

쉬프트 연산자

  • x << n == x * 2^n
  • x >> n == x / 2^n

 

📌 chapter 4

//if문
    if(조건식1) {
        //True일 때 실행할 문장
    } else if(조건식2) {
        //조건식1은 False지만 조건식2는 True일 때 실행할 문장
    } else {
        //조건식들이 False일 때 실행할 문장
    }

//switch문
    switch (조건식) {
        case 1:
            //결과가 1과 같을 때 실행할 문장
            break;
        case 2:
            //결과가 2와 같을 때 실행할 문장
            break;
        default :
            //결과가 일치하는게 없을 때 실행할 문장
    }

//for문
    for(초기화; 조건식; 증감식) {
        //조건식이 참일 때 반복할 문장
    }

//향상된 for문
    for(타입 변수명 : 배열 또는 컬렉션) {
        //배열 또는 컬렉션 값이 순서대로 읽히며 변수에 저장
        //반복할 문장
    }

//while문
    while(조건식) {
        //조건식이 True일 때 반복할 문장
    }

//do-while문
    do {
        //일단 한 번 실행하고
        //조건식이 True면 반복할 문장
    } while (조건식);


break; : 반복문 탈출
continue; : 다음 반복으로 스킵

 

📌 chapter 5

/*Array 배열*/

    //생성&초기화
    int arr[] = new int[0];
    int[] arr2 = new int[5];
    int[] arr3 = new int[] {1,2,3,4,5};

    //길이
    arr.length;

    //출력
    1. for문
    2. Arrays.toString(arr)

    //복사
    System.arraycopy(from, 어디서부터, to, 어디서부터, 몇개);


/*String 배열*/

    //생성&초기화
    String str[] = new String[0];
    String[] str2 = new String[5];
    String[] str3 = { "Kim", "Park", "Yi" };

    //문자 하나 반환
    str.charAt(index)

    //문자열 길이 반환
    str.length()

    //문자열에서 from ~ to-1 까지 반환
    str.substring(from, to)

    //문자열 비교
    str.equals("")

    //문자열을 문자배열로 변환해서 반환
    str.toCharArray()


/*다차원 배열*/

    //생성&초기화
    int arr4[][] = new int[0][0];
    int[][] arr5 = new int[5][5];
    int[][] arr6 = { {1,2,3}, {4,5,6} };


/*가변 배열*/

    //생성
    int[][] arr7 = new int[3][];
    arr7[0] = new int[5];
    arr7[1] = new int[4];
    arr7[2] = new int[3];
반응형