본문 바로가기

Java/[패스트캠퍼스] 100% 환급 챌린지

패스트캠퍼스 환급챌린지 34일차 미션 (3월 5일) : 시그니처 백엔드 Path 초격차 패키지 Online. 강의 후기

https://fastcampus.co.kr/dev_online_besignature
수강 강의명

강의 내용

[1] 기본 배열과 객체 배열의 관계
[2] 학습정리 퀴즈
[3] static과 메모리의 관계

 

[1] 기본 배열과 객체 배열의 관계

배열에 어떤 종류의 데이터를 넣어야 될까?

*기본 배열 : 기본 자료형을 저장하는 배열
*객체 배열 : 객체 자료형을 저장하는 배열
*객체 : 클래스로 설계한 하나의 구조(덩어리)

 

기본 배열

실수 4개를 저장할 배열을 만드는 방법(실수 데이터 여러 개)

배열은 객체로 취급하기 때문에 하나의 덩어리를 메모리에 만들어야 함(생성)
4개의 기억 공간이 하나의 덩어리(연속적)로 만들어진다.

어떤 구조든 구조를 나타내는 대표적인 이름이 있어야 함(사람이라면 이름)
*기억 공간을 가리키는 객체 변수 : arr(객체 변수를 이동시키면 전체 배열이 한꺼번에 이동됨)
*구조의 이름 : float[]

*연속적 : 반복문을 이용하여 쉽게 조작하기 위함

float[] arr = new float[4];  // 실수 여러개를 저장하는 변수
arr[0] = 10.66f;
arr[1] = 30.5f;
arr[2] = 98.2f;
arr[3] = 67.5f;

 

객체 배열

학생 4명을 저장할 객체 배열을 만드는 방법(학생 데이터 여러 개)
마찬가지로 배열은 객체로 취급하기 때문에 하나의 덩어리를 메모리에 만들어야 함(생성)

선언(기억 공간 생성)을 한 후에 기억 공간 안에 학생 한 명을 저장해야 함
(1) 기억 공간 하나에 학생을 저장하려면 객체를 생성해야 함
(2) 객체를 생성하면 만들어지는 번지를 변수에 넣음
(3) (값을 넣으려면)생성자로 초기화

*기억 공간을 가리키는 객체 변수 : std(객체 변수를 이동시키면 전체 배열이 한꺼번에 이동됨)

*구조의 이름 : Student[]

*연속적 : 반복문을 이용하여 쉽게 조작하기 위함

Student[] std = new Student[4];  // 객체 배열 선언 : 4개의 기억 공간이 만들어진 상태
std[0] = new Student("홍길동", "컴공", 33, "bit@empas.com", 2023110, "010-1111-1111");  // 배열에 한 학생(데이터)을 넣음
std[1] = new Student("나길동", "전기", 43, "bit@empas.com", 2023111, "010-1111-2222");  // 배열에 한 학생(데이터)을 넣음
std[2] = new Student("김길동", "건축", 25, "bit@empas.com", 2023112, "010-1111-3333");  // 배열에 한 학생(데이터)을 넣음
std[3] = new Student("이길동", "통신", 51, "bit@empas.com", 2023113, "010-1111-4444");  // 배열에 한 학생(데이터)을 넣음
Q. 객체 배열을 이용하여 4명의 학생(Student) 데이터를 저장하고 출력하시오.
package fc.java.part3;

import fc.java.model.Student;

public class StudentArrayTest {
    public static void main(String[] args) {
        // Q. [객체 배열]을 이용하여 4명의 학생(Student) 데이터를 저장하고 출력하시오.
        Student[] std = new Student[4];
        std[0] = new Student("홍길동", "컴공", 33, "bit@empas.com", 2023110, "010-1111-1111");
        std[1] = new Student("나길동", "전기", 43, "bit@empas.com", 2023111, "010-1111-2222");
        std[2] = new Student("김길동", "건축", 25, "bit@empas.com", 2023112, "010-1111-3333");
        std[3] = new Student("이길동", "통신", 51, "bit@empas.com", 2023113, "010-1111-4444");

        for (int i = 0; i < std.length; i++) {
            System.out.println(std[i].toString());
        }

        for (Student st : std) {
            System.out.println(st.toString());
        }
    }
}

 

[2] 학습정리 퀴즈

Q. 동일한 기억 공간을 메모리에 연속적인 구조로 만들어서 사용하는 자료 구조는 무엇인가?


Q. 현실 세계의 객체는 이질적인 구조로 표현이 된다. 객체지향 프로그래밍에서 이질적인 구조를 설계하는 도구는 무엇인가?


Q. 배열과 클래스의 공통점으로 자바에서 배열과 클래스를 무엇으로 취급하는가?


Q. 배열과 클래스로 객체를 생성할 때 공통적으로 사용하는 연산자는 무엇인가?


Q. 영화 데이터 5편 저장할 수 있는 객체배열을 생성하시오.(영화의 자료형은 MovieVO로 가정)

더보기

Q. 동일한 기억 공간을 메모리에 연속적인 구조로 만들어서 사용하는 자료 구조는 무엇인가?
배열, Array


Q. 현실 세계의 객체는 이질적인 구조로 표현이 된다. 객체지향 프로그래밍에서 이질적인 구조를 설계하는 도구는 무엇인가?
클래스, class


Q. 배열과 클래스의 공통점으로 자바에서 배열과 클래스를 무엇으로 취급하는가?
객체, object


Q. 배열과 클래스로 객체를 생성할 때 공통적으로 사용하는 연산자는 무엇인가?
new


Q. 영화 데이터 5편 저장할 수 있는 객체배열을 생성하시오.(영화의 자료형은 MovieVO로 가정)

MovieVO[] m = new MovieVO[5];

 

[3] static과 메모리의 관계

메인(시작) 클래스가 동작(실행)되는 방식

(1) 메인 클래스 실행

(2) JVM이 실행할 클래스를 찾음

      JDK를 설치하면 컴퓨터 램 메모리에 JVM이 상주하게 됨
      자바를 실행하면 내부에 만들어진 JVM 프로세서가 동작됨
      클래스가 실행되려면 메모리 위에 올라와야 함

(3) static 키워드가 붙어있는 멤버들을 정해진 메모리(static-zone) 위치에 한번만 자동으로 로딩됨

       *Method Area : 메서드의 기계어 코드들이 할당되는 메모리 영역(두 영역으로 나뉨)
               static-zone : static 키워드가 붙은 메서드들을 메모리에 올리기 위함
               none static-zone : static 키워드가 없는 메서드들을 메모리에 올리기 위함

(4) JVM이 static-zone에서 main()를 호출함

(5) 호출된 메서드를 Call Stack Frame Area(Stack Area)에 push(기계어코드를 넣고) 한 뒤 동작을 시작함

public class StaticTest {
     public static void main(String[] args) {
          System.out.println("Hello Java");
     }
}
public class StaticTest {
     public static void main(String[] args) {  // call
          int a = 10;
          int b = 20;
          int sum = StaticTest.hap(a, b);  // call
          System.out.println(sum);
     }
     public static int hap(int a, int b) {
          int v = a + b;
          return v;
     }
}

 


 

수강 화면수강 화면
수강 화면

 
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.
https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr