프로그래밍 study/JAVA_101

CH1. 변수 선언

박재완 2022. 3. 30. 19:00
728x90
반응형

변수란?

프로그래밍에서는 변하는 값을 '변수'라고 한다. 말그대로 변화하는 수라는 의미이다. 예를 들어 시시각각 변화하는 주식의 가격과 이에 맞춰 항상 마이너스를 기록하는 내 통장 잔고 처럼 말이다.

 변수 선언 방법은 이전 c 언어나 c++ 언어와 유사 하며 다음과 같이 선언 하고 대입 할 수 있다.

다만 cpp 와 조금 다른점이라면 

입력을 하는 경우 거의 모든 데이터는 stream 이나 buffer 형태로 문자 또는 문자열로 받기 때문에 c 언어의 상수 입력 받기랑 조금 다른 점을 보인다. 그렇기에 콘솔 입출력은 다음 기회에 보고자 한다.

그리고 또다른 특징으로는 변수 선언시 메모리에 할당 되는 사이즈가 조금 다른 변수형들이 몇몇 있다는 것으로 다음과 같은 코드를 통해서 이를 확인 할 수 있다.

 

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
import java.util.Arrays;
 
public class App {
    public static void main(String[] args) throws Exception {
        System.out.println("Hello, World!");
        System.out.println("Int size = "+ Integer.SIZE);
        System.out.println("double size = "+ Double.SIZE);
        System.out.println("float size = "+ Float.SIZE);
        System.out.println("Byte size = "+ Byte.SIZE);
        System.out.println("long size = "+ Long.SIZE);
 
        int [] a =  new int[]{1,2,3,4,5};
 
        String[] str = new String[] {"kia","park","lee"};
 
        for(int index = 0 ; index < a.length; index++){
            System.out.print(a[index]+"\t");
        }
 
        for(String s:str){
            System.out.println(Arrays.toString(str));
        }
 
 
    }
}
 
cs

이에 대한 출력값은 다음과 같이 확인 할 수 있다.

일반 변수의 경우 c 언어와 메모리 할당이 같게 선언 된다.

하지만 char 형의 경우

char 2 bytes Stores a single character/letter or ASCII values

https://www.w3schools.com/java/java_data_types.asp

 

Java Data Types

W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.

www.w3schools.com

 

여기서 보는 바와 같이 2byte를 기본적으로 할당 받는다.

c언어의 경우 1byte를 받고 한글과 같은 다른 언어가 입력될 경우에 2byte 할당이 되는 것과는 달리 기본적으로 2byte를 가지고 시작하게 된다.

생각보다 개발 언어 별로 변수 사이즈가 조금씩 차이가 있고 이를 찾아보는 것도 재미 있는 일인 것 같다.

728x90
반응형

'프로그래밍 study > JAVA_101' 카테고리의 다른 글

CH3.java 조건문  (0) 2022.04.11
CH2. java 콘솔 출력  (0) 2022.03.31
CH7. Class(feat. 객체지향 oop)  (0) 2022.03.29
CH0. JAVA 설치 및 테스트  (0) 2022.03.23