변수(variable)

이한수·2022년 2월 25일
0

JAVA

목록 보기
4/9

개인적으로 공부한 내용을 정리 중입니다.

1.변수?

단 하나의 값을 저장할 수 있는 메모리상의 공간.
선언되는 변수 타입에 알맞은 크기의 저장공간이 확보된다.

2.변수 이름?

말 그대로 변수에 붙이는 이름이다. 변수는 값을 저장하기 위한 메모리 공간이라고 앞서 설명했듯이
이 메모리 공간에 이름을 붙여주는것을 의미한다.

왜?? 그래야 그 메모리 공간에 값을 저장하고 읽어올 수 있어서.

변수 선언 -> ex) int age
즉, 자료형을 명시하여 메모리공간 확보와 변수이름을 지정한 이 형태를 선언이라고 한다.

변수 초기화 -> 선언된 변수안에 값을 담아주는 것을 의미한다. ex) age = 10;

3.변수 이름 규칙?

  • 길이에 제한이 없으며 소문자로 시작해야 한다.
    만일, 여러 단어가 연결되어 있을시 연결단어의 경우 첫 글자만 대문자로 처리한다.
  • java에서 사용중인 기존 예약어는 사용불가하다 (ex) true
  • 숫자로 시작해서는 안된다.
  • 특수문자는 '_' 와 '$' 만을 허용한다.

4.변수타입

1)기본 자료형

2)참조 자료형

  • 객체의 주소를 저장한다.
    이때, 기본 자료형들은 자료형에 따라 사용하는 메모리가 다른것에 비해 ,
    객체의 주소를 저장하므로 항상 4byte를 사용한다.

5.기본 자료형

1)boolean(1byte)

  • true 와 false 2가지의 값만 표현한다. (기본값 false)

참고 : 1bit만으로 충분하지만 자바에서는 데이터를 다루는 최소단위가 1byte이기 떄문에 boolean의 크기도 1byte다.

2)char (2byte)

  • 내부적으로 정수(유니코드)로 저장하므로 정수형과 별반 다르지 않다.
    다만, 정수형과 달리 음수를 나타낼 필요가 없으므로 , 표현할 수 있는 값의 범위가 다르다.
  • 정수형 또는 실수형과 연산도 가능하다.

3)int (4byte)

  • 정수의 기본타입으로 사용된다.
    왜?? cpu가 가장 효율적으로 처리할 수 있는 타입이기 때문이다.

    참고 : 효율적인 실행보다 메모리를 절약하려면 byte나 short를 사용하는 것이 바람직하지만
    값의 범위가 너무 작아 연산 시에 범위를 넘어 잘못된 결과를 얻기 쉽다.

4)long(8byte)

  • 값을 대입할 때'l' 혹은 'L'을 뒤에 붙여야 한다.
    대소문자 상관없으나 , 대문자로 사용하여 혼동을 방지하자.

5)double(8byte)

  • int처럼 실수에서의 기본 자료형이다.
  • long처럼 접미사 'd' 혹은 'D'가 필요하나 기본자료형이므로 생략 가능하다.

6)float(4byte)

  • 'f' 혹은 'F'의 접미사가 필요하다.

6.형변환

형변환이란 변수 또는 상수의 타입을 다른 타입으로 변환하는 것을 말한다.
기본적으로 , 형변환 하려는 변수나 리터럴의 앞에 변환하려고 하는 타입을 ()와 함께 붙여주면 된다.
ex) (타입) 피연산자

정수형 변환시

  • 정수형의 경우 byte -> short -> int -> long로 자동 형변환이 가능하다.
    ex) short sh = 10 ; int a = sh;

  • 반대의 경우에는 타입을 명시하고 형변환을 해줘야 한다.
    ex) int a = 10 ; short sh = (short)a;
    단, 변수의 메모리가 작아지는 타입으로 이동하기에 변경되는 자료형에서 표현할 수 있는 값의 범위를 넘어설 경우 데이터의 손실이 발생할 수 있다.

  • 실수형으로 변환시에는 더 자동 변환이 가능하다. 실수형에서 정수형으로 올때는 명시하고 변경해줘야 한다.
    이때 실수에서 정수로 넘어오는 경우에는 실수의 소숫점 부분은 사라진다.

  • char도 내부적으로 정수를 저장하기에 정수형 자료형과 형변환이 가능하다.


그외 내용

상수

  • 변수와 같이 값을 저장할 수 있는 공간이지만 , 한번 값을 저장하면 다른 값으로 변경이 불가능 하다.
  • 선언방법은 변수와 같으나 변수 타입 앞에 'final' 키워드를 사용해야 한다.
  • 상수 이름은 대문자로 작성해야 하며 , 연결 단어는 '_'로 연결한다.

리터럴

  • 그 자체로 값을 의미한다.

문자 인코딩과 디코딩

1)문자 인코딩

  • 문자를 유니코드로 변환하는 것.

2)문자 디코딩

  • 코드를 문자로 변환하는 것.

고로 , 문자를 저장할 떄는 인코딩을 해서 숫자로 저장하고 , 저장된 문자를 읽어올 떄는 디코딩을 해서 숫자를 원래의 문자로 되돌려야 한다.

profile
성실하게

0개의 댓글