본문 바로가기
[스파르타코딩클럽]/Java 문법 종합반

Chapter 2. 변수, 형변환

by 진진리 2023. 10. 12.
728x90
  • 저장공간의 선언값의 타입이름을 명시
  • 값의 저장(할당)
    1. 초기화: 선언과 동시에 저장
    2. 덮어쓰기: 선언 이후에 저장

변수의 종류

  • 기본형 변수
    1. 논리형 변수: boolean - True/False
    2. 문자형 변수: char - 문자 하나
    3. 정수형 변수: byte, short, int, long - 숫자
      • 정수형 표현 범위
        • byte: -128 ~ 127
        • short (2byte): -32,768 ~ 32,767
        • int (4byte): -2,147,483,648 ~ 2,147,483,647
        • long (8byte): 9백경
      • 정수형 리터럴(데이터값) 구분값 접미사: long의 351245312L
    4. 실수형 변수: float, double - 소수점 실수값
      • 실수형 표현 범위
        • float (4byte): 3.4 * -10^38 ~ 3.4 * 10^38 (long보다 큼)
          • 소수점 7자리까지
        • double (8byte): 1.7 * -10^308 ~ 1.7 * 10^308
          • 소수점 16자리까
        • 부동 소수점 방식: 가수와 지수를 구분해서 저장하고 이 값들을 곱한 값을 저장
        • float이 long보다 더 넓은 범위를 표현하기 때문에 자동 형변환이 안됨
      • 실수형 리터럴 구분값 접미사: float의 f
  • 참조형 변수
    1. 문자열 변수: String - 문자열
    2. 그 외 Object, Array, List, ... - 객체, 배열, 리스트와 같은 단일 저장 공간에 담을 수 없는 값 저장
  • 래퍼 클래스 변수: 기본형 변수를 클래스로 한 번 감싸는 변수
    • 기본형 변수 타입명에서 첫글자를 대문자로 바꾸어서 래퍼 클래스를 정의
    • 박싱 VS 언박싱
      • 박싱: 기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것
      • 언박싱: 래퍼 클래스 변수를 기본 타입 변수로 가져오는 것
// 박싱
// Integer 래퍼 클래스 num 에 21 의 값을 저장
int number = 21;
Integer num = number; 

// 언박싱
int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.

 

  • 숫자를 문자로 매핑하는 방법: Java에서는 기본적으로 아스키 코드
// 문자 -> 숫자
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);
	}

}

// 입력
a
// 출력
97

 

  • 문자: 따옴표, 문자 뒤에 \0(널문자)가 없음, 2byte 사용
  • 문자열: 쌍따옴표, 문장의 끝에 \0(널문자)가 함께 저장됨. 
  • 참조형 변수 = 주소형 변수: 참조형 변수는 원본값의 주소값을 저장
    • 기본형 변수: 원본값이 Stack 영역에 있음
    • 참조형 변수: 원본값이 Heap 영역에 있음. Stack 영역에는 따로 저장해둔 원본값의 Heap 영역 주소를 저장
      • Stack: 정적으로 할당된 메모리 영역
      • 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);  // 입력한 글자를 출력합니다.

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

비트와 바이트

  • 1Byte = 8 Bits
    • Bit: 0, 1 형태의 2진수 데이터로 컴퓨터가 저장할 수 있는 최소 단위
    • 정수형 값은 10진수 숫자이며 2진수 Bit로 저장
    • Byte: 1 byte 내에서 숫자 변수는 Bit 2진수를 10진수로 저장(0~255)
    • 1 byte 내에서 문자 변수의 경우만 Bit 2진수를 16진수로 저장

형변환

  • 변수를 다른 자료형으로 변환
  • 정수 <-> 실수: (원하는 타입) 명령을 통해 변환 (캐스팅 = 강제 형변환)
    • 실수 -> 정수: 소수점 아래 자리는 버려짐
  • 자동 형변환
    • 작은 크기의 타입에서 큰 크기의 타입으로 저장될 때 
    • 작은 크기의 타입이 큰 크기의 타입과 계산될 때 

 

'[스파르타코딩클럽] > Java 문법 종합반' 카테고리의 다른 글

Chapter 6. 컬렉션  (0) 2023.10.13
Chapter 5. 배열  (0) 2023.10.13
Chapter 4. 조건문, 반복문  (0) 2023.10.13
Chapter 3. 연산자  (0) 2023.10.13
Chapter 1. Java 소개, JVM, 첫 프로젝트 생성  (0) 2023.10.12