[혼공자] 1주차_자바시작하기, 변수와타입, 연산자 학습 후기

1주차 학습 진도 : Chapter 01 ~ 03 (자바 시작하기, 변수와 타입, 연산자)



챕터1은 자바 프로그래밍을 처음 시작하기 때문에 자바에 대해서 기본적인 개발방법등 소개와 학습을 위한 개발 환경 설정을 하게 되는데, 책에서는 오라클JDK와 이클립스(Eclipse)를 사용하는데, 저는 Zulu JDK와 인텔리제이(IntelliJ)를 설치했습니다.


자바 프로그램의 실행 과정을 간단하게 정리해 보면 :

1. 자바 소스 코드(.java)를 작성한다.
2. 자바 컴파일러(javac 명령어)를 사용하여 소스 코드를 바이트코드(.class 파일)로 변환한다.
3. 자바 가상 머신(JVM)이 바이트코드를 기계어로 해석하여 실행한다.
4. JVM은 바이트코드를 검증하고, 자주 실행되는 메소드를 식별하여 성능 향상을 위해 기계어로 직접 컴파일합니다.
이를 통해 자바 소스 코드가 플랫폼에 독립적으로 실행될 수 있습니다.


C:\SelfStudyJava>java -version
openjdk version "21.0.3" 2024-04-16 LTS
OpenJDK Runtime Environment Zulu21.34+19-CA (build 21.0.3+9-LTS)
OpenJDK 64-Bit Server VM Zulu21.34+19-CA (build 21.0.3+9-LTS, mixed mode, sharing)


java -version 명령어를 통해서 JDK가 정상적으로 설치되어 있는 것을 확인할수 있습니다.



인텔리제이를 사용해서 자바의 메인 클래스를 생성하면, Eclipse와 다르게 packag와 public static void main(String[] args) 메소드가 자동으로 생성이 되지 않는데요, 이럴 경우 Eclipse와 동일하게 처음 생성한 자바의 메인 클래스에 코드가 작성되도록 하려면, 아래와 같이 하면 됩니다.

1. 인텔리제이 IDEA 메뉴에서 File > Settings를 선택합니다.
2. Settings 창에서 Editor > File and Code Templates를 선택합니다.
3. Files 탭에서 Class를 선택합니다.
4. Class 템플릿 코드 편집기에서 다음과 같이 코드를 편집합니다:


#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
#parse("File Header.java")

public class ${NAME} {
    public static void main(String[] args) {
        
    }
}


5. Apply와 OK를 눌러 저장합니다.




챕터 2에서는 자바 프로그래밍을 작성할 때 기본이 되는 변수, 데이터 타입, 타입 변환, 연산자 등의 기본 개념을 이해하는 시간이였습니다.

자바에서 변수는 데이터를 저장하는 공간으로, 선언, 값 저장, 사용, 그리고 변수 사용 범위에 대해 이해해야 하며, 기본 타입에는 정수, 실수, 논리 타입이 있으며, 자동 타입 변환과 강제 타입 변환이 가능합니다.

또한, 연산에서 문자열 자동 타입 변환과 문자열을 기본 타입으로 강제 타입 변환할 수 있습니다. 마지막으로 변수 값을 모니터로 출력하고 키보드에서 입력된 내용을 변수에 저장하는 방법을 알아야 합니다.


1, 변수

  • 변수 선언 : 변수를 사용하기 위해서는 먼저 변수를 선언해야 합니다. 변수 선언시 데이터 타입과 변수명을 지정합니다.
    예) int score;
  • 값 저장 : 변수에 값을 저장하려면 대입 연산자(=)를 사용합니다.
    예) score = 90;
  • 변수 사용 : 선언된 변수를 사용하려면 변수명을 호출하면 됩니다.
    예) System.out.println(score + “점”);
  • 변수 사용 범위 : 변수는 선언된 블록 내에서만 사용할 수 있습니다.
    예) {int v1 = 15; } // v1는 이 블록 내에서만 사용 가능

2. 기본 데이터 타입

  • 정수 타입 : byte, char, short, int, long
  • 실수 타입 : float, double
  • 논리 타입: boolean

3. 타입 변환

  • 자동 타입 변환 : 작은 크기의 데이터 타입에서 큰 크기의 데이터 타입으로 변환하는 것.
    예) byte byteValue = 10; int intValue = byteValue;
  • 강제 타입 변환: 큰 크기의 데이터 타입에서 작은 크기의 데이터 타입으로 변환하는 것.
    예) int intValue = 10; byte byteValue = (byte) intValue;
  • 졍수 연산에서의 자동 타입 변환: 정수 연산 시 int 타입으로 자동 변환됨.
    예) byte x=10, byte y=20; int result = x+y;
  • 실수 연산에서의 자동 타입 변환: 실수 연산 시 double 타입으로 자동 변환됨.
    예) int intValue =10, double doubleValue = 5.5; double result = intValue + doubleValue;

4. 변수와 시스템 입출력

  • 모니터로 변수값 출력하기: System.out.println(“출력 내용”) 메소드를 사용하여 변수값을 출력할 있음
  • 키보드에서 입력된 내용을 변수에 저장하기: Scanner 클래스를 사용하여 키보드 입력을 받아 변수에 저장할 수 있음.
    예) Scanner scanner = new Scanner(System.in); String inputData = scanner.nextLie();


package sec02.exam05;

import java.util.Scanner;

public class SummaryCode {
    public static void main(String[] args) {
        // 변수 선언 및 값 저장
        int intVar = 10;
        double doubleVar = 3.14;
        boolean booleanVar = true;
        String stringVar = "Hello, Java!";

        // 변수 사용
        System.out.println("Integer 변수: " + intVar);
        System.out.println("Double 변수: " + doubleVar);
        System.out.println("Boolean 변수: " + booleanVar);
        System.out.println("String 변수: " + stringVar);

        // 변수 사용 범위
        {
            int localVar = 20;
            System.out.println("지역 변수: " + localVar);
        }
        // System.out.println("Local variable: " + localVar); // 오류: localVar 변수는 블록 내에서만 사용 가능

        // 자동 타입 변환
        int value1 = (int) (intVar + doubleVar);
        System.out.println("자동 타입 변환: " + value1);

        // 강제 타입 변환
        int value2 = (int) doubleVar;
        System.out.println("강제 타입 변환: " + value2);

        // 정수 연산에서의 자동 타입 변환
        int a = 10, b = 3;
        int result1 = a / b;
        System.out.println("result1: " + result1);

        // 실수 연산에서의 자동 타입 변환
        double result2 = (double) a / b;
        System.out.println("result2: " + result2);

        // +연산에서의 문자열 자동 타입 변환
        String resultString = "결과: " + intVar + doubleVar;
        System.out.println(resultString);

        // 문자열을 기본 타입으로 강제 타입 변환
        int value3 = Integer.parseInt("42");
        double value4 = Double.parseDouble("3.14");
        System.out.println("value3" + value3);
        System.out.println("value4" + value4);

        // 키보드 입력 받기
        Scanner scanner = new Scanner(System.in);
        System.out.print("숫자를 입력해주세요: ");
        int inputInt = scanner.nextInt();
        System.out.println("입력한 숫자는: " + inputInt);
    }
}

챕터2에서 학습한 내용들을 정리해서 하나의 예제 자바 코드를 작성해 보았습니다.



챕터3에서는 자바의 연산자에 대해서 공부를 하였는데요, 자바의 연산자는 프로그래밍에서 매우 중요한 역할을 합니다.

연산자의 종류, 연산의 방향과 우선순위, 그리고 연산식의 구조를 이해하는 것이 필수적입니다. 단향 연산자, 이항 연산자, 삼항 연산자 등 다양한 연산자를 활용하여 복잡한 계산을 수행할 수 있으며, 이를 통해 프로그램의 기능을 구현할 수 있습니다. 연산자에 대한 이해도를 높이면 보다 효율적이고 안정적인 코드를 작성할 수 있습니다.


1. 연산자와 연산식

    • 연산자의 종류 : 산술, 부호, 문자열, 대입, 증감, 비교, 논리, 조건
    • 연산의 방향과 우선순위: 단항 연산자 > 이항 연산자 (곱셈/나눗셈 > 덧셈/뺄셈) > 대입 연산자

    2. 연산자의 종류

    • 단항 연산자: 부호 연산자(+,-), 증감 연산자(++,–), 논리 부정 연산자(!)
    • 이항 연산자: 산술 연산자(+,-,*,/,%), 비교 연산자(<, <=, >, >=, ==, !=), 논리 연산자(&&, ||, &, |, ^, !), 대입 연산자(=, +=, -=, *=, /=, %=)
    • 삼항 연산자: 조건 연산자(? : )


    package sec03.exam05;
    
    public class ConditionalOperationExample {
        public static void main(String[] args) {
            // 연산자의 종류
            int a = 10;
            int b = 4;
    
            // 단항 연산자
            System.out.println("단항 연산자 예제:");
            System.out.println("a = " + a);
            System.out.println("++a = " + (++a)); // 전위 증감 연산자
            System.out.println("a = " + a);
            System.out.println("a-- = " + (a--)); // 후위 증감 연산자
            System.out.println("a = " + a);
    
            // 이항 연산자
            System.out.println("\n이항 연산자 예제:");
            System.out.println("a + b = " + (a + b));
            System.out.println("a - b = " + (a - b));
            System.out.println("a * b = " + (a * b));
            System.out.println("a / b = " + (a / b));
            System.out.println("a % b = " + (a % b));
    
            // 삼항 연산자
            System.out.println("\n삼항 연산자 예제:");
            int max = (a > b) ? a : b;
            System.out.println("최대값: " + max);
    
            // 연산의 방향과 우선순위
            System.out.println("\n연산의 방향과 우선순위 예제:");
            int result = a + b * 2 - 4 / 2;
            System.out.println("결과: " + result);
        }
    }

    챕터3에서 학습한 내용들을 정리해서 하나의 예제 자바 코드를 작성해 보았습니다.




    기본 숙제(필수) : JDK 설치 화면 인증하기

    오라클 사이트에서 JDK를 다운받지 않고, Zulu를 이용해서 JDK를 설치했습니다.




    추가 숙제(선택) : p.110(02-3) 확인 문제 9번에 들어갈 코드 2가지 이상 작성해보기


    package sec03.exam03;
    
    public class ConCatExample {
        public static void main(String[] args) {
            long var1 = 2L;
            float var2 = 1.8f;
            double var3 = 2.5;
            String var4 = "3.9";
            int result = (int)(var1 + var2 + var3 + (int)Double.parseDouble(var4));
            System.out.println(result);
        }
    }

    위에 작성한 코드 처럼 ‘(int)(var1 + var2 + var3 + (int)Double.parseDouble(var4))‘ 로 작성을 하거나, 구분해서 ‘(int)(var1 + var2 + var3) + (int)Double.parseDouble(var4)‘ 하면 될거 같다.

    답글 남기기

    이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다