개발 공부 기록

[java] 변수, 자료형 본문

프로그래밍 언어/java

[java] 변수, 자료형

좨랭이 2021. 8. 31. 00:29

변수

 

 변수란

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

 

 변수사용 목적 

 - 가독성이 좋아짐

 - 재사용성 증가로 인한 코드량 감소/유지보수 용이

 

 변수의 선언

 - 메모리 공간에 데이터를 저장할 수 있는 공간을 할당하는 것 

        자료형      변수명;

    변수타입지정    변수명지정 

 

 자료형(TYPE)

 - 어떤 값을 저장할지, 어떤 크기의 메모리를 할당받을지에 대한 정보

- 대체로 정수형은 int, 실수형은 double을 사용

- String 

 참조형 : 저장되기 전까지 얼마만큼의 메모리가 저장될지 모르기 때문에

            참조값(주소)를 변수에 저장하고, 참조값을 통해서 문자(데이터)에 접근

 

 

  데이터 저장 단위

자료형 범 위 크기(bit) 기본 값
  boolean true, false 8 false
char 0~65,535(유니코드문자) 16 '\n0000'
byte -128 ~ 127 8 0
short -32,768 ~ 32,767 16 0
int -2,147,483,648 ~ 2,147,483,647 32 0
long -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 64 0L
float ±1.4E-45 ~ 3.4E38 32 0.0f
double ±4.9E-324 ~ 1.8E308 64 0.0 또는 0.0d

  - bit : 컴퓨터가 나타내는 데이터저장 최소단위, 2진수값 하나를 저장할 수 있는 메모리 공간

  - byte : 데이터 처리 또는 문자의 최소단위로서 8개의 비트가 모여 하나의 바이트 구성

 1byte = 8bit 

** 자료형의 범위 확인하는 법 

 

변수 명명 규칙

 - 대소문자가 구분되면 길이 제한이 없다.

 - 예약어를 사용하면 안 된다. ex) 변수, 클래스, 메소드 등등

 - 숫자로 시작하면 안된다.

 - 특수문자는 '_'와 '$'만 허용한다.  // '$'는 내부 클래스에서 사용,  '_'사용 시 에러는 없지만 관례상 사용X

 - 여러 단어 이름은 단어의 첫 글자를 대문자로 한다. (카멜케이스)

   단, 첫 시작 글자는 소문자로 하는 것이 관례이다.

                       

 

 값 대입과 리터럴

 - 값 대입 : 생성한 변수(저장 공간)에 값을 대입하는 것 // 변수는 한 개의 데이터만 보관, 마지막에 대입한 값만 보관

 - 리터럴 : 변수에 대입되는 값 자체

 

 

 변수의 초기화

 - 변수를 사용하기 전에 처음으로 값을 저장하는 것  -> 지역변수(메소드 안 변수)는 반드시 초기화 해야함

선언 후 초기화 선언과 동시에 초기화
int = age;  int age = 100;
age = 100;

 - 선언 후 초기화

- 선언과 동시에 초기화

 ** 문자열의 초기화

  String name = "홍길동";

  String name = new String("홍길동");   

   두 가지 방법으로 초기화 가능

  // String은 new라는 키워드없이 생성할수 있는 유일한 클래스

 

 

 오버플로우

 - 변수의 표현 가능한 범위를 넘어 간 경우

 

 

(byte) 자료형이 int인 값을 계산하기 위해 형변환한다.

 

 

 

bNum + 1 은 128이 아닌 -128

 

 

상수

 - 수학에서는 변하지 않는 값 의미

 - java에서는 한 번만 저장(기록)할 수 있는 메모리 의미

 - 값이 변경되는 걸 원하지 않는 경우

 - 대부분 변수명을 대문자로 표현                                                

 

 

 

 

 

 

final 선언 -> 상수

선언, 초기화는 변수와 동일

 

 

 

 

상수인 AGE 값을 변경하면 에러가 뜸!

 

 


Application에 클래스 생성 방법

 

 

 

 

1. 클래스 생성 -> 매소드 호출

 주소값을 변수(variable)에 담아놨기 때문에

 여러번 호출할 수 있음

 

 

 

2. 주소값에서 바로 호출 

 클래스를 생성하면서 메소드 바로 호출

 한번사용할 때 유리