[Java] 변수와 타입

PM077·2022년 12월 23일
0

CS Study

목록 보기
19/27

변수(Variable)

  • 값을 저장할 수 있는 메모리의 특정 번지에 붙여진 이름이다
  • 변수를 통해 해당 메모리 번지에 하나의 값 저장하고 읽을 수 있다
  • 변수는 정수, 실수 등 다양한 타입의 값을 저장할 수 있다

변수의 다양한 속성

  • int x; → 이름은 x 주소는 0x1001~0x1004 의 자리를 차지하는 형식
  • x=20; 이면 00010100으로 2진수로 저장됨
  • 타입 → 변수가 가질 수 있는 값의 범위와 이 값에 대한 연산들의 집합을 의미
  • 영역 → 변수 x의 사용이 허락되는 범위
  • 수명 → 변수 x가 메모리 주소에 할당되어 있는 기간

변수 선언

  • 타입 변수이름 ; “ 으로 선언함
  • int x, y, z; 로도 선언이 가능함

변수 이름

  • 변수는 글자나 $, _ 로 시작해야함.
  • 영어 대소문자를 구분한다
  • 첫문자는 소문자, 다음 글자는 대문자 형식으로 작성하는 관례가 있음(maxSpeed)처럼
  • 문자수 길이 제한은 없음
  • 자바 예약어는 사용 불가함

자바 예약어

  • 자바에서 먼저 사용하고 있는 단어

값 저장

  • = 를 사용해서 저장함
  • score = 90; 은 score에 90의 값을 대입한다고 생각하면 됨
  • 변수가 최초로 저장될 때 메모리에 변수가 생성되는데 이를 초기화라고 말한다
  • 여기서의 값은 초기값이라고 한다
  • 선언을 하고 사용을 해야한다!
class Main {
  public static void main(String[] args) {
		int value;
		value = 20;
		int result = value + 10;
    System.out.println(result);
  }
}

변수 값 저장

int x = 3;
int y = 5;
System.out.println("x:" + x + ",y :" y);
// x:3, y:5

int temp = x;
x = y;
y = temp;
System.out.println("x:" + x + ",y :" y);
// x:5, y:3

로컬 변수(Local Variable)

  • 메소드 블록 내에서 선언된 변수를 로컬 변수라고 함

기본 타입

기본타입

  • 정수 타입 - byte, char, short, int, long
  • 실수 타입 - float, double
  • 논리 타입 - boolean

정수 타입

  • 메모리 사용 크기와 저장되는 값의 허용 범위가 달라 다양하게 있는 것이다.

  • byte 는 128이상의 숫자를 선언하면 오류가 발생할 것이다
  • long은 1000000000000 이 넘어가면 오류가 난다 허나 1000000000000L 처럼 L을 넣어주면 선언 가능 (Long 타입으로 처리)
  • char은 ‘~’ 에 넣어서 저장이 가능(문자), 이는 문자열이 불가능하기에 “”는 안됨
  • String a = “asdasd”; 와 같이 문자열은 String 을 활용

리터럴(Literal)

  • 소스 코드로 프로그래머가 직접 입력한 값
  • 2진수는 0b로 시작한다 (0b1011 = 11)
  • 8진수는 0으로 시작한다
  • 16진수는 0x로 시작한다 (0X2A0F = 10767)

escape문자

  • 문자열 내부에 \ 를 사용해서 특정 문자를 포함 시킬 수 있음
  • “나는 \”자바\”를 좋아합니다”; 는 나는 “자바”를 좋아합니다 로 출력이 됨
  • \t, \n, \r, \”, \’, \, 등이 있음

논리타입

  • boolean은 true와 false의 값을 가짐

타입 변환

  • double을 int로, String을 int로 변환하는 것

자동 타입 변환

  • 작은 허용 범위 타입이 큰 허용 범위 타입으로는 그냥 바로 대입이 가능하나
  • byte < short < int < long < float< double 순으로 대입하면 에러가 안난다
  • char타입인 경우는 ‘A’가 int에 들어간다(65로)

변수와 시스템 입출력

  • System.out 은 시스템의 표준 출력 장치로 출력
  • System.in은 시스템의 표준 입력 장치에서 읽음
  • System.in.read()로 입력값을 받을 수 있는데 이는 2개 이상 키다 조합된것을 못읽음
  • Scanner를 사용해서 단점을 보완하면 됨
Scanner scanner = new Scanner(System.in);
String inputDData = scanner.nextLine();
//이렇게 하면 enter이전까지 입력된 문자열을 읽는다

기본 타입의 값 비교와 문자열 비교

  • 기본타입은 ==
  • 무낮열은 equals()를 사용
profile
PM/PO

0개의 댓글