개발 공부 기록
[java] 변수, 자료형 본문
변수
변수란
- 메모리(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. 주소값에서 바로 호출
클래스를 생성하면서 메소드 바로 호출
한번사용할 때 유리
'프로그래밍 언어 > java' 카테고리의 다른 글
[java] 필드, 생성자, 메소드, (0) | 2021.09.07 |
---|---|
[java] 객체 지향 언어, 클래스, 캡슐화, getter, setter (0) | 2021.09.01 |
[java] 배열 (0) | 2021.09.01 |
[java] 이클립스 설정, 프로그래밍 기초 (0) | 2021.08.30 |
[java] 프로그래밍 기초, 개발 환경 구축, 이클립스 설치 (0) | 2021.08.28 |