Home > Backend > Java > ☕️[Java] 프로그래밍 언어와 자바

☕️[Java] 프로그래밍 언어와 자바
Java Programming Language Backend

변수 선언.

  • 컴퓨터 메모리(RAM)은 수많은 번지들로 구성된 데이터 저장 공간입니다.
  • 프로그램은 데이터를 메모리에 저장하고 읽는 작업을 비번히 수행합니다.
    • 이때 데이터를 어디에, 어떤 방식으로 저장할지 정해져 있지 않다면 메모리 관리가 무척 어려워집니다.
      • 이 문제를 해결하기 위해 변수(Variable)을 사용합니다.

  • 변수(Variable)는 하나의 값을 저장할 수 있는 메모리 번지에 붙여진 이름입니다.
  • 변수를 통해 프로그램은 메모리 번지에 값을 저장하고 읽을 수 있습니다.

  • 자바의 변수는 다양한 타입의 값을 저장할 수 없습니다.
    • 즉, 정수형 변수에는 정수값만 저장할 수 있고, 실수형 변수에는 실수값만 저장할 수 있습니다.

  • 변수를 사용하려면 변수 선언이 필요합니다.
    • 변수 선언은 어떤 타입의 데이터를 저장할 것인지 그리고 변수 이름이 무었인지 결정하는 것입니다.
      int age; // 정수(int) 값을 저장할 수 있는 age 변수 선언
      double value; // 실수(double) 값을 저장할 수 있는 value 변수 선언
      
  • 변수 이름의 첫 번째 글자가 문자여야 하고, 중간부터는 문자, 숫자, $, _를 포함할 수 있습니다.
    • 또한, 첫 문자를 소문자로 시작하되 캐멀 케이스로 작성하는 것이 관례입니다.

  • 변수가 선언 되었다면 값을 저장할 수 있습니다.
    • 이때 대입 연산자인 =를 사용합니다.
    • 수학에서 등호(=)는 ‘같다’라는 의미이지만, 자바에서는 우측 값을 좌측 변수에 대입하는 연산자로 사용됩니다.
      int score; // 변수 선언
      score = 60; // 값 대입
      
  • 변수 선언은 저장되는 값의 타입과 이름만 결정한 것이지, 아직 메모리에 할당된 것은 아닙니다.
    • 변수에 최초로 값이 대입될 때 메모리에 할당되고, 해당 메모리에 값이 저장됩니다.

  • 변수에 최초로 값을 대입하는 행위를 변수 초기화라고 하고, 이때의 값을 초기값이라고 합니다.
    • 초기 값은 다음과 같이 변수를 선언함과 동시에 대입할 수도 있습니다.
      int score = 90;
      
  • 초기화되지 않은 변수는 아직 메모리에 할당되지 않았기 때문에 변수를 통해 메모리 값을 읽을 수 없습니다.
    • 따라서 다음은 잘못된 코딩입니다.
      int value; // <- 1.변수 value 선언
      int result = value + 10; // <- 2.변수 value 값을 읽고 10을 더해서 변수 result에 저장
      
  • 1 에서 변수 value가 선언되었지만, 초기화되지 않았기 때문엔 2 value + 10에서 value 변수값은 읽어올 수 없습니다.
    • 따라서 위 코드는 다음과 같이 변경해야 합니다.
      int value = 30; // 변수 value가 30으로 초기화됨
      int result = value + 10; // 변수 value 값(30)을 읽고 10을 더해서 변수 result에 저장
      
  • 다음 예제는 초기화되지 않은 변수를 연산식에 사용할 경우 컴파일 에러(The local variable value may not have been initializer)가 발생하는 것을 보여줍니다.
    public class VariableInitializationExample {
      public static void main(String[] args) {
          // 변수 value 선언
          int value;
            
          // 연산 결과를 변수 result의 초기값으로 대입
          int result = value + 10; // <------- 컴파일 오류
            
          // 변수 result 값을 읽고 콘솔에 출력
          System.out.println(result);
      }
    }
    
  • 변수는 출력문이나 연산식에 사용되어 변수값을 활용합니다.

  • 다음 예제는 변수를 문자열과 결합 후 출력하거나 연산식에서 활용하는 모습을 보여줍니다.
    ```java
    public class VariableUseExample {
    public static void main(String[] args) {
    int hour = 3;
    int minute = 5;
    System.out.println(hour + “시간” + minute + “분”);

      int totalMinute = (hour*60) + minute;
      System.out.println("총" + totalMinute + "분");   } }
    

// 실행 결과
// 3시간 5분
// 총 185분

- 변수는 또 다른 변수에 대입되어 메모리 간에 값을 복사할 수 있습니다.
    - 다음 코드는 변수 x 값을 변수 y 값으로 복사합니다.
```java
int x = 10; // 변수 x에 10을 대입
int y = x; // 변수 y에 변수 x값을 대입
  • 다음 예제는 두 변수의 값을 교환하는 방법을 보여줍니다.
    • 두 변수의 값을 교환하기 위해서 새로운 변수 temp를 선언한 것에 주목합시다.
      ```java
      public class VariableExchangeExample {
      public static void main(String[] args) {
      int x = 3;
      int y = 5;
      System.out.println(“x:” + x + “, y:” + y);

      int temp = x;
      x = y;
      y = temp;
      System.out.println(“x:” + x + “, y:” + y);
      }
      }

// 실행 결과
// x:3, y:5
// x:5, y:3
```