프로그래밍 언어/JAVA

JAVA) 자바 데이터 타입과 변수

luana_eun 2021. 12. 23. 17:27
728x90

1. 기본 데이터타입(Primitive Type)

자바에서 사용하는 기본적인 데이터타입은 8가지.

메모리의 효율적인 사용을 위해 사이즈별로 나누어놓았다. 

 

1) 정수형(byte, short, int, long): 표현가능한 정수 범위에 따라 4가지 타입으로 분류.

    btye by = 127;

    short sh = 32767;

    int in = 2_147_483_647;

    long lo = 300000000000000L;

             정수형 long 타입 데이터는 숫자 뒤에 접미사 L을 붙여서 표현.

             접미사 L은 대문자 사용 권장. 소문자l이랑 1이랑 구분하기 힘드니까!

 

2) 실수형(float, double)

  : 기본형은 double이며, float형은 뒤에 f를 붙여야한다. 

    float는 오차없이 표현할수 있는 유효자리가 7자리고, 

    double의 유효자리는 15~16자리다. 

       float fl = 3.14f;

       double d = 3.14;  

 

3) 문자형(char) : 문자1개를 2byte 정수형태로 저장하며, 작은따옴표(' ')에 지정한다. 

                      다른 데이터타입과 연산 할 경우, 자동으로 int형으로 형변환된다. 

    char c = 'A';

    char c += 10;   => 이렇게 복합연산자를 사용해야 그대로 char형이 유지된다. 

    

4) 논리형(boolean) : true / false

    boolean b = true;

 

 

데이터 타입 크기

 


2. 참조 데이터 타입(Reference Type)

기본 데이터타입을 제외한 나머지 모든 타입.

 

문자열 String타입. 

1개 이상의 문자를 사용하는 경우 문자열이라고 하며, 큰따옴표(" ") 안에 선언한다. 

자바에서 String타입 데이터라고 하며, 기본형 데이터가 아니다(기본 8개에 안들어감)

아무것도 없는 빈 문자를 표현할 수 있다. 

String str = "Hello Word!";

 

 

 

 

3. 상수(Constant)

항상 같은 값을 갖는 데이터. 변하지 않는 변수 

실제 사용하는 데이터들을 리터럴(Literal)이라고 한다. 

ex) 정수형 리터럴, 실수형 리터럴, 문자형 리터럴, 논리형 리터럴, 문자열형 리터럴

 

 


4. 변수선언

▷ 변수는 한꺼번에 선언 가능하다. 

    int a, b, c;

▷ 대소문자를 구별한다. 

    변수명으로 Int 사용가능하다. 왜냐면 대소문자를 구분하기때문에 int와 Int는 다르다. 

▷ 특수문자는 $와 _만 사용 가능하다. 

    $abc  => 변수명으로 사용 가능.


<자바 진수 나타내는 법>

	//진수 나타내는 방법.
	public static void main(String[] args) {

		System.out.println(255);	//10진수
		
		System.out.println(0b11111111);		//2진수
		
		System.out.println(0377);	//8진수
		//System.out.println(0378); 	//8진수에서는 7이상의 표기는 불가능해서 오류가 난다. 
		
		System.out.println(0xff);	//16진수
		
		long l = 100_000_000_000L;	//숫자가 클 경우 구분을 위해 _사용 가능
		System.out.println(l);
	
	}

 


5. 로컬변수, 클래스변수, 인스턴스 변수

public class A {
  static a = 100;
  
  int b = 50;
  
  for(int i=0; i<5; i++){
  	System.out.println(i);
  }
  
  public void method_a {
  	D d = new D();
  }
}

로컬변수: i, d

메서드 블럭 안에서 선언된 변수로, 블록 내에서만 사용되고 메소드 실행이 끝나면 자동으로 삭제된다.

 

 

정적변수(=클래스 변수) : a

static이 선언된 변수

 

인스턴스 변수: b

클래스 내에서 선언된 변수. 

 

728x90