본문 바로가기
IT관련/JAVA_정리 노트

변수선언 배열선언

by XoX 2020. 4. 20.
728x90
개인적인 메모를 위해 작성된 글이므로 가벼운 참고용으로 봐주세요.

 

<변수선언>

var month;

☞ 변수(variable)의 이름표를 만든다 + 변수 이름은 month 이다.

 

 

var month; = 'August';

변수를 '비어있는 컨테이너'로 생각해주고,

비어있는 컨테이너의 공간에 어떤 내용물을 넣는다고 상상하라.

그리고 내용물(=데이터)로 'August'를 넣어준다는 것을 '='(대입연산자)를 사용해서 표현하라.

※ 앞으로 '='(대입연산자) 새로운 형태의 무언가가 나오더라도 앞쪽에 나오는 것은 공간으로 보면 쉽다.

 

 

다시 정리하면

var month = 'August';

이름표를 만든다 + 비어있는 컨테이너의 이름은 month다 + 그 안에 넣는다Augus라는 데이터를

이렇게 해주면 된다.

 

 

이것을 일반적인 형식으로 표현하면 아래와 같다.

var  month  =  'August';

데이터타입  변수  =  데이터;

ex) int a = 1;

String b = "Hello";

 

 

■ 데이터 타입의 필요와 쓰임
class Main { 
  public static void main(String[] args) { 
  x = 9; 
  System.out.println(x);
  } 

 

실행될까? 안된다.

왜? 변수선언을 안 했기때문이다. 
int x = 9; 라고 9라는 정수의 데이터타입인 int를 써줘야 변수가 선언되는 것이다.

물론 int x=9; 라고 선언을 하고 나면

x=4;

x=11000000000;

이렇게 x라는 공간에 다른 정수값을 넣어주는 것은 가능하다.

 

 

데이터타입은 변수라는 저장공간이 어떤 종류이냐?를 표현해준 것이다.

데이터타입 자리에 int가 오면, 저장공간(변수)에 정수를 담을 수 있다.

데이터타입 자리에 String이 오면, 저장공간(변수)에 문자열을 담을 수 있다.

정수 int    예시 int i = 1;
short short s= 2;
long long l= 20L;
실수 float float x=3.14F;
double double y=3.14;
문자 char chart c ='C';
문자열 String String s="string";
논리 boolean boolean b=true;

 

 

 

그럼 아래와 같이 생긴 경우는?

arr[x] = scanner.nextInt();

System.out.print(arr[x]);

 

뭔가 어렵게 생겼지만 본질은 같다.

첫째줄 arr[x]는 저장공간

둘째줄 arr[x]는 값(데이터)

 

이렇게 생긴 걸 배열이라고 한다.

배열도 변수선언( 데이터타입  변수  =  데이터 )과 비슷하게 만들어졌다.

 

 

<배열 선언>

ⓐ 데이터타입[] 배열명 = new 데이터타입[길이];

ⓑ 데이터타입 배열명[] = {데이터, 데이터, ..., 데이터};

ⓒ 데이터타입 배열명[];

※ ⓐ에서는 new를 썼고 ⓑ에서는 중괄호{}를 썼는데, 두 경우 모두 힙메모리영역에 배열의 칸수를 지정받는다.

그리고 배열명은 스택에서 메모리를 할당받게 된다. 또한 그 안에는 힙메모리영역에 배열의 시작주소가 들어있다.

ⓐ에서 사용한 new와 ⓑ에서 사용한 중괄호{}의 차이?

중괄호는 초기부터 배열안에 데이터가 저장되는 것, new만 쓰면 초기값을 가지고 있는 것.

int [] arr = new int[3]; 다음에 arr[1]=2;이런 게 없으면 System.out.print(arr[3]);하면 초기값인 0이 출력된다.

 

 

위의 ⓐ ⓑ ⓒ ex)

int[] arr = new int[100];

int arr[] = {3, 1, 4, ... ,5, 6, 2}

int arr[]

String[] arr = new String[10];

String arr[] = {오렌지, 멜론, ... ,포도, 수박, 레몬}

String arr[]

 

 

728x90
반응형

'IT관련 > JAVA_정리 노트' 카테고리의 다른 글

클래스선언  (0) 2020.04.23
메서드(method) 선언  (0) 2020.04.22
객체 기초  (0) 2020.04.16
형변환 기초  (0) 2020.04.15
print println pritf 차이점  (0) 2020.04.15

댓글