변수(Variable)

jangwonjung·3일 전
0

수업 내용 정리

목록 보기
2/4

변수를 선언하고 사용해보자.

변수(Variable)

  • 변수는 하나의 값을 저장하기 위한 메모리 공간이다.
  • 변수를 사용하는 이유
    • 가독성
    • 재사용성 증가
    • 코드량 감소
    • 유지보수 용이

변수의 종류

기본형 변수

  • 실제 값(literal)을 저장

1. 문자형

char

  • 2 ¹⁶ (2byte)
  • 하나의 문자만을 담을 수 있다.

2. 정수형

byte

  • 2 ⁸ (8bit)
  • 128 ~ 127 (0포함)
  • 1 byte

short

  • 2 ¹⁶
  • 32768 ~ 32767
  • 2 byte

int

  • 정수 기본형
  • 2 ³²
  • 2147483648 ~ 2147483647
  • 4 byte

long

  • 2 ⁶⁴
  • 9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
  • 8 byte

3. 실수형

float

  • 4 byte
  • 소수점이하(가수부) 7자리 유효
  • 0.123456789

double

  • 8byte
  • 소수점이하(가수부) 16자리 유효
  • 실수 기본형

4. 논리형

boolean

  • 1 byte
  • true | false 두가지

참조형 변수

  • 값을 갖지 않고 어딘가를 참조하는 주소값을 갖는다.
  • 기본형 8가지를 제외한 모든 타입(class)
  • 4byte 고정

변수 사용법

1. 변수 선언

메모리 공간에 데이터를 저장할 공간을 할당.

자료형 변수명 ;

변수 명명 규칙

  1. 대소문자가 구분되며 길이 제한이 없다.
  2. 예약어를 사용하면 안된다.
  3. 숫자로 시작하면 안된다.
  4. 특수문자는 _$만을 허용한다.
  5. 여러 단어 이름은 첫 글자를 대문자로 한다. 단, 첫 시작 글자는 소문자로 시작하는 것이 관례이다. (camelcasing)
  • 직관적인 변수명을 선언해줘야 좋다!

2. 값 대입(초기화)

  • 생성한 변수(저장공간)에 값 대입 ! (= 대입연산자 : 우항을 좌항에 대입한다)
  • 변수는 마지막에 대입한 한 개의 값 만 보관

선언 후 초기화

int age;
age = 30;

선언과 동시에 초기화

int age = 30;

Data Overflow

int i = Integer.MAX_VALUE; //int의 최댓값
i = i + 1; // 최댓값에 1을 더함
system.out.println(i);

// 최솟값인 -2147483648 출력

상수(Constant Variable)

  • 수학에서는 변하지 않는 값을 의미한다.
  • final 키워드 사용 (추후 객체지향에서 자세하게 다룰 예정)
  • 변수명은 모두 대문자

3. 사용

형변환

컴퓨터 작동원리

  1. literal(값)은 동일한 타입의 변수에만 대입가능
    • boolean bool = 123; ( X )
  2. 동일한 타입끼리만 연산 가능
    • 다른 타입은 형변환 후 연산 가능
  3. 동일 타입의 연산 결과도 동일 타입

자동 형변환

  • 형변환 시 데이터 손실이 없는 경우

char 타입은 ascii code, unicode 에 근거해 int 변환

자동형변환 예외상황
  • int 하위의 자료형은 연산시 모두 int로 변환되어 처리
  • byte + byte → int + int 로 자동변환
  • byte로 얻고싶다면? byte b3 = (byte) (b1 + b2);
 	byte b1 = 10;
    byte b2 = 20;
    byte b3 = (byte) (b1 + b2); // byte + byte -> int + int -> int
    System.out.println(b3);
    		
    char a = 'a'; // 97
    char b = 'b'; // 98
    System.out.println(a + b);
    		
    char A = (char) 65; // (char) 생략해도 잘 작동한다.
    System.out.println(A);
    		
    // char + 문자열 -> 문자열
    // char + 정수 -> 정수
    System.out.println('a' + "bcdefu"); // "abcdefu"
    System.out.println('a' + 10000); // 10097
    System.out.println(100 + 'a' + "bcd"); // 197bcd
    System.out.println(100 + ('a' + "bcd")); // 100abcd

명시적 형변환

  • 데이터 손실이 있는 경우 명시적 형변환
    int n = (int) 123.456;
                // 실수의 기본형은 double이므로 123.456 = double
    						// int로 변환한다면 123이 됨
    ```
    
    - 더 큰 타입으로 명시적 형변환
    
    ```java
    int a = 10;
    int b = 4;
    int c = a / b; // a를 b로 나눈 몫 = 2
    
    double d = a / b;
    // 2가 됨. int (a/b) = 2이므로 double 형변환 하더라도 2
    
    // 2.5를 얻고 싶다면? **더 큰 타입으로 명시적 형변환**
    double d = (double) a / b;
    // 둘중 하나만 해도 됨
    // int /int 연산에서 -> 10.0(double) / 4(int) 연산
    // 이 경우 int가 double로 자동 형변환 -> double / double
    // 10.0 / 4.0 -> 2.5
  • Date Overflow 방지

String

: 연속된 문자값

  • java.lang.String
    • 참조형 변수지만 객체대입 없이 리터럴로 문자열 객체 생성 가능
      String a = new String(”기차”);
      String a = “기차”;
  • " 쌍따옴표로 감싼다 "
  • “ “ 빈 문자열도 가능
  • 더하기 연산 → 연결처리
  • 다른 어떤 타입과 더해도 결과는 String

문자열의 비교

동등비교연산자 (==) 가 아닌 equals 메소드 사용!

    str1.equals(str2);
profile
저는 백엔드 개발자 지망생입니다. 기술을 발전시켜 개인의 역량을 키우고 싶습니다. 지금은 KH정보교육원에서 (디지털컨버전스)자바(JAVA)기반 공공데이터 융합 개발자 양성과정A을 수강하고 있습니다.

0개의 댓글