Backend/Java

Java 문법 1주차 1-5,6 변수

chillmyh 2023. 11. 21. 01:37

변하는것(변수)과 변하지 않는것(상수).

 

 - 저장공간의 선언

 Int number ; // Int -> 저장공간 타입. Integer. 정수
                        //  number -> 변수명 설정

                        // number라는 이름의 int(숫자,정수)타입의 저장공간을 선언

 

String name; // name 이라는 이름의 String(문자열)타입의 저장공간을 선언

 

 - 값의 저장(할당)

int number = 10; //  1. 선언과 동시에 값을 할당하는 것.

number = 11; // 2. 선언 이후에 값을 할당 "덮어쓰기"

 

 - 변수 : 변하는 저장공간 (접시) -> 이것도 담고 저것도 담고 할 수 있음

 - 상수 : 변하지 않는 저장공간 (냄비 -> 냄비에 찌개를 담아놓고 식사를 다할때까지 다른걸 담지 않는다 ex : pi->3.141592...)

 

final int number = 10; // 1. 상수로 선언 (데이터 타입 앞에 final이 붙으면 상수선언)

 

변수의 두가지 종류

 - 기본형 : 숫자, 문자, boolean ...

 - 참조형 : 뭔가 복잡한 ... 어딘가에 별도로 저장한 ...

 

기본형 변수

 - 논리형 변수 : boolean

  True / False

boolean flag = true; // 1. 논리형 변수 boolelan으로 flag를 true로 선언

 

 - 문자형 변수 : char

  'A', '1'와 같은 문자 하나만 저장가능

char alphabet = 'A'; // 문자 하나를 저장

 

 - 정수형 변수 : byte, short, int, long

byte : -128~127

short : 2byte. -32,768~32,7677

int : 4byte. -21억~21억

long : 8byte. 9백경 정도. 매우 큰수. 숫자 끝에 L을 붙여서 long형 값을 선언.

 

 - 실수형 변수 : float, double

  0.123, 0.9999와 같은 소수점 실수값을 지정한다.

float floatNumber = 0.123f // 접미사 f를 붙여서 float형 값을 선언

 

참조형 변수

 - 문자열 변수 : String

  "Apple", "텍스트"와 같은 문장을 저장한다. 하나 이상의 '문자형'이 저장된 형태.

String message = "Hello World"; // 문자열을 저장한다.

 

- 그 외 : Object, Array, List ...

 - 객체, 배열, 리스트와 같은 단일 저장공간에 담을 수 없는 값을 저장.

List<int> alphabet = [0,1,2,3]; // 기본형 변수를 리스트에 여러개 저장.

 

- 래퍼 클래스 변수

  래퍼 클래스(Wrapper Class)라는 말 그대로 '기본형(boolean, int, byte, char, float...) 변수를 클래스로 한번 랩핑(감싸는) 변수

 

import java.util.Arrays;

public class Main {

    public static void main(String[] args) {
        // 우리의 playground!

        // 변수나 메서드명을 만들때 byteNumber처럼 가운데에 대문자를 끼우는 '카멜케이스'방식으로 작성

        // !기본형!
        // (1) boolean
        // 변수를 선언해보자 => 타입 이름 = 값;
        boolean flag = true;
        boolean apple = false;

        System.out.println(flag);
        System.out.println(apple);

        // (2) 문자형(char)
        char alpahbet = 'A'; // ""를 사용하면 '문자열'로 인식한다! 문자형(char)은 ''로 감싼다.
        System.out.println(alpahbet);

        // (3) 정수형(byte, short, int, long)
        byte byteNumber = 127;
        short shortNumber = 32767;
        int intNumber = 2147483647;
        long longNumber = 2147483647L;

        System.out.println(byteNumber); // -128 ~ 127(1byte = 8bit = 2^8 = 256)
        System.out.println(shortNumber); // -32,7768 ~ 32,7767
        System.out.println(intNumber);
        System.out.println(longNumber);

        // (3-2) 실수형
        // float(4byte), double(8byte)

        float floatNumber = 0.123F;
        double doubleNumber = 0.1231231232;

        // 위에서 처럼 변수를 할당하고 밑에서처럼 할당된 변수를 쓸수있다. = 참조한다.
        System.out.println(floatNumber);
        System.out.println(doubleNumber);

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

        // (2) 배열
        int[] a = {1, 2, 3};
        System.out.println(a); // 참조형 데이터는 주소값에 저장되기때문에 주소값이 출력된 것
        System.out.println(Arrays. toString(a)); // 정상적으로 [1, 2, 3]이 출력

        // (3) 래퍼 클래스(Wrapper Class) 변수
        int number = 21;
        Integer num = number;// Integer라는 클래스를 선언. 변수명 num 임의설정. boxing.
        System.out.println(num.intValue()); // unboxing
    }

}