티스토리 뷰

차곡차곡/Java

[JAVA] 변수와 자료형

p퐝유p 2022. 4. 25. 23:47

★ 변수 (Variable)란?

 - 변수는 말그대로 변하는 수 이다. 프로그래밍에서는 변수는 값을 담는 '공간'이다.

   Java에서는 변수 생성이 선언초기화 크게 2단계로 나뉜다.


★ 변수의 선언 (Declaration)

-Java에서는 변수 선언 시 keyword로 Data type을 명시하기 때문에 

 해당 변수에는 특정 type의 값만 담을 수 있다.

 

 

 

1.  정수형 타입의 변수 a 선언을 뜻한다. int는 Integer의 줄임 표현이다. 

    자, a는 이제 정수인거예요 라고 말그대로 선언.

 

2.  System.out.println은 출력을 뜻한다. 

 

변수 a 를 선언만 즉, 틀만 선언하고 값을 대입하지 않았기 때문에 이러한 에러가 뜬다.

 


★ 변수의 초기화(Initialization)

- 초기화는 변수에 실제로 값을 대입하는 것이다.

  변수 a에 10이라는 값을 대입해 보겠다.

 

 

뿅!! 10이 출력된다.

 


★ 변수  이름  규칙 ( Variable Naming Convention)

 

1. 영문자(대소문자) , 특수문자($,_) 만 사용 가능

 

2. 숫자로 시작 불가

 

3. 키워드, 예약어 사용 불가 (while, int break 등)

 

4.Java에서는 JavaScript와 동일하게 camelCase 방식을 사용

 

int age; //변수의 선언, 생성이라고도 함
//System.out.println(age); // error: variable age might not have been initialized.
// -> 값이 초기화 되어있지 않기 때문에 실행(컴파일) 불가
	
age = 10; //age 변수를 10이란 값으로 '초기화(initialization)'
System.out.println(age);

int age2 = 20; //선언과 초기화를 한 번에 작성가능

/**
 * 변수 네이밍 컨벤션(명명 규칙)
 * 1. 특수 문자($ 와 _만 가능)
 * 2. 숫자로 시작할 수 없음
 * 3. 키워드, 예약어 사용 불가(while, int, break 등 추후 설명)
 */

//특수 문자
int $age; // 접두에 $ 가능
int _age; // 접두에 _ 가능

int 335; // 숫자로 시작 불가

// 예약어(Keyword)로 선언 불가
int int;
int while;
int for;

★ 자료형 (Data types)

 

○ Java는 Static type (정적 타입)

 

- Java에서는 JavaScript와는 다르게 변수를 선언할 때, 타입을 작성해서 작성한다.

 즉, 해당 변수에는 지정한 타입의 값만 초기화(or 할당) 할 수 있다.

 이러한 것을 Static type (정적 타입)이라고 한다. 

 

 반대로,

 JavaScript는 변수의 타입이 코드의 실행 및 동작 과정에서 변할 수 있기 때문에

 Dynamic type (동적 타입)이라고 한다. 

 


★ 자료형 (Data types)의 종류

Java의 데이터 타입은 크게 2가지로 분류된다. 

   기본 타입(Primitive type) / 참조 타입(Reference type) 인데, 참조 타입은 객체 지향 때 배운다고 한다.

 

○ 기본 타입(Primitive type)

- 일반적인 숫자 ( 정수, 실수), 문자열, 논리형 등과 같은 기본적인 데이터 타입이다.

  정수형 문자형 실수형 논리형
1바이트 byte     boolean
2바이트 short char    
3바이트 int   float  
4바이트 long   double  

 


○ 기본 타입(Primitive type)- 정수형

 

- 정수 자료형은 양수,음수,0을 나타내는 사용하는 자료형이다. 각 범위를 넘으면 값은 허용되지 않는다. 

public static void main(String[] args) {
		//정수형(양수, 음수, 0)
		byte a = 127; //-128 ~ 127
		short b = -32768; //-32768 ~ 32767
		int c = 0; //약 20억, 정수형의 기본 사용 타입
		long d = 200000; //약 2의 63승
        }

○ 기본 타입(Primitive type)-  문자형

 

컴퓨터는 0과 1로만 표현할 수 있다고 했으므로 문자 역시 0과 1의 조합으로 나타내야한다.따라서, 어떤 문자를 컴퓨터 내부에서 표현하려면 특정 정수 값으로 정하자고 약속했다.가장 기본이 되는 문자 인코딩이 '아스키코드'이다.하지만 한글 등 다른 언어는 복잡하고 다양하기 때문에 1 바이트만으로 모든 문자를 표현하기 어렵다.이때 각 언어의 표준 인코딩을 정의해놓은 것이 '유니코드' 이다. 

 

유니코드에 대한 자세한 정보를 얻을 수 있는 사이트이다.

 

Home

 

home.unicode.org

char ch1 = 'A';
		System.out.println(ch1); // 문자 출력
		System.out.println((int)ch1);//문자에 해당하는 정수 값(아스키 코드 값)출력
		
		char ch2 = 66; // 정수 값 대입
		System.out.println(ch2); // 정수 값에 해당하는 문자 출력

출력 화면


○ 기본 타입(Primitive type)-  실수형

 

- 실수를 컴퓨터 내부에서 표현한다고 생각해보자.   실수 값 3.14를 표현한다고 했을 때 , 정수는 3 / 실수는 .14이다.   하지만 0과 1 사이에는 무한개의 실수가 있다. 그래서 정수와는 조금 다른 방식으로 표현해야한다.

  

- float형 : 부호 1비트, 지수부 8비트, 가수부 23비트  = 총 32비트 (4바이트)

- double형 : 부호 1비트, 지수부 11비트, 가수부 52비트 = 총 64비트 (8바이트)

 

자바에서 실수는 double 형 기본 사용, 더 정교함.

 

public class main
{
    public static void main(String[] args) {
    
    	double dnum = 3.14;
		float fnum = 3.14F; // F는 식별자
		System.out.println(dnum);
        System.out.println(fnum);
}
}

출력 화면


○ 기본 타입(Primitive type)-  논리형

 

-논리 자료형은 어떤 변수의 참,거짓의 값을 나타내는 데 사용한다. 

public class main
{
    public static void main(String[] args) {
    
    	boolean isMan = true; // true, false
		System.out.println(isMan);
		
}
}

출력 화면