[JAVA] 자바기초 – 변수 와 자료형

– 변수(Variable)

자바에서 변수는 데이터를 저장하는 데 사용됩니다. 변수는 값이 변할 수 있는 공간이며, 그 값을 참조하거나 변경할 수 있습니다. 변수를 선언할 때는 데이터 유형과 변수 이름을 지정해야 합니다. 예를 들어, int 유형의 정수를 저장하기 위해 int myNumber;와 같이 변수를 선언할 수 있습니다. 그런 다음 해당 변수에 값을 할당하고 사용할 수 있습니다. 변수는 프로그램의 여러 부분에서 데이터를 저장하고 공유하는 데 사용되며, 프로그래밍에서 매우 중요한 개념 중 하나입니다.
  • 변수를 선언한다는 것은 변수의 자료형을 선택하고 이름을 정하는 것!
  • 변수 선언은 자료형과 변수 명으로 선언과 동시에 초기화 할 수 있음. (대입한다 → 어싸인한다~)
  • 변수 이름 만들때는 영문자(대문자,소문자)나 숫자를 사용할수 있고, 특수문자 중에는 &, _ 만 사용, 변수 이름의 시작은 숫자로 할 수 없음(ex. 27days, 1abc)
public class Variable {
    public static void main(String[] args) {
        int age, count;                //쓰지않는 변수는 검은색으로 뜸! 쓰지않는 변수는 선언을 하지않는것이 좋음!
        age = 10;

        int level = 10000;

        System.out.println(age);
        System.out.println(level);
    }
}

-자료형(data type)

자바에서 기본 데이터 유형은 다양한 종류의 데이터를 저장하는 데 사용됩니다. 이러한 기본 데이터 유형에는 정수를 저장하는 int, 작은 정수를 저장하는 byteshort, 큰 정수를 저장하는 long, 부동 소수점 숫자를 저장하는 floatdouble, 문자를 저장하는 char, 그리고 논리 값을 저장하는 boolean이 있습니다. 각 데이터 유형은 메모리에서 차지하는 공간의 크기와 표현할 수 있는 값의 범위가 다르며, 프로그램에서 적절한 데이터 유형을 선택하는 것이 중요하다.

-정수의 표현

  • 변수가 저장되는 메모리 공간의 특성
  • 변수는 쓰임에 맞게 자료형으로 선언해야 함
  • 변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당
  • 변수는 할당된 메모리를 가리키는 이름
  • 변수를 선언한다는 것은 선언한 변수 이름으로 어떤 위치에 있는 메모리를 얼마만큼의 크기로 사용하겠다는 뜻
정수형문자형실수형논리형
1바이트bytebooleanboolean
2바이트shortchar
4바이트intfloat
8바이트longdouble
public class IntVariableTest {
    public static void main(String[] args) {
        byte bs = 127;               //오류남 127 까지 표현할수 있고 -128은 사용가능
        System.out.println(bs);

                                     //int iVal_0 = 123456789000; int 가 표현할수 있는 수를 넘으므로 오류가남
        long iVal = 12345678900L;    // long 으로 처리하면 오류가 안남
        System.out.println(iVal);
    }
}

-실수의 표현

  • 실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야함
  • 부동 소수점 방식으로 실수 값 0.1 표현
  • 지수부와 가수부로 표현 함
  • 컴퓨터에서는 밑수를 2로 사용
  • 정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현 되는 것
  • flot 와 double (실수는 보통 더블을 많이 쓴다)
public class DoubleTest {
    public static void main(String[] args) {
        double dnum = 3.14;
        float fnum = 3.14F;            //8바이트에는 넣을수 없어서 F 로 써서 4바이트로 처리

        System.out.println(dnum);
        System.out.println(fnum);

        double mynum = 1;
        for (int i = 0; i < 10000; i++) {
            mynum = mynum + 0.1;
        }
        System.out.println(mynum);      // 끝에 보면 조금더 이상한 숫자가 붙어있는데 이게 부동소수점의 오류임
    }
}

-문자의 표현

  • 어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의
  • A 는 65
  • 문자세트 = 각 문자를 얼마로 표현할 것인지 코드 값을 모아둔 것을 문자세트(charater set) 라 함
  • 자바는 전세계 표준인 UNICODE를 사용
public class CharacterTest {
    public static void main(String[] args) {
        char ch1 = 'A'; // 작은 따옴표는 문자를 표현하는거임

        // char ch = "A";   큰 따옴표는 문자열임! 하나가 아님.
        System.out.println(ch1);
        System.out.println((int) ch1);

        char ch2 = 66;
        System.out.println(ch2);
        System.out.println((int) ch2);

        char ch3 = '한';
        char ch4 = '\uAC00';     //'한' 의 글자 유니코드임!
        System.out.println(ch3);
        System.out.println(ch4);
    }
}

-논리형 표현

  • true(참), false(거짓) 두 가지만 나타냄
  • 1바이트를 사용 함
  • 값이 존재하는지, 배열이 비었는지, 결과가 참인지 거짓인지 등을 표현
public class BooleanTest {
    public static void main(String[] args) {

        boolean isMarried = true;
        System.out.println(isMarried);
    }
}

-지역변수 자료형 없이 사용하기

  • 추론 가능한 변수에 대한 자료형을 선언하지 않음
  • 한번 선언하여 추론 된 변수는 다른 타입의 값을 대입 할 수 없음
  • 지역 변수만 사용 가능(인스턴스 변수에 사용할 수 없음)
  • 반드시 변수를 초기화 하여야 함
  • null을 넣을 수 없음
public class LocalVariableType {
    public static void main(String[] args) {

        var i = 10;
        var j = 10.0;
        var str = "hello";

        System.out.println(i);
        System.out.println(j);
        System.out.println(str);

        str = "test";
        // str = 3; 이미 스트링으로 선언되었는데 다른 자료형을 넣으면 안됨!
        System.out.println(str);
    }
}

댓글 남기기