Notice
Recent Posts
Recent Comments
05-17 21:28
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

Byeol Lo

Computer Language - Variables & Types & Constant 본문

Programming Language/Java

Computer Language - Variables & Types & Constant

알 수 없는 사용자 2023. 2. 28. 14:48

 모든 프로그래밍 언어는 자원을 관리하는 방법, 코드, 컨벤션을 제공한다. 해당 포스트은 데이터를 저장하는 방법을 알아본다.

 

Variables (변수)

선언 방법은 다음과 같다.

type identifier;

 변수의 type을 먼저 써주고 변수의 이름을 써준다. Java는 Python과는 다르게 Statement의 마지막에 Instruction의 끝남을 의미하는 ;을 붙여주어야 한다. 해당 선언은 RAM의 어떤 공간을 지칭하게 되는 이름이 붙어지며, type에 따라 그 space의 size가 달라진다. identifier 에 들어갈 변수 이름은 해당 데이터가 어떤 데이터인지 직관적이고 제 3자가 봐도 알 수 있도록 이름을 지어준다. 그리고 모든 변수의 이름을 지으려고 할 때는 다음 rules를 따르도록 한다.

Variable Naming Rules

  1. identifier의 첫번째 글자는 반드시 영문자, '$', '_'중 하나여야 한다.
  2. Java keywords는 되도록 피한다. (단, Java 10에 추가된 var는 예외로 한다.)
  3. Boolean literal 과 null literal 또한 허용되지 않는다.

Variable Naming Conventions

  1. 변수명은 영어로 시작하도록 한다.
  2. 변수명을 지을 때는 약어를 사용하지 않으며, 구체적이고 의미있으며 직관적인 이름을 사용하도록 한다. ( 변수의 용도와 어떤 값이 저장되는지 직관적으로 알 수 있도록 한다. )
  3. 변수명은 한단어라면 소문자로 작성한다.
  4. 변수명이 두 단어 이상이라면 첫 문자를 소문자로 하되 그 다음 단어들은 capitalize한다.
  5. 변수명에는 가능한 단수형으로 적도록 한다.
  6. 변수명을 짓는 방법을 통일하는 것이 좋다.

 

 variable을 declare할 때, RAM에 공간을 할당해준다고 했다. 그러면 해당 공간에 처음의 값은 무엇인지 궁금해 할 수 있다. 우리는 초기화를 통해 해당 변수의 공간에 처음 값을 넣을 수 있다.

int radius = 3;
double weight = 83.12;
float height = 170.1f;
char firstName = '박';

 선언과 동시에 = 할당 연산자(assignment operator)를 통해 해당 변수의 RAM 공간에 값(literal)들을 넣는 작업을 할 수 있다. 이를 Initialization이라고 한다. 만약 Initialization을 해주지 않았다면 우리는 Variable Access가 불가능하게 된다. (즉, 해당 변수명을 사용하게 된다 하더라도 우리는 Literal을 넣지 않았기 때문에 사용할 수 없다.) 변수에 있어서 접근은 변수명을 통해서만 할 수 있고, 변수명은 해당 RAM의 주소를 가르키게 된다. 이러한 데이터들을 통해 연산과 처리하고자 하는 작업들과 보고 싶은 데이터들을 기억하도록 할 수 있다.

 

Types (데이터 타입)

 Java data types에는 두가지 형태가 있다. 하나는 Primitive types이고, 다른 하나는 Non-primitive types로 구분된다. 여기서 primitive type는 types for number(byte, char, int, long, float, double), character, boolean 등의 데이터의 가장 기초적인 것을 가르키는 concept이다. non-primitive data는 reference data라고도 하며, class, array, interface, Enum, String 등과 같은 class를 참조하는 데이터 타입이다. 이러한 데이터 타입의 변수는 해당 객체를 참조하는 주소를 저장하게 되는데, 그냥 주소를 저장하는 변수라고 보면된다.

Type Size in bytes Range Default Value
byte 1 byte -128 ~ 127 0
short 2 bytes -32768 ~ 32767 0
int 4 bytes -2^15 ~ 2^15 - 1 0
long 8 bytes -2^31 ~ 2^31 - 1 0
float 4 bytes approximately +-3.40282347E+38(6-7 significant decimal digits) Java implements IEEE754 standard 0.0f
double 8 bytes approximately +- 1.79769313486231570E+308 (15 significatn decimal digits) 0.0d
char 2 bytes 0 ~ 65536 (unsigned) '\u0000'
boolean Not precisely defined true / false false

 

Literal (리터럴)

 코드 상에서 직접 입력되는 값을 말하는데, 사용되는 상수값이나 변수의 초기값으로 사용된다. 이때 Literal도 data type에 따라 부르는 명칭들이 다 다른데, 정수형(Integer) Literal, 실수형(Floating-point) Literal, 논리형(Boolean) Literal, 문자형(Character) Literal, 문자열(String) Literal, Null Literal 등이 있다. 각각의 Literal은 그 표현(notation)이 다르므로 숙지하고 있어야 한다.

 다음 예제들을 통해 Integer Literal, Floating-point Literal, Boolean Literal, Character Literal, String Literal, Null Literal을 살펴보자.

 

Integer Literal

byte number1 = 12;
byte number2 = -13; // Decimal
char number3 = 0b1011; // Binary Literal
int number4 = 077; // Octadecimal expressions
long number5 = 0xABCDEF; // Hexadecimal expressions

long salary = 1234_5678_9101_1121L;
long maxLong = 0x7fff_ffff_ffff_ffffL;

 

Floating-point Literal

double pi = 3.141592; // 15 significant decimal digits
double e = 2.714d;
float height = 169.9f; // 6-7 significant decimal digits
double num = 0.12e-3; // 0.00012

 

Character Literal

char firstName = '박';
char middleName = '도';
char lastName = '씨';
char unicode1 = '\u0001'; // unicode는 전세계의 문자를 컴퓨터에서 표현할 수 있도록 한 문자셋들이다. 0부터 0x10FFFF까지 있다.

 

String Literal

String paragraph = "hi, i\'m Java"; // 여기서 \를 사용한 문자들을 Escape character라고 한다.

 

Boolean Literal

boolean myValue = true; // boolean Literal 사용
boolean yourValue = 10 < 15; // condition statement를 통한 boolean 선언

 

Null Literal

int n = null; // error
String str = null; // null은 참조 변수에 대해 default value로 사용됨. 하지만 primitive data type에서는 기본적으로 값이 들어가 있어야 함

 

Constant (Final Variable)

 변수의 선언은 리터럴, 대입연산자( + 복합대입연산자), 변수명, 타입명으로 이루어지는 것을 볼 수 있다. 또한, 파이썬에서는 지원하지 않는 상수(Constant)의 기능도 지원하는데, 변수를 선언할 때 final을 붙여주면 해당 변수는 초기화된 값에서 변동이 없게 된다. 특별히 해당 상수를 선언할 때는 모든 문자를 대문자로 하고 단어마다 _(under score)를 붙여 관습(Convention)을 지킨다.

final double PI = 3.141592d;
final float E = 2.7142f;
final int n = 10;

 

Comments