본문 바로가기
자바 풀스택 공부

Day 2-1.

by seung_nari 2021. 12. 31.

1. 변수(variable)


변수란, 값을 저장할 수 있는 메모리 공간

 

변수를 선언(생성) 하고 값을 저장(초기화) 해주어야 합니다.

public class JavaVariableExample{
	public static void main(String[] args){
		int number;
		//int 형 변수 number 선언
		int number1 = 30;
		//int 형 변수 number1 선언하고 숫자값 30
	}
}

위의 경우는 2가지 형식으로 변수를 선언하는 것을 보여줍니다.

 

첫번째는 int 형식을 저장하기 위해 number 라는 이름의 변수를 선언한 것입니다.

즉, int (변수타입) number (변수이름) 라고 볼 수 있습니다.

 

두번째는 number1 이라는 변수를 선언과 동시에 30이라는 숫자값을 저장(초기화)한 것입니다.

이제 number1 변수 안에는 30이라는 숫자값이 담겨있습니다.

 

 

리터럴

2020, 123, 3.14, "ABC"와 값은 값들은 리터럴이라고 합니다.

원래 이러한 값들은 상수라고 부르지만

프로그래밍에서는 상수를

'값을 한 번 저장하면 변경할 수 없는 저장공간'으로

정의했기 때문에 이와 구분하기 위해 리터럴이라고 부릅니다.

 

리터럴은 기존에 알고 있던 상수와는 다른 이름이라고 볼 수 있다.

 

 

변수 선언 및 초기화

public static void main(String[] args) {
	int year;
        // int : 변수타입
        // year : 변수이름
        
        int year = 2021; 
        // year 변수 초기화
	}

변수 타입 : 변수에 저장될 값이 어떤 타입인지 지정

변수 이름 : 변수에 붙힌 이름. 변수가 값을 저장할 수 있는 메모리 공간을 의미

 

변수를 선언하면 메모리에 변수의 저장공간이 확보되어있지만, 초기화를 하지 않을 경우 어떠한 값이 저장되어있는지 알 수 없습니다. 그렇기에 초기화를 해줘야 합니다.

 

 

 

변수의 규칙

ˇ대소문자가 구분된다.

ˇ길이에 제한이 없다.

ˇ변수명에 예약어가 올 수 없다.

ˇ숫자로 시작할 수 없다.

ˇ특수문자는 _ 와 $만 가능하다.

ˇ상수는 모두 대문자로 작성한다.

ˇ여러단어로 이루어진 경우 단어의 첫글자를 대문자로 한다.

ˇ한글로도 작성가능하나, 영어를 원칙으로 한다.

 

예약어는 키워드라고도 하며, 시스템상에서 미이 쓰이는 단어를 말합니다.

위와 같은 명명규칙을 참고하여 이름을 짓도록 합시다.

 

2. 데이터 타입


크게 기본형(primitive type)와 참조형(reference type)와 같이 2분류로 나누어 집니다.

기본형은 8가지이고, 참조형은 기본형을 제외한 나머지타입을 말합니다.

 

public static void main(String[] args) {

		boolean booleanType;
		
		char charType;
		
		byte byteType;
		
		short shortType;
		
		int intType;
		
		long longTypeL;
		
		float floatType;
		
		double doubleType;
}

 

기본형 8가지를 분류하면 논리형, 문자형, 정수형, 실수형과 같이 4가지로 분류가 가능합니다.

 

타입 범위

˙ boolean은 true와 false 두 값만 표현하면 되기에 1바이트면 충분하다.

      →기본 값: false

˙ char는 자바에서 유니코드(2 byte문자 체계)를 사용하기에 2byte

      →기본 값: \u0000

˙ byte는 크기가 1byte이므로 byte.

      →기본 값: 0

˙ int는 4 byte, 저장할 수 있는 값의 범위 == 2 ^ (4 * 8 (1byte = 8비트)).

      →기본 값: 0

˙ float은 실수값을 부동소수점(floating-point)방식으로 저장하기 때문에 float

      →기본 값: 0.0F

˙ double은 float보다 두 배의 크기(8byte)를 갖기 때문에 double

      →기본 값: 0

 

실수형의 정밀도

실수형은 정수형과 저장 방식이 다르기에 같은 크기라도 훨씬 큰 값을 표현할 수는 있지만,
오차가 발생할 수 있다. 그래서 정밀도(precision)가 중요한데, 정밀도가 높을수록 오차의 범위가 줄어든다.

위 표를 보면 float의 정밀도는 7자리로 10진수 7자리의 수를 오차없이 저장할 수 있다는 의미다.
 
실제로 프로그램을 작성할때, float 자료형으로 저장된 값 1은 1.0000001로 나오곤 하는데
 
 
이 문제를 해결하는 방법은
 

에 나와있습니다:)

 
 

3. 아스키코드


아스키코드 표

 

유니코드

컴퓨터가 발전하며 영어나 숫자 그리고 기본적인 기호뿐만 아니라 그 나라, 그 언어에서 쓰는 다양한 문자들을 처리하려면 1바이트로 정의된 아스키코드를 확장할 필요가 생겼습니다. 유니코드는 이런 아스키코드의 한계성을 해소할 수 있는 체계로 만들어진 코드입니다. 각 나라별 언어를 모두 표현하기 위해 나온 코드 체계가 유니코드(unicode)입니다. 유니코드는 사용 중인 운영체제, 프로그램, 언어에 관계없이 문자마다 고유한 코드 값을 제공합니다.

 

언어와 상관없이 모든 문자를 16비트로 표현하므로 최대 65,536까지 표현할 수 있습니다.

 

문자 → 숫자

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
		
	System.out.println("알파벳을 입력해주세요");
	char ch = sc.nextLine().charAt(0);
	int num = (int)ch;
		
	System.out.println(num);
    }

숫자 → 문자

public static void main(String[] args) {
	Scanner sc = new Scanner(System.in);
		
	System.out.println("숫자를 입력해주세요");
	int num = sc.nextInt();
	char ch = (char)num;
		
	System.out.println(ch);
    }

'자바 풀스택 공부' 카테고리의 다른 글

Day 4.  (0) 2022.01.04
Day 3.  (0) 2022.01.04
Day 2-2.  (0) 2022.01.03
프로그래밍 언어에서 1 + 0.1이 1.1이 아닌 이유  (0) 2021.12.31
Day 1.  (0) 2021.12.30

댓글