[내일배움캠프 6일차] java 강의 시작

김현정·2025년 2월 24일
0

오늘부터 본격적으로 java 문법을 공부하였습니다.
기초적인 부분부터 문법적인 부분을 세세히 공부하였습니다.
아는 부분도 있고 모르는 부분도 있기에 다 꼼꼼히 보았습니다.

챕터 1 - 1 : JDK, javac 등등

JDK - java 프로그램을 개발할 때 필요한 개발 도구 모음

Javac - 자바코드를 바이트 코드로 변환하는 역할

JVM - java 프로그램을 실행하는 가상머신

바이트 코드 (.class) - javac가 변환한 마법의 파일

  • java의 특징
  1. 플랫폼 독립성 - 운영체제가 달라져도 바이트 코드로 인해서 모두 실행이 가능해지는 독립성
  2. 객체지향 - 자바의 모든 것들은 객체로 이루어짐
  3. 거대한 생태계 - 많은 개발자들이 함께 하고있으며 언제든지 도움을 받을 수 있음.

챕터 1 - 2 : 컴퓨터의 기억 방식

RAM - 메모리, 컴퓨터의 주기억장치, 휘발성, 빠른속도

보조기억장치 - 데이터를 영구적으로 저장하는 장치, 하드디스크 등 영구저장, 느린속도

바이트(Byte) - 8 비트로 구성 된 데이터 단위

비트(Bit) - 컴퓨터에서 데이터를 표현하는 가장 작은 단위, 0 또는 1의 값을 가짐

  • 비트(Bit)란?
  1. 컴퓨터가 데이터를 저장하고 처리하는 단위 중 하나.
  2. 비트는 메모리의 최소 저장 단위
  3. 1비트는 0 혹은 1 중에서 한 개를 저장할 수 있는 공간
    ex) 1비트 = 2^1 = 2개, 2비트 = 2^2 = 4개, 3비트 = 2^3 = 8개
    즉, 저장 단위가 1비트 증가할 때 마다 저장할 수 있는 공간은 2배로 늘어난다.

챕터 1 - 3 : 자바 프로젝트 관리

카멜케이스 (camelCase) : 낙타처럼 대문자가 혹처럼 튀어나온다.

스네이크케이스 (snake_case) : 언더스코어가 뱀처럼 이어짐

패키지 (폴더) : java 프로젝트에서는 파일들의 묶음

클래스(파일) : java 프로젝트에서는 클래스의 이름이 파일명

  • 패키지 이름 규칙
  1. java에서 패키지명은 소문자만 적는 것을 권장
  2. 숫자로 시작 금지
  3. 특수문자 사용 금지
  4. 예약어 사용 금지
  • 클래스 이름 규칙
  1. 첫 글자 대문자 + 카멜케이스 조합으로 작성
  2. 숫자로 시작 금지
  3. 특수문자 사용 금지
  4. 예약어 사용 금지

챕터 1 - 4 : 변수 - 데이터의 저장 공간

변수 : 데이터를 저장하는 공간

자료형 : 메모리를 사용하는 단위

형변환 : 자료형을 변환하는 방법

다운캐스팅, 업캐스팅

  • 변수 : 데이터의 저장공간
  1. 변수의 구조
    lnt a ;
    [자료형][변수이름] [세미콜론]
  2. 변수 이름 규칙 : 카멜케이스 권장, 명사형태로 사용
    (숫자시작 안됨, 공백사용 안됨, 예약어 사용 안됨, 특수문자 가능)
  3. 변수 활용
    int a ; -> 변수 선언(데이터 저장공간을 만드는 것)
    int b ;
    a = 1; -> 변수에 값 할당
    int c = 3; -> 선언과 동시에 값 할당 = 초기화

챕터 1-5 입출력 : 프로그램과 사용자간의 대화

입력 - 입력하는 방법

Scanner 객체

출력 - 출력하는 방법

System.out.print();,System.out.println();

개행문자(\n) - 줄바꿈을 의미하는 문자

  • 출력(OutPut)
  1. System.out.print(); - 자동으로 줄 바꿈
  2. System.out.println(); - 줄 바꿈 없음
  3. \n 개행문자 : 줄바꿈을 의미하는 문자
  • 입력(InPut)
  1. Scanner 객체
    Scanner scanner = new Scanner(System.in); 단, impor scanner 해야함.
  2. 문자열 입력받기 : scanner,nextLine();
  3. 숫자 입력받기 : scanner.nextInt,nextDouble,nextLong();

챕터 1-6 연산자 : 계산의 시작

package chapter1.operator;

public class Main {

    public static void main(String[] args) {
        int a = 10;
        int b = 3;

        // 기본적인 사칙연산
        int sum = a + b;
        System.out.println("sum = " + sum);

        int sub = a - b;
        System.out.println("sub = " + sub);

        int mul = a * b;
        System.out.println("mul = " + mul);

        // 나눗셈
        int div = a / b;
        System.out.println("div = " + div); // 소수점이 버려짐

        double div2 = a / 3.0;
        System.out.println("div2 = " + div2); // 소수점이 유지됨.

        // 모듈러(%) 연산자 (나머지 연산)
        int mod = 10 % 3;
        System.out.println("mod = " + mod); // 나머지 : 1

        int mod2 = 15 % 4;
        System.out.println("mod2 = " + mod2); // 나머지 : 3

        int mod3 = 20 % 7;
        System.out.println("mod3 = " + mod3); // 나머지 : 6

        // 시간 연산
        // 현재 시간이 10시인데 5시간 후면 몇 시일까요?
        // (10 + 5) % 12 = 3
        int mod4 = (10 + 5) % 12;
        System.out.println("mod4 = " + mod4);

        int mod5 = 6 % 2;
        System.out.println("mod5 = " + mod5);

        int mod6 = 7 % 2;
        System.out.println("mod6 = " + mod6);

        // 대입 연산자
        int num = 5;
        System.out.println("변수 num의 값 = " + num);

        // 복합 대입 연산자
        // int num = 5;
        num += 3; // num = num + 3;
        System.out.println("+= 결과 : " + num); //8

        num -= 2; // num = num - 2
        System.out.println("-= 결과 : " + num); // 6

        num *= 2; // num = num * 2
        System.out.println("*= 결과 : " + num); // 12

        num /= 3; // num = num / 3
        System.out.println("/= 결과 : " + num); //4

        num %= 3; // num = num % 3;
        System.out.println("%= 결과 : " + num); // 1

        // 증감 연산자
        //int num = 1;
        System.out.println("num : " + num); // 1
        num++; // 값을 1 증가 시킴 num = num +1;
        System.out.println("num++ 실행 후 : " + num); // 2

        num--; // 값을 1 감소 시킴 num = num -1;
        System.out.println("num-- 실행 후 : " + num); // 1

        // 전위 연산 (++i) 연산 후 값이 활용됩니다.
        int intBox = 5;
        System.out.println("intBox : " + (++intBox)); // 6 (먼저 증가 후 출력)
        System.out.println("현재 intBox 값 : " + intBox); // 6

        // 후위 연산 (i++) 값이 사용된 후 연산됩니다.
        int intBox2 = 5;
        System.out.println("intBox2++ : " + (intBox2++)); // 5 (출력 후 증가)
        System.out.println("현재 intBox2 값 : " + intBox2); // 6

        // 비교 연산자
        // 같음 연산자 두 값이 같으면 true, 다르면 false
        System.out.println("10 == 10 : " + (10 == 10)); // true

        // 다름 연산자 두 값이 다르면 true, 같으면 false
        System.out.println("10 != 5 : " + (10 != 5)); // true

        // 크기 비교 연산자 논리가 맞으면 true 어긋나면 false
        System.out.println("10 < 5 : " + (10 < 5)); // false
        System.out.println("10 >= 10 : " + (10 >= 10)); // true
        System.out.println("10 <= 5 : " + (10 <= 5)); // false

        // 논리 연산자
        // AND 연산자(&&) - 두 조건이 모두 참일 때 true 반환
        System.out.println("true $$ true : " + (true && true)); // true
        System.out.println("true $$ false : " + (true && false)); // false
        System.out.println("false $$ false : " + (false && false)); // false

        int age = 20;
        boolean isStudent = true;
        System.out.println(age > 18 && isStudent); //true

        // OR 연산자(||) - 두 조건 중 하나라도 참이라면 true를 반환
        System.out.println("true || false : " + (true || false)); // true
        System.out.println("false || false : " + (false || false)); // false
        System.out.println("true || false : " + (true || true)); // true

        // NOT 연산자(!) - true 일때 false로, false일때 true로 변경
        System.out.println("!true : " + (!true)); // false
        System.out.println("!false : " + (!false)); // true

        // 연산자 우선순위
        // 산술 연산자 우선순위
        System.out.println(10 - 3 * 2);
        // 실행 순서 : 10 - (3 * 2)
        // -> 10 - 6
        // -> 4

        // 기본 연산자 우선순위 ( 산술 -> 비교 -> 논리 -> 대입 )
        boolean flag = 10 + 5 > 12 && true;
        System.out.println(flag);
        // 실행 순서 : ( 10 + 5 ) > 12 && true : 산술
        // -> 15 > 12 && true : 비교
        // -> true && true : 논리
        // -> flag = true 대입

        // 비교 연산자와 산술 연산자의 우선순위
        System.out.println(10 - 3 > 5 + 1);
        // 실행 순서 : (10 - 3) > (5 + 1) : 산술
        // -> 7 > 6 : 비교
        // -> true

        // 논리 연산자 우선순위 ( ! -> && -> || )


    }
}

챕터 1-7 조건문 : 프로그램의 선택지

if 조건문 - 조건 수식이 참일 때 실행

if-else - 조건 수식이 거짓일 때 실행

else-if - 여러 개의 조건 수식을 제어할 때 사용

switch - 특정 값에 따라 여러 동작을 실행

  • if 조건문, if-else, else-if 등등
  1. if (조건수식) {
    명령문; } // 실행할까? 말까?
  2. if (조건수식) {
    명령문;
    } else {
    명령문 }
  • switch문
    switch (단일값) {
    case 값1 :
    break;
    case 값2 :
    break;
    default :
    // 위의 값들과 일치하지 않을 때 실행할 코드
    }

챕터 1-8 : 반복문 - 자동화의 첫걸음

for - 조건과 증감식을 포함한 반복문

while - 조건이 참이면 반복 실행

do-while - 최소 한 번 실행 후 조건 검사

  • for문
    for (시작조건; 종결조건; 조건변화수식) {
    반복할 명령문;
    }

-while문
while (종결조건) {
반복할 명령문;
}

-do-while문
do {
반복할 명령문
} while (종결 조건)

0개의 댓글