1) 변수와 상수

 변수: 어떠한 데이터를 저장하기 위한 메모리 공간의 이름. 지속적으로 변수의 값을 변경할 수 있다.

 상수: 중간에 값이 변할 수 없고, 초기값을 사용한다.

 

2) 기본 자료형(Primitive Type)

 자바의 변수는 반드시 자료형이 선언되어야 하고, OS따라서 자료형의 길이가 변하지 않습니다. 또한, 비객체 타입이므로, null 값을 가질수가 없습니다.

TYPE		Bits		Range of Values
--------------------------------------------------------------------------------------
byte		8비트		정수형(-2^7 ~ 2^7-1)
short		16비트		정수형(-2^15 ~ 2^15-1)
int		32비트 		정수형(-2^31 ~ 2^31-1)
long		64비트		정수형(-2^63 ~ 2^63-1)
float		32비트		부동형 실수(0x0.00002P-126f ~ 0x1.fffffeP+127f)
double		63비트		부동형 실수(0x0.0000000000001P-1022 ~ 0x1.fffffffffffffP+1023)
char		16비트		문자
boolean		1비트		true, false

 3) 참조 자료형(Reference Type)

 참조형은 기본적으로 java.lang.Object를 상속 받으면 상속형이 된다. 선언한 자료형이 기본형이 아닌 경우 참조형이 된다. 참조형은 클래스형(Class type), 인터페이스형(Interface Type), 배열형(Array Type)이 있다.

 

 - 클래스형(Class Type)

Class MyClass{
	private int index;
    MyClass(int index) {
    	this.index = index;
    }
    
    public int getIndex() {
    	return index;
    }
    
    public void setIndex(int index){
    	this.index = index;
    }
}

public class ClassType{
	public MyClass a = new MyClass(2);
    public MyClass b = new MyClass(4);
    System.out.println(a.getIndex());  // "a" result is 2.
    a=b;
    System.out.println(a.getIndex());  // "a" result is 4.
    b.setIndex(6);
    System.out.println(a.getIndex());  // "a" result is 6.
}

 b 객체의 멤버 변수 값을 바꿨지만, a 객체는 b 객체를 참조하기 떄문에 동일한 값을 출력한다. 위 코드에서는 a와 b라는 변수를 가지는 것이 아닌, 객체의 주소를 참조하기 때문에 b의 값을 가지게 된다.

 

 - String Class

 클래스형에서도 String 클래스는 조금 특별하다. 이 클래스는 참조형에 속하지만, 사용은 기본형처럼 사용한다. 그리고 불변하는 객체이다. 만약, String클래스에 속한 데이터를 바꾼다고해도, 새로운 String 클래스 객체를 만들어 내는것이다. 일반적으로 기본형의 비교는 =(equal) 연산자를 사용하지만 String 객체간의 비교는 .equals() 메소드를 사용한다.

 

 -Wrapper Class

 기본형은 비객체이기 때문에 null을 할당할 수 없지만, 기본형을 클래스로 감싼 형태인 Wrapper Class를 활용하면 null을 할당 할수있다. 다음의 클래스는 각각의 기본 자료형에 대응한다

기본형		대응 래퍼 클래스
byte 		Byte
short		Short
int		Integer
long		Long
float		Float
double		Double
char		Char
boolean		Boolean

 

 - 인터페이스형(Interface Type)

 일반적으로 인터페이스는 추상 클래스와 많이 비교된다. 인터페이스는 새로운 참조 자료형을 만드는 것과 같다. 인터페이스는 아래와 같은 형식으로 만든다

interface MyInterface<T> {
	void add(T value);
}

 <T>는 제너릭 타입이며, 옵션이다.

 

 - 배열형(Array Type)

 배열형은 기본형으로도 만들 수 있고 참조형으로도 만들 수 있다.

public class MyArray{
	public static void main(String[] args) {
    	int[] i = new int[2];
        Long[] l  new Long[2];
        Object[][] o = null;
    }
}

 자료형에 대해 []를 선언함으로 배열을 지정할 수 있다. 배열형 변수 또한 주소가 할당되는 것이기 때문에 클래스형과 특징이 일치한다.

 

 - 열거형(Enum Type)

  String 클래스와 마찬가지로 불변의 객체이며, 상수의 집합을 만들거나 특정 객체의 상태를 모아서 사용한다. 

 

'Java' 카테고리의 다른 글

05.Java(기초), 반복문  (0) 2022.11.07
04.Java(기초), 조건문  (0) 2022.11.07
03.Java(기초), 연산자(Operator)  (0) 2022.11.07
01. VS Code에서 Java 개발 환경 설정하기  (0) 2022.11.07
00. Java  (0) 2022.11.07

+ Recent posts