변수

codakcodak·2023년 6월 28일
0

Java

목록 보기
2/17

변수

자료를 저장하기 위한 메모리 공간으로 타입에 따라 크기가 달라진다.

  • 기본형:미리 정해진 크기의 데이터 표현
  • 참조형:크기가 미리 정해질 수 없는 데이터의 표현(변수에 실제 값을 참조할 수 있는 주소를 저장)

기본 자료형(기본 타입)


java에서는 정수에 대한 기본 자료형을 int,실수에 대한 기본 자료형을 double로 한다.
음수표현을 위해 1비트를 뺀 범위로 설정된다.

래퍼 클래스

기본 자료타입(primitive type)을 객체로 다루기 위해서 사용하는 클래스들을 래퍼 클래스(wrapper class)라고 합니다.

형변환

  • 기본자료형은 기본자료형끼리,참조형은 참조형끼리 형 변환이 가능하다.

  • boolean은 다른 기본형과 호환되지 않는다.

  • 기본형과 참조형의 형 변환을 위해 Wrapper클래스를 사용한다.

  • 묵시적 형변환(타입의 표현범위가 커지는 방향으로 자동으로 변환)

  • 명시적 형변환(사용자가 타입을 명시하여 변환)

형변환 주의점

1

*(long)(il+1)의 경우 il과 1의 연산 결과 후 형 변환을 한 것이기 때문에 결과가 예상과다르다.미리 il을 형변환을 먼저 시킨후에 연산을 해야한다.

2

public class Lang_04 {

    public static void main(String[] args) {
        byte b1 = 10;
        byte b2 = 20;
        // cannot convert int to byte
         byte b3 = b1 + b2;-
         //byte b3 = (byte)b1 + b2;

        int i1 = 10;
        long l1 = 20;
        // cannot convert long to int
         int i2 = i1 + l1;
         //int i2 = i1 + (int)l1;

        // cannot convert double to float
         float f1 = 10.0;
         float f2 = f1 + 20.0;
         //float f1 = 10.0f;
         //float f2 = f1 + 20.0f;
    }
}

변수의 이름

  • 변수 이름은 영문자(대문자, 소문자)나 숫자를 사용할 수도 있고, 특수문자 중에는 $와 _만 사용 (ex. count100, _master)
  • 변수 이름의 시작은 숫자로 할 수 없음 ( ex. 27days(X), 1abc(X))
  • 변수 이름은 프로그램내에서 사용되는 것이므로 그 용도에 맞고 가독성이 좋게 만드는것이 중요
    ex) int numberOfStudent;

정수

public class IntVariableTest {
	public static void main(String[] args) {
		//bs=128이면 Type Mismatch가 일어난다.(byte의 범위는 127까지이기 때문)
		byte bs=127;
		System.out.println(bs);
		//12345678900로만 선언하면 literal out of range가 일어난다.(숫자는 기본으로 int로 보는데 최대 숫자를 넘었기 때문)
		long iVal=12345678900L;
		System.out.println(iVal);
		
		System.out.println(iVal);
	}
}
10
1000

실수


public class DoubleTest {

	public static void main(String[] args) {
		double dnum=3.14;
		//3.14로 선언 한다면 java는 실수를 기본으로 double로 인식하여 Type Mismatch가 일어난다.
		float fnum=3.14f;
		
		System.out.println(dnum);
		//밑수와 지수를 통해 정확하게 0을 표현할 수 없기에 미세한 오차가 발생한다.
		double mynum=1;
		for(int i=0;i<10000;i++) {
			mynum=mynum+0.1;
		}
		System.out.println(mynum);
	}
}
3.14
1001.000000000159

문자

유니코드:세계 모든 언어와 기호에 코드값을 부여한 것으로 2바이트로 표현된다.

public class CharacterTest {

	public static void main(String[] args) {
		//"A"는 문자열로서 'A'와 다른것이다.
		char ch1='A';
		System.out.println(ch1);
		System.out.println((int)ch1);
		
		char ch2=66;
		System.out.println(ch2);
		System.out.println((int)ch2);
		
		char ch3='한';
        //유니코드는 2바이트 이기때문에 16진법으로 4개의 숫자로 이루어진다.
		char ch4='\uD55C';

		System.out.println(Integer.toString(ch3,16));
		System.out.println(ch3);
		System.out.println(ch4);
		
	}

}
A
65
B
66
d55c
한
한

상수

public class ConstantTest {
	public static void main(String[] args) {
		
		final int MAX_NUM;
		final int MIN_NUM=10;
		MAX_NUM=100;
		
		System.out.println(MAX_NUM);
		System.out.println(MIN_NUM);
		//한번 할당된 상수는 변할 수 없다.
		//MAX_NUM=99;
	}
}
100
10
profile
숲을 보는 코더

0개의 댓글