[Java] 참조타입(배열)

PM077·2022년 12월 27일
0

CS Study

목록 보기
21/27

시작하기 전

기본 타입 (primitive type)

  • 정수, 실수, 문자, 논리 리터럴 저장
  • int age - 25;, double prive - 100.5; 이런게 기본 타입

참조 타입 (referecne type)

  • 객체의 번지를 참조하는 타입
  • 배열, 열거, 클래스, 인터페이스
  • String name = “hihihi:’, String hobby = “asdasd”; 는 참조타입

메모리 사용 영역

메소드 영역

  • 클래스 영역
  • 정적 필드, 상수, 생성자, 메소드, 코드 등을 분류해서 저장한다

힙 영역

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

JVM스택 영역

  • 메소드가 호출되면 프레임이 추가된다
  • 메소드가 종료되면 프레임이 제거된다

참조 변수의 ==, != 연산

  • 번지값을 비교해서 true false 를 return 해주는 원리

Null, NullException

예외

  • 프로그램 실행 중 나타나는 오류이다

NullPointException

  • 참조 타입 변수가 null상태에서 존재하지 않는 객체의 데이터나 메소드를 사용할 경우 발생하는 것이다
  • 참조 변수가 객체를 참조하도록 수정해서 해결해야한다

new연산자

  • 객체 생성 연산자
  • 힙 영역에 새로운 String 객체를 생성한다

문자열 비교

  • ==는 번지값 비교
  • equals()는 내부 문자열을 비교

배열

선언 방법

  • int[] intArray;
  • double[] doubleArray’
  • 위와 같이 타입[] 이름; 으로 구성된다

값 목록을 이용한다면?

  • int[] scores = {1,2,3,4,5}
  • scores[0] 울 출력하면 1이 출력됨

기타

  • length를 이용해주면 arr의 길이를 알 수 있다
  • 2차원 배열은 int[][]scores = new int[2][3] 으로 선언한다. 이러면 0,1,2열과 0,1의 행이 만들어진다
  • 바로 선언은 “ 타입 [][] 변수 = {{값1, 값2, …}, {값1, 값2, …}}; 로 선언

배열 복사

  • for문을 이용해서 요소 하나 하나를 복사

열거타입

  • public enuym 열거타입이름 {…}; 으로 선언

public enum Week {
	  MONDAY,
	  TUESDAY,
	  WEDNESDAY,
	  THURSDAY,
	  FRIDAY,
	  SATURDAY,
	  SUNDAY
}

import java.util.Calendar;

import sec03.exam01.Week;

public class EnumWeekExample {
	public static void main(String[] args) {
		Week today = null;
		
		Calendar cal = Calendar.getInstance();
		int week = cal.get(Calendar.DAY_OF_WEEK);
		
		switch(week) {
			case 1:
				today = Week.SUNDAY; break;
			case 2:
				today = Week.MONDAY; break;
			case 3:
				today = Week.TUESDAY; break;
			case 4:
				today = Week.WEDNESDAY; break;
			case 5:
				today = Week.THURSDAY; break;
			
			case 6:
				today = Week.FRIDAY; break;				
			case 7:
				today = Week.SATURDAY; break;		
		}
		
		System.out.println("오늘 요일: "+ today);
		
		if(today == Week.SUNDAY) {
			System.out.println("일요일에는 축구를 합니다.");
		} else {
			System.out.println("열심히 자바 공부합니다.");
		}
	}
}
profile
PM/PO

0개의 댓글