chaper4.자료형

김현우·2024년 4월 28일
0

java

목록 보기
2/12
post-thumbnail

📚 변수

변수는 데이터를 저장할수 있는 메모리상의 공간이다.

자바에서 변수는 4가지가 존재한다.
1. 인스턴스 변수
2. 클래스 변수
3. 지역변수
4. 매개변수

간단한 코드를 보며 얘기해보자.
public class variable {
    int instanceVariable;//인스턴스 변수
    static int classVariable;//클래스 변수

    public void method(int parameter/*매개변수*/){
        int localVariable;//매소드 안에 존재하면 지역변수
    }
}

인스턴스 변수: 클래스 내부에 선언되며, 객체가 생성될 때마다 각 인스턴스에 대해 별도로 할당됩니다. 
             인스턴스 변수는 객체의 상태를 저장하는 데 사용되며, 
             객체가 소멸할 때까지 존재합니다.

클래스 변수: static 키워드를 사용하여 선언된 변수로, 
           이 변수는 해당 클래스의 모든 인스턴스 간에 공유됩니다. 
           클래스 변수는 클래스가 메모리에 로드될 때 생성되고, 프로그램이 종료될 때 소멸됩니다.

매개변수: 메소드에 넘겨주는 변수로, 메소드 호출 시 제공되는 값을 
         메소드 내부에서 사용할 수 있도록 합니다. 
         매개변수는 메소드의 입력으로 작용합니다.

지역변수: 메소드 내에 선언되며, 메소드가 실행될 때 생성되고 메소드가 종료될 때 소멸합니다. 

📚 자료형

변수가 데이터를 저장할수 있는 메모리 내의 공간이라면
자료형은 이 공간은 얼마만큼 줄지, 어떤 종류의 데이터를 받고 해석할지 결정한다.

자바에서 자료형은 크게 두종류다.

1. 기본 자료형
2. 참조 자료형 - new 를 사용하여 초기화하는 친구들 단,String은 new로 해도 그냥 ""로 해도 됨

📚 기본 자료형

총 8가지가 존재한다.

1. 정수형 : byte, short, int , long , char
2. 실수형 : float , double
3. 기타 : boolean

***
1byte = 8bit 로
총 2^8개의 상태를 나타낼수 있다.

char 는 c와 다르게 2byte로 유니코드 또한 저장가능하다.

실수형은 정확한 값을 저장하기 힘들기 때문에 간단한 계산외의 
중요한 돈계산 등에는 사용하면 안된다.
boolean은 참과 거짓을 나타낸다.

📗 초기화

지역변수의 경우 사용시 초기화 해주지 않으면 오류가 발생한다.
그냥 초기화하고 사용치 않으면 괜찮지만 사용시에는 초기화를 해줘야한다.
public class dataType {
    static int a;
    public static void main(String[] args)
    {
     int b;

     System.out.println(a);
     
     System.out.println(b);
    }
}

실행시 다음과 같은 오류가 발생한다.

인스턴스 변수의 경우에는 다르다.
초기화하지 않고 그냥 실행시 초기값은 0으로 자동 초기화된다.
public class dataType {
    byte b;
    short s;
    int i;
    long li;
    float f;
    double d;
    char c;
    boolean bl;

    public static void main(String[] args)
    {
        int b;
        
        dataType tmp=new dataType();
        tmp.printInstance();
    }

    public void printInstance(){
        System.out.println("byte = "+b);
        System.out.println("short = "+s);
        System.out.println("int = "+i);
        System.out.println("long = "+li);
        System.out.println("float = "+f);
        System.out.println("double = "+d);
        System.out.println("char = "+c);
        System.out.println("boolean = "+bl);
    }
}

실행시켜보면

char 는 \0000 즉 공백 출력중이다.
모두 0으로 초기화된 모습이다.
chapter 5의 경우 연산자가 c와 똑같기에 생략
profile
학생

0개의 댓글