3. 자바(java) : 변수(Variable) 간단 정리

2024. 3. 26. 10:05·JAVA
목차
  1. 3. 변수(Variable)
  2. 1) 변수 사용하기
  3. 2) 변수 타입
  4. 3) 변수와 메모리 구조

 

3. 변수(Variable)

메모리(RAM)에 값을 기록하기 위한 공간

사람 이름 등 불특정한 값을 가져오기 위한 목적으로 생긴 원리로 공간을 미리 마련해둘 수 있음.

1) 변수 사용하기

변수 선언

유한한 메모리 공간에 지정된 타입의 데이터를 저장할 수 있는 공간을 할당하는 것

자료형 변수명; → 변수 타입 지정 + 변수명 지정 + 마침

값 대입과 리터럴

  • 값 대입: 생성한 변수(저장 공간)에 값을 대입하는 것 → 한 개의 데이터, 마지막 대입 값만 보관
    • 변수에 이미 저장된 값도 새로운 변수에 저장할 수 있다
  • 리터럴: 변수에 대입되는 값 자체

변수 초기화(initialize)

변수를 사용하기 전에 처음으로 값을 저장하는 것

지역변수local variable (메소드 안 변수)는 반드시 초기화 해야 사용 가능

참조변수는 null로 선언 가능.

변수 명명 규칙

회사에서 별도로 지정되어 있을 수도 있음.

  • 숫자로 시작 불가
  • 공백, 예약어 사용 불가
  • 소문자로 시작하는 낙타 표기법(carmel case)
    • 첫 번째 단어는 소문자로 시작하고 그 이후 각 단어는 대문자로 시작 → 대소문자 구분
  • 의미가 있는 내용으로 기억하기 쉽게 명명하는 것이 일반적.
  • 길이 제한은 없음.
  • 특수 기호는 언더바(_)와 달러($)만 사용 가능
  • 같은 영역에 있을 때는 중복되면 안됨

2) 변수 타입

★ 기본 자료형

진한 색상은 defalt 타입

    • char는 문자임에도 정수 타입에 포함됨 ⇒ 작은 따옴표(’)
    • String은 글자가 몇 개 올지 모르기 때문에 참조 타입 ⇒ 큰 따옴표(”)로 감싸면 자바는 문자열로 인식함
      • 개행된 문자열 문단을 출력하고 싶을 때 “””를 사용할 수 있다
      • String test2 = """ <html> <head> </head> <body> <h1> 안녕 %s 나이는 %d짤 님아 방가방가 </h1> </body> </html> """;
    • float와 long은 해당 타입의 값이라는 것을 표현하기 위해 알파벳이 붙어야 함 → 그냥 숫자만 입력하면 자동으로 int와 double로 인식되기 때문변수 타입에 따라 변수에 저장할 수 있는 값의 종류와 허용 범위가 달라짐
    기본타입 정수 타입 byte, char, short, int, long
    실수 타입 flout, double
    논리 타입 boolean
    참조타입 기본 타입을 제외한 배열, 열거, 클래스, 인터페이스 등

★ 참조 자료형

: 객체의 번지를 참조하는 타입으로 클래스 객체이다.

  • 참조형은 대부분 16바이트이므로 원시형에 비해 크기가 크다
  • 실제 데이터가 있는 주소를 참조하고 있으므로 실제 데이터에 접근하기 위한 부가 작업이 추가로 필요하다

⇒ 원시형보다 속도가 느리다 (코딩 테스트에서는 원시형이 유리)

⇒ 값끼리 비교할 때 ==를 사용할 수 없으므로 compareTo()메소드를 사용해야 한다.

원시형과 참조형 비교

//원시형 자료가 참조형으로 오토박싱이 되기 때문에 아래와 같이 바로 선언이 가능하다
Integer b = 7;

String 타입

: 변수에 문자열 리터럴을 대입한 경우

  • “”로 묶여 있으면 문자열로 인식되어 자바는 String 객체를 이용하여 저장함. ⇒ String 객체로 생성 → 변수가 String 객체를 참조(힙 영역 생성)
  • 하나라도 문자열이 포함되면 전체를 문자열로 인
  • 문자열 리터럴이 동일하면 같은 String 객체를 공유
  • 참조를 잃은 String 객체는 쓰레기 수집기를 통해 메모리에서 자동 제거됨 = 쓰레기 객체

String 클래스는 유용한 기능(메소드)를 제공함

  1. String 변수에 저장된 문자열의 길이를 알려주는 기능(메소드)
    1. .length()
  2. 문자열 변수에 저장된 특정문자 한개만 가져오는 기능(메소드)
    1. .charAt();
    2. 0번째부터 카운트 시작

참조타입 변수의 ==, != 연산 : 동일 객체를, 또는 다른 객체 참조하는지 알아볼 때 사용

  • ==: 같으면 트루, 다르면 폴스
  • != : 같으면 폴스, 다르면 트루
  • null: 아무것도 참조하지 않을 경우 또는 null로 초기화된 경우
  • 참고: 단순 문자열 비교시에는 equals()라는 메소드 사용

다음 타입은 실무에서 거의 사용하지 않음

  • byte, short: 표현 길이가 너무 작음. 자바는 기본적으로 int를 효율적으로 계산하도록 설계되어 있음
    • 다만 파일이 바이트 단위이므로 파일 전송, 파일 복사 등에 주로 사용됨
  • float : 표현 길이와 정밀도가 낮다. 실수형은 double을 이용하자
  • char : 문자 하나를 표현할 일은 거의 없다. 대신 문자열을 사용할 수 있다
    • 예) String a = "b"처럼 사용하면 된다

자주 사용하는 타입

  • 정수: int, long / 20억이 넘을 것 같으면 long 사용
  • byte: 파일 다룰 때 사용
  • 실수 : double

타입별 기본값

  • double = 0.0;
  • char = ‘ ‘;
  • String = null;

3) 변수와 메모리 구조

데이터 저장 단위

비트(bit)

컴퓨터의 최소 저장 단위이며 2진수 값 하나 저장할 수 있는 메모리 공간

바이트(byte)

컴퓨터의 최소 데이터 처리 단위, 8비트 = 1바이트

변수 저장 가능 범위(참고)

| Static(공용)

- 클래스 변수

- 프로그램이 실행되면 무조건 공간이 생김(객체 생성 없이도)

- static 변수로 선언하면 스택 영역에서 공용으로 이용이 가능함

| Heap

- 장소만 알면 언제든지 접근 가능한 영역

- GC가 알아서 안쓰는 항목 정리하여 메모리 확보

- 값을 입력하지 않으면 강제 초기화가 진행되고, 초기화하지 않으면 알아서 자료형에 따른 기본값이 저장됨(배열)

- 필드, 멤버, 변수, 객체와 배열(객체)이 생성되는 영역

- new 참조형 객체로 생성하면 주소값이 저장된 A와 실제 내용이 저장된A가 별도로 저장된다

- 초기값

  • 기본 자료형: 숫자 디폴트 0, 논리형 디폴트 false
  • 참조 자료형: null (String 등)
    • null값은 없는 거나 마찬가지인 쓰레기 값이라서 접근해서 사용이 불가능함
    • 다만 ==로 비교는 가능

| Stack

- 메인 메소드와 변수들이 저장되는 곳 = 메인 스택

- 서로 접근하려면 매개 변수 선언으로만 가능.

- 지역변수

- 메소드가 호출되면 프레임 추가되고, 메소드 종료되면 프레임 제거됨

- 강제 초기화되지 않음 → 초기화되지 않은 상태로 출력 시도시 오류 발생

  • 예외: 프로그램 실행 중 발생하는 오류
    • NullPointException: 참조 변수가 null인 상태에서 존재하지 않는 객체의 데이터나 메소드 사용할 경우 발생하는 에러 ⇒ 해당 참조 변수가 객체를 참조하도록 수정하면 해결됨
반응형

'JAVA' 카테고리의 다른 글

6. 자바(java) : 제어문(Control Statement) 간단 정리  (0) 2024.03.28
5. 자바(java) : 연산자(Operator) 간단 정리  (2) 2024.03.27
4. 자바(java) : 형변환(casting) 간단 정리  (0) 2024.03.27
2. 자바(java)의 기본 구조, 클래스 개요 정리  (0) 2024.03.21
1. 자바(java) 기본 개념 알아보기 :: 언어 특징, 개발환경 관련 용어 간단 정리  (0) 2024.03.20
  1. 3. 변수(Variable)
  2. 1) 변수 사용하기
  3. 2) 변수 타입
  4. 3) 변수와 메모리 구조
'JAVA' 카테고리의 다른 글
  • 5. 자바(java) : 연산자(Operator) 간단 정리
  • 4. 자바(java) : 형변환(casting) 간단 정리
  • 2. 자바(java)의 기본 구조, 클래스 개요 정리
  • 1. 자바(java) 기본 개념 알아보기 :: 언어 특징, 개발환경 관련 용어 간단 정리
JinHyung-dev
JinHyung-dev
틈틈이 기록하고 있습니다!!
  • JinHyung-dev
    JinHyung's 블로그
    JinHyung-dev
  • 전체
    오늘
    어제
    • 분류 전체보기 (34)
      • JAVA (18)
      • Oracle DataBase (12)
      • 프리코스 (4)
      • 백엔드 개발자 (0)
        • 신입 (0)
  • 인기 글

  • 반응형
  • 최근 댓글

  • 최근 글

  • 태그

    DB
    백엔드
    자바
    oracle
    공부
    개발자
    Java
    SQL
    요약
    정리
  • hELLO· Designed By정상우.v4.10.0
JinHyung-dev
3. 자바(java) : 변수(Variable) 간단 정리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.