study/TIL

20241011 TIL

으녕오리 2024. 10. 11. 13:13

<Java 문법 종합반 1주차 : JVM, 변수>

chatper 2. 변수

import java.util.Arrays;

public class Main {


    public static void main(String[] args) {
        // 이곳이 우리의 playground!
        // 변수를 선언해보자 => 타입이름 = 값;

        // 1. 기본형 변수
        // (1) boolean
        boolean flag = true;
        flag = false;

        System.out.println(flag);

        // (2) 문자형(char)
        char alphabet = 'A';
        System.out.println(alphabet);

        // (3) 정수형(byte, short, int, long)
        byte byteNumber = 127; //-128 ~ 127
        short shortNumber = 32767; // -32,768 ~ 32,767
        int intNumber = 21478455;
        long longNumber = 215642556566L;

        System.out.println(byteNumber);
        System.out.println(shortNumber);
        System.out.println(intNumber);
        System.out.println(longNumber);

        // (4) 실수형(float-4byte, double-8byte)
        float floatNumber = 0.123F;
        double doubleNumber = 0.123123123;

        System.out.println(floatNumber);
        System.out.println(doubleNumber);

        // 2. 참조형 변수
        // (1) 문자열 변수
        String helloWorld = "Hello world!";
        System.out.println(helloWorld);

        // (2) 배열
        int[] a = {1, 2, 3};
        System.out.println(Arrays.toString(a));

        // 3. 래퍼 클래스 변수
        int number = 21;
        Integer num = number; // boxing
        System.out.println(num.intValue()); // unboxing

    }
}

// <숫자 -> 문자>
// import : im + port
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int asciiNumber = sc.nextInt();
        char ch = (char)asciiNumber; // 문자로 '형변환'을 해주면 숫자에 맞는 문자로 표현됩니다.
        System.out.println(ch);
    }
}
// 입력 97
// 출력 a
// <문자 -> 숫자>
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        char letter = sc.nextLine().charAt(0); // 첫번째 글자만 받아오기위해 charAt(0) 메서드를 사용합니다.
        int asciiNumber = (int)letter; // 숫자로 형변환을 해주면 저장되어있던 아스키 숫자값으로 표현됩니다.
        System.out.println(asciiNumber);
    }
}
// 입력 a
// 출력 97


  • 참조형 변수 = 주소형 변수
    • stack영역
      1. 정적으로 할당된 메모리 영역
      2. 참조형 변수(주소값), 기본형 변수(원본값)을 저장
    • heap 영역
      1. 동적(알 수 없을 때)으로 할당된 메모리 영역
      2. 참조형 변수(원본값)을 저장
  • 입력과 출력
    • 입력 : Scanner. in 객체의 next() 명령을 사용
    • 출력 : System.out 객체의 println() 명령을 사용
  • 1Byte = 8Bit

chatper 3. 형변환

  • 실수(float형 or double형) -> 정수(int)
    • 0.xxx -> 0
  • double -> int
public class Main {

    public static void main(String[] args) {

        double doubleNumber = 10.1010;
        float floatNumber = 10.1010f;

        int intNumber;
        intNumber = (int)doubleNumber;
        System.out.println(intNumber);
    }
}
  • float -> int
public class Main {

    public static void main(String[] args) {

        double doubleNumber = 10.1010;
        float floatNumber = 10.1010f;
        
        int intNumber;
        intNumber = (int) floatNumber;
        System.out.println(intNumber); // 10
    }
}

  • 정수 -> 실수
public class Main {

    public static void main(String[] args) {
        int intNumber = 10;
        double doubleNumber = (double)intNumber;
        float floatNumber = (float)intNumber;

        System.out.println(intNumber); // 10
        System.out.println(doubleNumber); // 10.0
        System.out.println(floatNumber); // 10.0
    }
}

  • 변수 타입별 크기 순서

byte(1byte) -> short (byte) -> int (4byte) -> long(8byte) -> float (4byte) -> double (8byte)

  • 작은 타입 -> 큰 타입의 형변환은 자동으로 된다.
  • 큰 타입 -> 작은 타입의 형변환은 값의 손실이 생긴다.
public class Main {

    public static void main(String[] args) {

        // (1) byte -> int
        byte byteNumber = 10;
        int intNumber = byteNumber; // int 안써줘도 됨
        System.out.println(intNumber); // 10

        // (2) char -> int 형변환
        char charAlphabet = 'A';
        intNumber = charAlphabet; // char -> int로 자동 형변환
        System.out.println(intNumber); // 65 (A의 유니코드가 65이다.)

        // (3) int -> long number
        intNumber = 100;
        long longNumber = intNumber;
        System.out.println(longNumber);

        // (4) int -> double
        intNumber = 200;
        double doubleNumber = intNumber;
        System.out.println(doubleNumber);
    }
}
public class Main {

    public static void main(String[] args) {

        // 작은 크기의 타입이 큰 크기의 타입과 '계산'될 때, 자동으로 큰 크기의 타입으로 형 변환이 된다.
        int intNumber = 10;
        double doubleNumber = 5.5;
        double result = intNumber + doubleNumber;
        System.out.println(result); // 15.5

        // 정수로 나누기
        int iResult = intNumber / 4; // 2
        // 실수로 나누기
        double dResult = intNumber / 4.0; // 2.5
    }
}

1주차 숙제

  • 문제

  • 나의 답안
public class recipe {
    public static void main(String[] args) {
        String title = "간장찜닭 만들기";
        System.out.println("[" + title + "]");

        double rate = 4.5;
        int rate1 = (int) rate;
        double percent = rate1*20;
        System.out.println("별점 : " + rate1 + " (" + percent + "%)" );

        String recipe1 = "당면을 불려주세요.";
        String recipe2 = "닭고기를 끓는물에 데쳐주세요.";
        String recipe3 = "기름을 두른 팬을 예열시켜 주세요.";
        String recipe4 = "예열이 되었다면 통마늘을 한 줌 넣어 익혀주세요.";
        String recipe5 = "닭고기를 넣어주세요.";
        String recipe6 = "설탕 3스푼, 진간장 8스푼, 물 1컵, 춘장을 조금 넣어주세요.";
        String recipe7 = "감자 1개, 양파 1/2개, 청양고추, 대파를 넣어주세요.";
        String recipe8 = "다진마늘 1스푼, 물엿 1스푼, 다시다 반스푼, 후추와 당면을 넣어주세요.";
        String recipe9 = "5분 동안 끓여주세요.";
        String recipe10 = "마지막으로 깨를 뿌려주면 끝입니다 !";

        System.out.println("1." + recipe1);
        System.out.println("2." + recipe2);
        System.out.println("3." + recipe3);
        System.out.println("4." + recipe4);
        System.out.println("5." + recipe5);
        System.out.println("6." + recipe6);
        System.out.println("7." + recipe7);
        System.out.println("8." + recipe8);
        System.out.println("9." + recipe9);
        System.out.println("10." + recipe10);

    }
}

'study > TIL' 카테고리의 다른 글

프로그래밍 기초 개인과제 : 계산기 만들기 트러블슈팅  (1) 2024.10.17
20241013 TIL  (0) 2024.10.14
20241010 TIL  (6) 2024.10.11
20241003 TIL  (1) 2024.10.04
20241002 TIL  (2) 2024.10.02