Chapter12_2. 배열(참조형)

YeongSeok·2022년 7월 28일
0

Java

목록 보기
18/25

기본형 타입을 제외한 모든 타입들이 참조형 타입이다. 참조형 타입은 빈 객체를 의미하는 Null 개념이 존재한다.

변수의 종류

1.변수 종류 3가지(***)

1)로컬변수(local variable)

  • 메서드 안에서 선언
  • 저장되는 메모리명: 스택(stack )
  • 변수의 삶(variable lifecycle)은 메서드가 호출될 때 생성 ~ 메서드가 끝나면 제거된다. (자동으로 호출되는 유일한 메서드가 main 메서드, 역으로 main메서드를 * 제외한 메서드는 반드시 호출해야 수행된다.)
  • 주의할 점은 반드시 사용전에 초기화해야 된다.

* 2)인스턴스변수(instance variable)

  • 메서드 밖에서 선언 - 저장되는 메모리명: 힙(heap ) - 변수의 삶(variable lifecycle)은 객체(클래스)가 생성될 때 생성 ~ 객체(클래스)가 소멸될 때 제거된다.
    ==> 클래스 생성 문법: new 클래스명();
  • 초기화하지 않아도 자동으로 초기화된다. 정수: 0 실수: 0.0 논리: false 문자: /u0000
    참조: null

3)클래스변수(class variable, static variable)

  • 메서드 밖에서 선언 + static 키워드 지정 *
  • 저장되는 메모리명: method area
  • 변수의 삶(variable lifecycle)은 프로그램 실행할 때 생성 ~ 프로그램 종료될 때 제거된다.
  • 초기화하지 않아도 자동으로 초기화된다. 정수: 0 실수: 0.0 논리: false
    문자: /u0000
    참조: null 참조형 배열
    예1>
    import java.util.Arrays;

public class ArrayTest_참조형 {

public static void main(String[] args) {
	// 참조형 : 클래스, 배열, 인터페이스
															//<-"홍길동" 상수 final
	//1. 배열 선언
	String m; //참조형, String타입 변수, 로컬변수(stack), 주소값 저장(임의의 문자열 주소값 -> method area의 메모리의 리터럴pool영역에 저장)
	m = "홍길동";
	
	
	String [] n;//참조형, String타입의 배열,로컬변수(stack),주소값 저장(임의의 문자열이 저장된 배열주소)
	
	//2. 배열 생성
	n = new String[2];
	
	
	//참조형 데이터는 자동으로 null로 초기화
	System.out.println(n[0]); //null
	System.out.println(n[1]); //null

// System.out.println(n[2]); //null
//3. 초기화
n[0] = "홍길동1";
n[1] = "홍길동2";
//4. 출력1
System.out.println(n[0]);
System.out.println(n[1]);

    for(int i=0; i<n.length;i++) {
    	System.out.println(">" + n[i]);
    }
    
    //출력
    //foreach 반복문을 이용한 출력3 (*)
    for(String s : n) {
    	System.out.println("$"+s);
	}
    
    //Array 클래스의 toString 메서드 이용한 출력4
    //import java.util.Arrays;

// System.out.println(Arrays.toString(배열));
System.out.println(Arrays.toString(n));
}

}

# 2.참조형 배열 생성방법

참조형 배열 생성 방법 3가지

##  1. new 이용

 String [] n; n = new String[2]; ==> String [] n = new String[2]; n[0] =
 "홍길동1"; n[1] = "홍길동2";

##  2. new 없이 값만 이용

 String [] n = {"홍길동1", "홍길동2"};

 //다음코드 불가 String []n; n = {"홍길동1", "홍길동2"};

## *3.new 이용 + 값 이용

* new + 값 이용 (1번 + 2번 혼합) 
String [] n = new String[]{1, 2}; //크기 지정하면 에러난다. //다음 코드 사용 가능 * String [] n; * n = new String[]{1, 2};  [] ==> 크기 지정 불가 
profile
끊임없이 성장하고 싶은 개발자

0개의 댓글