개발 수업/JAVA

[Java] 참조 타입과 참조 변수,배열

오늘 하루s 2023. 5. 8. 18:07
728x90
더보기

Day7. 230508 

참조 타입과 참조 변수

기본 타입과 참조 타입

기본 타입 : 정수, 실수, 문자, 논리 리터럴을 저장하는 타입.

참조 타입 : 객체의 번지를 참조하는 타입(배열, 열거, 클래스, 인터페이스)

 

 

메모리 사용 영역

메소드 영역(Method Area)

JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역

 

힙(Heap Area)

객체와 배열이 생성되는 영역

 

JVM스택 영역

메소드를 호출할 때마다 프레임을 추가하고 메소드가 종료되면 해당 프레임을 제거하는 동작을 수행

 

 


배열(Array)

배열

동일 타입의 데이터를 연속된 공간에 나열, 각 데이터에  index를 부여해 놓은 자료구조.

장점 > 중복된 변수 선언을 줄일 수 있음.

 

배열 선언
  타입[] 변수명; 또는 타입 변수명[];

ex) int [] Array; 또는 int Array[];

 

값 할당
변수명[인덱스 번호] = 값;

 

 

배열 생성(배열 선언 및 값 할당)

1) 값 목록으로 배열 생성 : 타입[] 변수명 = {값0,값1,값2,...};
2) new연산자로 배열 생성 : 타입[] 변수명 = new 타입[] {값0,값1,값2,...};

위의 두 가지를 한번에 실행.

 

 

배열 길이

배열 변수.length;
1
2
3
4
5
6
int[] arr2 = {10,85,45,76,-13};
System.out.println("arr2="+arr2);
        System.out.println("arr2.length="+arr2.length); //배열의 길이
        System.out.println("arr2[0]="+arr2[0]);  
        System.out.println("arr2[3]="+arr2[3]);
        System.out.println("arr2[4]="+arr2[4]);
cs
더보기

int[] arr2;
arr2 = {10,85,45,76,-13}; 한번에 실행.

 

* 실행 결과

arr2=[I@6d06d69c
arr2.length=5
arr2[0]=10
arr2[1]=85
arr2[3]=76
arr2[4]=-13

 

1
2
3
4
5
6
int[] arr3 = new int[] {1,2,9,45,6,89};
        System.out.println("arr3="+arr3);
        System.out.println("arr3.length="+arr3.length); 
        for(int i=0; i<arr3.length; i++) {
            System.out.println("arr3["+i+"]="+arr3[i]);
        }
cs

위의 코드를 for문으로 간단히 처리.

 

타입별 배열의 초기값

정수[] : byte, short, int, long의 기본값 = 0 , 0L
실수[] : float, double의 기본값 = 0.0F , 0.0
char[]의 기본값 : 공백(\u0000)
boolean[]의 기본값 : false
클래스[]의 기본값 : null => 예) String[]의 기본값 : null (nul : 아직 주소값이 할당되지 않았음.)

 

배열 생성 후 새로운 값 저장
변수[인덱스] = 값;

 

위의 코드를 for문을 이용해 간단히

 

 

다차원 배열

 행(row,줄)과 열(column,칸)로 구성된 배열을 2차원 배열

타입[][] 변수 = {{값1,값2,...},{값1,값2,...},...};

 

더보기

* 실행 결과

scores=[[I@15db9742
scores.length=3

scores[0]일 때
scores[0,0]=10
scores[0,1]=20
scores[0,2]=30
scores[0,3]=40
scores[0,4]=50

scores[1]일 때
scores[1,0]=10
scores[1,1]=20
scores[1,2]=30
scores[1,3]=40

scores[2]일 때
scores[2,0]=30
scores[2,1]=40
scores[2,2]=50
scores[2,3]=60
scores[2,4]=70

- 가변 배열

그룹의 길이가 달라도 됨.

 

 

향상된 for문

for(타입 변수명 : 배열명 또는 컬렉션명){
반복실행코드
};

배열 및 컬렉션 항목의 개수만큼 반복하고, 자동적으로 for문을 빠져나감.

 

 

더보기

* 실행 결과

0번째값=10
1번째값=20
2번째값=30
3번째값=40
4번째값=50
5번째값=99
6번째값=100
총합sum=349
평균avg=49.0

향상된 for문 배열값 출력

더보기

int arr1[] = {10,20,30,40,50,99,100}; 일때

 

* 실행 결과

10
20
30
40
50
99
100

 

728x90