본문 바로가기
  • 문과생의 백엔드 개발자 성장기
|Backend.DevLog/JAVA

02. 변수(Variable) , 자료형 (Data type)

by 케리's 2022. 6. 20.

변수 선언

변수 선언은 자료형과 변수 명으로 선언함 선언과 동시에 초기화 할 수 있음

 

package ch05;

public class VariableTest {

	public static void main(String[] args) {
		int age, count;
		age = 10;
		
		int level = 10000;
		System.out.println(age);
		System.out.println(level);
	}
}

 

자바 명명 규칙 

 

package 이름은 소문자 ,

class 이름은 첫글자 대문자 시작 

변수의 이름은 카멜표기법으로 씀 (numOfStudent)

변수 이름은 영문자(대문자, 소문자)나 숫자를 사용할 수도 있고, 특수문자 중에는 $와 _만 사용 (ex. count100, _master)

변수 이름의 시작은 숫자로 할 수 없음 ( ex. 27days(X), 1abc(X))

자바에서 이미 사용하고 있는 예약어는 사용할 수 없음 (while, break 등)

변수 이름은 프로그램내에서 사용되는 것이므로 그 용도에 맞고 가독성이 좋게 만드는것이 중요
ex) int numberOfStudent;

 

 

자료형 

 

변수와 메모리

변수를 선언하면 해당되는 자료형의 크기 만큼 메모리가 할당
변수는 할당된 메모리를 가리키는 이름

int level = 10; // 4바이트 정수형 메모리가 level 이라는 이름으로 할당 됨

 

기본 자료형 

byte와 short

  • byte : 1바이트 단위의 자료형 동영상, 음악 파일, 실행 파일의 자료를 처리할 때 사용
  • short: 2바이트 단위의 자료형 C/C++ 언어와 호환 시 사용

int

  • 자바에서 사용하는 정수에 대한 기본 자료 형
  • 4바이트 단위의 자료형
  • 프로그램에서 사용하는 모든 숫자(리터럴)은 int 로 저장됨
  • 32 비트를 초과하는 숫자는 long 자료형으로 처리

long

  • 8바이트 자료형
  • 숫자의 뒤에 알파벳 L 또는 l 을 써서 long 형임을 표시 함
  • 예) int num = 12345678900; // 오류
    long lnum = 12345678900; //오류
    long lnumber = 12345678900L; // ok

 

부동 소수점 방식

  • 실수는 정수 보다 정밀하기 때문에 정수와는 다른 방식으로 표현해야 함
  • 부동 소수점 방식으로 실수 값 0.1 표현
  • 지수부와 가수부로 표현 함
  • 컴퓨터에서는 밑수를 2로 사용
  • 정규화 : 가수가 밑수보다 작은 한 자리까지 가수로 표현 되는 것
  • 컴퓨터에서는 밑수가 2 이므로 정규화를 하게 되면 가수부분의 첫 번째 자리 숫자는 항상 1임
    예) 0.2 표현 0.4 X 2-1 정규화 하면 1.6 X 2-3

 

float형과 double형

자바에서는 실수의 기본 타입은 double을 사용 함

float 와 double 예제

   package ch07;

   public class DoubleTest {

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

부동 소수점 방식의 오류

지수와 가수로 나타내는 부동 소수점 방식에서는 지수부가 0을 표현할 수 없기 때문에 약간의 오차가 발생할 수 있다

   public class DoubleTest2 {

	public static void main(String[] args) {

		double dnum = 1;
		
		for(int i = 0; i<10000; i++) {
			dnum = dnum + 0.1;
		}
		System.out.println(dnum);
	}
}

 

 

 

문자

  • 어떤 문자를 컴퓨터 내부에서 표현하기 위해 특정 정수 값을 정의
  • A 는 65
  • 문자세트 : 각 문자를 얼마로 표현할 것인지 코드 값을 모아둔 것을 문자세트(charater set)라 함
    (ex. ASKII, euc-kr, utf-8, utf-16)

자바에서는 문자가 어떻게 표현?

  • 자바는 문자를 나타내기 위해 전세계 표준인 UNICODE를 사용
  • utf-16 인코딩을 사용 (모든 문자를 2바이트로 표시)
  • utf-8 (1-4바이트를 유동적으로 사용)

문자형 변수 선언과 사용하기

  • 문자를 위한 데이터 타입 char ch = 'A';
  • 'A' = 2byte, "A" = 문자열 즉 string (A\o)
  • 내부적으로 숫자료 표현되므로 숫자를 넣어도 문자가 출력될 수 있음
  • char ch2 = 66;
package ch08;

public class CharaterTest {
	public static void main(String[] args) {
		char ch1 = 'A';
		System.out.println(ch1);
		System.out.println((int)ch1); //type이 다를때는 캐스팅을한
		
		
		char ch2 = 66;
		System.out.println(ch2);
		System.out.println((char)ch2); //type이 같을때는 캐스팅 굳이 안해도됨
		
		int ch3 = 67;
		System.out.println(ch3);
		System.out.println((char)ch3);
		
		//유니코드
		char han = '한';
		char ch = '\uD55C';
		System.out.println(han);
		System.out.println(ch);
	}
}

 

character set: 문자를 숫자로 변환한 값의 세트

encoding: 문자가 숫자로 변환되는 것
decoding: 숫자에서 다시 문자로 변환되는 것

ASKII code: 알파벳과 숫자 특수 문자등을 1바이트에 표현하는데 사용하는 문자세트

UNICODE: 전 세계 표준으로 만든 문자 세트

UTF-8: 1바이트에서 4바이트까지 다양하게 문자를 표현할 수 있음

UTF-16: 2바이트로 문자를 표현

 

 

출처 - 패스트캠퍼스 

댓글