OneDev

[JAVA] 1.변수(Variable) : 선언, 초기화, 자료형, 형변환 본문

Language/JAVA

[JAVA] 1.변수(Variable) : 선언, 초기화, 자료형, 형변환

one_dev 2023. 1. 2. 17:45

1. 변수(Variablr)란?

변수란, 하나의 값을 저장할 수 있는 메모리 공간

 

2. 변수의 선언

3. 변수이름 명명규칙(naming convention) 

작성 규칙
첫 번쨰 글자는 문자이거나 '$', '_' 여야 하고 숫자로 시작할 수 없다 ● 가능한 예시 : price, $price, _name
● 불가능한 예시 : 1var, @num
영어 대소문자가 구분된다 firstname 과 firstName 은 다른 변수
첫 문자는 영어 소문자로 시작하되, 다른 단어가 붙을 경우 첫자를 대문자로 한다(관례) maxSpeed, firstName, carBodyColor
문자 수(길이)에 제한은 없다  
자바 예약어는 사용할 수 없다 (예시) true 는 예약어라 사용할 수 없지만 True는 사용 가능하다

이 외에 필수적인 것은 아니지만 자바 프로그래머들에게 권장하는 규칙들은 다음과 같다.

 

1. 클래스의 이름의 첫 글자는 항상 대문자로 한다.

- 변수와 메소드 이름의 첫 글자는 항상 소문자로 한다

2. 여러 단어로 이루어진 이름은 단어의 첫 글자를 대문자로 한다상수의 이름은 모두 대문자로한다.

- lastIndexOf, StringBuffer

3. 여러 단어로 이루어진 경우 '_' 로 구분한다.

- PI, MAX_NUMBER

4. 변수의 사용(초기화)

변수 선언과 초기화(Initialize)

int score; // 변수 선언
score = 90; // 값 저장(초기화)

- 변수를 사용하기 위해서는 먼저 변수를 선언해주어야 한다.

 

- 변수를 선언한 이후부터는 변수를 사용할 수 있으나, 그 전에 변수를 초기화(initialize) 해주어야 한다.

메모리는 여러 프로그램이 공유하는 자원이므로, 다른 프로그램에 의해 저장된 쓰레기값(garbage value)이 남아있을 수 있기 때문이다.

- 변수에 값을 저장할 때는 대입연산자 '=' 를 이용한다.

 

 

 

 

선언과 동시에 초기화할 수도 있다

- 변수의 종류에 따라 초기화를 생략하는 경우도 있지만, 변수는 사용되기 전에 적절한 값으로 초기화하는 것이 좋다

- 지역변수는 사용되기 전에 반드시 초기화를 해야하지만, 클래스변수와 인스턴스변수는 초기화를 생략할 수 있다

 

int score = 90;

 

● 변수값 읽기 : 변수는 초기화가 되어야 읽을 수 있다. 

 

※ 잘못된 코드 예시 ※

int value;  // 변수 value 선언(초기화 X)
int result = value + 10;


※ 위의 코드를 맞게 수정해보자 ※

int value = 30; // 변수 value 가 30으로 초기화됨
int result = value 10; // 변수 vlaue  값을 읽고 10을 더한 결과값(40)을 변수 result에 저장

●  변수의 사용 범위 : 변수는 중괄호 블록 { } 내에서 선언되고 사용

 

 

5. 리터럴(literal)

리터럴이란? ->  <"상수" 의 다른 이름 > 정도로 알고있으면 될 듯 하다.

12, 123, 3.14,  "A" 와 같은 값들을 "상수"와 구분하기 위해 붙인 다른 이름이다.

프로그래밍에서는 "상수" 를 '값을 한 번 저장하면 변경할 수 없는 저장공간'으로 정의하였기 때문에, 이 데이터들을 상수와 구분하기 위해 붙인 이름이 "리터럴"이다.

  • 소스 코드 내에서 직접 입력된 변수의 초기값(값 자체를 의미)  ↔상수(constant) = 값을 한번만 저장할 수 있는 공간
  • 종류 : 정수, 실수, 문자, 문자열, 논리
종류 예시
정수리터럴 10, -10, 10L, 0x6A
실수리터럴 12.5, 12.5f, 0.13E2
문자리터럴 'A', '1", '가'
문자열리터럴 "자바", "java"
논리리터럴 True, False

 

※ 리터럴이 있는데 굳이 상수가 필요한 이유?

 -> 상수는 리터럴에 "의미있는 이름"을 붙여서 코드의 이해와 수정을 쉽게 만든다. 

 

 

 

6. 데이터 타입

  기본형(primitive type) 

- 정수, 실수, 문자, 논리 리터럴을 직접 저장하는 타입

- 기본형에는 모두 8개의 타입(자료형)이 있으며 크게 논리형/문자형/정수형/실수형 으로 구분된다.

- 메모리의 최소 기억 단위인 bit 가 모여 byte 형

 

- 문자형인 char 형은 문자를 내부적으로 정수(유니코드)로 저장하기 때문에 정수형과 별반 다르지 않으며, 정수형 또는 실수형과 연산도 가능하다.

- 반면 boolean 형은 다른 기본형과 연산이 불가능하다.

- 정수형 데이터 중에서는 int형이 기본 자료형(default data type)이며, 실수형 중에서는 double 형이 기본 자료형이다.

7. 타입 변환(형변환)

● 데이터 타입을 다른 타입으로 변환하는 것

(예) byte ↔ int,  int ↔ double

● 종류

① 자동(묵시적) 타입 변환 : Promotion

-> 작은 데이터 타입은 큰 데이터 타입으로 자동 타입 변환 가능

 

 

※ 타입들의 대소관계 비교 :

 

② 강제(명시적) 타입 변환 : Casting

 

● 큰 타입을 작은 타입 단위로 쪼개기

● 끝의 한 부분만 작은 타입으로 강제적 변환

(예) int 를 byte에 담기

 

 

③ 연산식에서 자동 타입 변환

연산은 같은 타입의 피연산자간에만 수행

- 서로 다른 타입의 피연산자는 같은 타입으로 변환

- 두 피연산자 중 크기가 같은 타입으로 자동 변환

(Ex) int type으로 계산 결과를 얻고 싶다면?

☞ double type 변수를 먼저 int로 변환 후 계산

 

Comments