본문 바로가기

백엔드 개발자 기록 일람/java 학습 기록

03. Java 변수와 자료형

저번에는 자바프로그램의 구조에 대해 알아보았다. 이번에는 자바의 프로그램의 요소오쇼을 체워넣는 변수에 대해 알아보자.

 

변수

변수(variable)는 데이터를 담아두는 상자로 생각할 수 있다. 변수는 어디에 필요할까? 사용자가 입력한 값을 저장할  때도 필요하고 계산 도중에 중간 결과를 저장할 때도 필요하다. 그런 변수들은 사용하기전, 반드시 미리 선언되어야 한다.

변수 선언이란 컴파일러에게 어떤 변수를 사용하겠다고 미리 알리는 것이다. 선언을 하게되면 컴파일러는 변수의 자료형에 맞는 기억 공간을 미리 확보한다. 단일 변수를 선언하지 않고 사용하게 되면 컴파일 오류가 발생한다. 변수를 선언하는 방법은 원하는 자료형을 쓰고 이어서 변수이름을 쓰면된다. 

 

식별자 만들기

식별자(identifier)란 클래스, 메소드, 변수의 이름을 의미한다. 식별자는 프로그래머가 마음대로 지을 수 있지만 몇가지의 규칙을 지어야한다. "키아나", "브로냐" 등의 이름이 사람을 시별하듯 식별자는 변수와  변수, 메소드와 메소드를 구별하는 역활을 한다.

식별자는 다음과 같은 규칙을 따라 만들어야한다.

▶ 알파벳 문자와 숫자, 밑줄 문자_로 이루어진다. 한글이름도 가능하다.

▶ 첫번째 문자는 반드시 알파벳 또는 밑줄 문자_이여야 한다. 숫자로 시작할 수 없다.

▶ %, &, @ 같은 특 수문자는 사용할 수 없다. 단 '$'와 '_'는 가능하다.

▶ 대문자와 소문자를 구별하여 서로 다른 것으로 취급한다. 따라서 변수 index와  Index, INDEX, InDex는 모두 서로 다른 변수이다.

▶ 자바 언어 키워드,(if, for, while, true, null...)와 같은 이름은 허용되지 않는다.

 

※식별자의 관례

클레스명 - 각 단어의 첫글자는대문자로 한다.

변수명, 메소드명 - 첫 단어의 첫글자는 소문자로 시작하고 두 번쨰 단어부터는 단어의 첫 글자를 대문자로한다.

상수 - 상수는 모든 글자를 대문자로 한다.

 

자료형

자료형(data type)은  변수에 저장되는 데이터의 타입을 의미한다. 변수를 게임이라고 가정했을 경우, 자료형은 게임의 장르와 플랫폼을 나타낸다고 할 수 있다.   자바에는 크게 기초형(primitive type)과 참조형(reference type)의 자료형이 있다. 기초형은 다시 정수형, 실수형, 문자형, 논리형으로 분류할 수 있고 참조형에는 클래스 배열, 인터페이스가 있다. 기초형의 변수에는 변수의 값이 저장되어있으나 팜조형의 변수에는 객체를 참조할 수 있는 값이 저장되어 있다.참조값은 대개 객체의 주소지만 다른 형태의 참조값도 가능하다. 

 

기초형
byte   부호있는 정수   1바이트   -128 ~ 127
short   부호있는 정수   2바이트   -32768 ~ 32767
int   부호있는 정수   4바이트   -2147483648 ~ 2147483647
long   부호있는 정수   8바이트   -9223372036854775808 ~ 9223372036854775807
float   부동소수점형   8바이트   -128 ~ 127
double   부동소수점형   8바이트   -32768 ~ 32767
char   문자타입   1바이트    'a',  'A', 'ㄱ', '한', '韓'  
boolean   논리타입   2바이트   ture, false

 

문자형

특이한 점으로 자바에서 문자열은 기초형이 아니다. 문자열은 String 클래스를 사용한다.


char ch 1 = '가';      // 2바이트
char ch 2 = '\uac00';  // '가'를 나타낸다.
char ch 3 = 'a';       // 2바이트

 

리터럴(literal)이란, x=100; 에서 100과 같이 소스 코드에 직접 쓰여 있는 값을 의미한다. 리터럴에는 정수형, 부동소수형, 문자형 등의 여러가지 타입이 있다.

 

정수형 리터럴

10진수 : 14,16,17

8진수: 012, 013, 014

16진수: 0xe, 0x10, 0x11

2wlstn: 0b1100

 

또한 JDK 7부터는 정수형  리터럴 안에 밑줄 기호가 포함될 수 있다.

 

부동소수점 리터럴

부동소수점형 리터럴은 기본적으로 double으로 이루어 져 있다. 일반 표기법이나 지수 표기법으로 표현될 수 있다. 예를 들어서 빛의 소토인 300000은 3e5와 같이 지수를 사용하여 표기해도 된다. 3e5는 3x 10^5를 나타낸다.

 

논리형 히터널

논리형은 참과 거짓을  나타내는데 사용된다. 논리형은 true와   false만 사용할 수 있다.

 

상수

상수(constant)란 프로그램이 실행하는 동안, 값이 변하지 않는   수 또는 변경 불가능한  수를 의미한다.리터널도 상수의 일종이다. 자바에서는 final 키워드를 이용하여 변수 정의를 상수 정의로 변경할 수 있다. 변수를 선언할 때 앞에 fanal을 붙이면, 기호상수가 된다. dinal 키워드는 변수에 값이 대입되고 나면 변수의 값이   더 이상 변하지  않는다는 것을 의미한다.

 

문자열

문자열(string)은 문자들의 모임이다. 예를 들어서 문자열 "Hello"는 H,e,l,l,o 등의 5개의 유니코드 문자로 구성되어 있다. 하지만 자바 언어에는 내장된 문자열 자료형이 없다. 대신에 String 클래스가 제공된다.String  클래스는 문자열을 나타내는 자료형이며, 이곳에 문자열 변수를 생성하고 저장할 수 있다.

 

형변환

때로는 하나의  자료형을 다른   자료형으로 변환하는 것이 필요하다. 이것을 형변환(type conversion)이라고 한다. 형변환은 자동적으로 발생하기도 하고 개발자가 강제적으로 형변환 할 수도 있다.

 

자동적인 형변환

컴퓨터에서는 산술적인 연산을 하기 전에 피연산자의 타입을 통일하여야 한다. 컴퓨터에서 정수 계산 하드웨어와 실수 계산  하드웨어는 완전히 다르다. 수식을 계산할 때는 가장 범위가 넒은 피연사자의 타입으로 변환한다.

 

강제적인 형 변환

강제적인 형변환을 하려면 형변환연산자를 사용해야한다. 변환이라는 값의 앞에 원하는 자료형을 넣어두면 된다.

'백엔드 개발자 기록 일람 > java 학습 기록' 카테고리의 다른 글

05. Java If- else 문  (1) 2023.12.27
04. Java 수식과 연산자  (1) 2023.12.21
02. Java 프로그램의 구성 요소  (0) 2023.12.19
01. Java 가상기계  (0) 2023.12.16
00. JAVA  (0) 2023.12.15