ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [공부단 스터디] [1일차] Do it! 자바 완전 정복 / 1장
    IT/자바 2022. 5. 7. 10:10
    본 게시글은 네이버 카페 'Do it 스터디룸' 에 공부단 스터디로 게시한 글을 그대로 옮겨 놓은 것임​

     

    1. 책 DB를 넣어주세요. (글감 > 책 클릭 > 내가 지금 공부하는 책 검색 및 선택)

    2. 나의 스터디 흔적을 사진으로 보여주세요. 책상(모니터)과 책이 함께 보이면 최고!

    예시) 지우쭈님의 된다! 7일 실무 엑셀을 공부한 흔적: https://vo.la/LBxH

    3. 이번 스터디에서 특별히 좋았던 점이나 어려웠던 점이 있었나요? 새로 알게된 부분이 있다면 알려주세요. 다음에 이 책으로 공부할 스터디룸의 독자들에게 큰 도움이 됩니다. (200자 이내)

    예시) 뚜기님의 Do it! 점프 투 파이썬 스터디 노트 : https://vo.la/WhN6

    * 1장은 자바 언어에 대한 소개와 환경 구성에 대한 내용으로 가볍게 따라 읽으면 되는 정도이다.

    * 실습은 이클립스를 통해 진행된다.

    * 자바 프로젝트 생성 > 패키지 생성 > 자바 소스 파일 생성 (.java) > 컴파일 및 바이트코드 생성 (.class) > 실행하기

    * 패키지를 생성하지 않으면 디폴트 패키지(default package)가 지정되는데, src폴더와 bin 폴더 아래 바로 소스 및 바이트 코드가 위치함

    * src 폴더에는 소스 파일 (.java)가 위치하며, 이를 컴파일하게 되면 결과 파일인 바이트 코드(.class)가 bin 폴더에 위치하게 됨

    * 컴파일은 명령 프롬프트상(cmd, terminal, ..) 에서 javac 명령을 사용해서 실행되지만, 이클립스의 경우 소스 파일이 저장과 동시에 자동 컴파일이 수행되므로 별도 컴파일 과정이 불필요 함

    * 바이트코드(.class)는 자바 가상 머신(jvm)에서 동작함

    * 자바 소스 코드 실행 과정

      * .java 소스 파일 생성 (이클립스의 경우 저장과 동시에 컴파일) > .class 바이트 코드 파일 생성 > 실행 > jvm에 메모리 할당 > main() 메서드 실행

      * 자바 가상 머신 (jvm)은 효율적인 메모리 관리를 위해 메서드 영역/스택 영역/힙 영역으로 나눈다.

      * 메서드 영역 은 클래스(class) 영역/정적(static) 영역/상수(final) 영역 이라고도 함

      * jvm은 운영체제로부터 메모리 할당 받아 바이트 코드를 '메서드 영역'에 로딩하고, 클래스 내 포함된 main() 메서드를 실행함

    * 소스 파일 컴파일과 바이트 코드 생성

    * 소스 구조

    public class A {
      // ...
    } 
    class B {
      // ...
    } 
    class C {
      class D {
        // ...
      }
    }
     

    * 1개의 클래스(class)는 1개의 바이트 코드(.class)파일을 생성함

    * 위의 경우 class 키워드가 4개 이므로 4개의 바이트 코드가 생성됨

    단, 클래스 내부에 포함된 이너(inner) 클래스는 반드시 자신을 감싸고 있는 클래스부터 표현해야 함 (참고: class C { class D {} } )

      * class A {} -> A.class

      * class B {} -> B.class

      * class C {} -> C.class

      * class D {} -> C$D.class // class C 안에 있는 class D ( 표현식: 아우터 클래스$이너 클래스.class )

    4. 열심히 실습한 코드를 저장해 첨부해 주시거나 자랑할만한 스크린샷이 있다면 올려주세요.

    -> 간단한 프로텍스 생성/실습을 진행하였다.

     

     

    원글: https://cafe.naver.com/doitstudyroom/39240

    댓글

Designed by Tistory.