본문 바로가기

JAVA

숫자와 문자

저장공간에 저장하는 값은 0과 1을 통한 숫자값을 저장한다.

문자를 숫자로 저장하는 방법에는 여러가지가 있다.

그 중 Java에서는 기본적으로 아스키코드라는 규칙으로 문자를 저장한다.

 

 

숫자 -> 문자

// 숫자 -> 문자
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int asciiNumber = sc.nextInt();
        char ch = (char)asciiNumber; // 문자로 형변환을 해주면 숫자에 맞는 문자로 표현됩니다.

        System.out.println(ch);
    }
}

 

문자 -> 숫자

// 문자 -> 숫자
import java.util.Scanner;
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		char letter = sc.nextLine().charAt(0); // 첫번째 글자만 받아오기위해 charAt(0) 메서드를 사용합니다.
		int asciiNumber = (int)letter; // 숫자로 형변환을 해주면 저장되어있던 아스키 숫자값으로 표현됩니다.

		System.out.println(asciiNumber);
	}
}

 


문자와 문자열

선언 관점에서 차이점

  • 문자(char) : 문자 한개만 저장하며 따옴표를 사용하여 값을 지정한다.
  • 문자열(String) : 문자 여러개를 문장형태로 저장하며 쌍따옴표를 사용하여 범위를 지정한다.
char alphabet = 'A'; // 문자 하나를 저장합니다.
String message = "Hello World"; // 문자열을 저장합니다.

 

저장 관점에서 차이점

  • 문자(char) : 문자 뒤에 \0(널문자)가 없다. (1 byte만 쓰기 때문에 끝을 알아서 데이터만 저장하면 됨)
  • 문자열(String) : 문장의 끝에 \0(널문자)가 함께 저장된다. (몇개의 byte를 쓸지 모르기 때문에 끝을 표시해야 함)

참조형

참조형 변수 = 주소형 변수

다른 기본형 변수가 실제 값을 저장하는 저장공간 이라면 참조형 변수는 실제 값이 아닌 원본값의 주소값을 저장한다.

  • 기본형 변수 : 원본값이 Stack 영역에 있습니다.
  • 참조형 변수 : 원본값이 Heap 영역에 있습니다.

* Stack 영역에는 따로 저장 해둔 원본값의 Heap 영역주소를 저장합니다.

Stack 영역 vs Heap 영역

  • Stack은 정적으로 할당된 메모리 영역
    • 그래서, 크기가 몇 byte 인지 정해져있는 기본형 변수를 저장한다.
    • 추가로, 크기가 정해져있는 참조형 변수의 주소값도 저장한다.
  • Heap은 동적으로 할당된 메모리 영역
    • 그래서, 크기가 계속 늘어날 수 있는 참조형 변수의 원본을 저장한다.

입력과 출력

  • 입력 : Scanner.in 객체의 next() 명령을 사용해 입력을 받는다.
  • 출력 : System.out 객체의 println() 명령을 사용해 출력을 한다.
Scanner sc = new Scanner(System.in); // Scanner 객체를 new 명령어로 생성합니다.
String input = sc.next(); // sc(Scanner)의 .next(); 를 실행하면 input 변수에 입력한 글자를 받을 수 있습니다.

System.out.println("입력값 : " + input);  // 입력한 글자를 출력합니다.

// 실행 결과
{입력}
입력값 : {입력}

비트와 바이트

Bit(비트)

0, 1 형태의 2진수 데이터. 컴퓨터가 저장(표현)할 수 있는 최소 단위

정수형 값은 10진수 숫자(0~10범위의 숫자)이며 2진수(0~1범위) Bit로 저장(표현) 한다.

4개의 Bit로 16진수 숫자(0~F(16)범위의 숫자)를 2진수(0~1범위) Bit로 저장(표현) 한다.

Byte(바이트) = 8 Bit

1바이트는 8개의 비트로 구성됨

1바이트 내에서 숫자 변수는 Bit 2진수를 10진수로 저장(표현) 함

10진수로는 0~255(2의 8승)까지 저장(표현) 함

1바이트 내에서 문자 변수의 경우만 Bit 2진수를 16진수로 저장(표현) 함

'JAVA' 카테고리의 다른 글

조건문  (0) 2023.04.04
연산자  (0) 2023.04.03
형변환  (0) 2023.04.03
변수와 상수  (0) 2023.04.03
개발언어 JAVA  (0) 2023.04.03