0. 하드웨어의 소프트웨어 화 

 ex) JVM


1. 객체지향 언어의 특징

   - 재사용성(클래스화) 

   - 유지보수(코드간의 관계) 

   - 신뢰성(제어자, 메서드, 중복제거) 


2. 클래스, 객체 

   - 객체 : 멤버들의 집합, 변수들의 집합, 인스턴스 변수의 집합 

   - 클래스 : 연관된 데이터와 함수들의 모임, 구조체+함수, 사용자 정의 타입

                 (변수 > 배열 > 구조체 > 클래스) 


3. 변수, 메서드 

   -  변수 (선언위치에 따른) 

       - 멤버변수(클래스영역)   

            - 클래스 변수(static변수, 공유변수, 안변하는 속성) 

                : ※같은클래스의 모든 객체들이 같은 값을 공유하는 변수. 그래서 변경도 가능 하나 모든 객체의 값이 변경된다.

                : 클래스가 메모리에 로딩시 생성

                : 언제든 사용 가능(클래스명.클래스변수명)  

            - 인스턴스 변수

                : 인스턴스마다 다른 값 저장 

                : 객체 생성시 생성

                : 객체 생성후 사용 가능(참조변수명.인스턴스변수명)

       - 지역변수(메서드영역)  


   - 메서드 

       - 명령문의 집합. 값을 입력받아 처리하고 결과를 반환함 (둘다 없을수도 있음) 

       - 주요 작업 단위로 작성하여 코드 관리가 용이 

       - 리턴타입 메서드이름 (매개변수){ } 로 정의  

 - 리턴문은 변수 처리를 하여 호출 횟수를 줄이는게 좋다. 


4. JVM의 메모리 구조 - 호출스택(동전통) 

   - 맨 위에 메서드가 현재 실행중인 메서드다.

   - 예외처리 시 잘 알아둬야함!!


5. 매개변수

   기본형(primitive)  매개변수 - 읽기만 

   참조형(reference) 매개변수 - 읽고 변경 가능 



 

기본형 매개변수 예제


(자바의 정석 남궁성님 객체지향 강의중 캡쳐)


6. 재귀호출 

   매서드 내에서 자기 자신을 반복적으로 호출하는 것

   반복문으로 바꿀 수 있으며 반복문 보다 성능이 나쁘나 이해하기 쉽고 간결한 코드를 작성할수 있다.

   팩토리얼, 제곱, 트리운행, 폴더목록 표시등에 사용 



+ 팩토리얼 알고리즘 이해하기


7. 클래스 매서드 인스턴스 매서드

  클래스 매서드는 인스턴스 메서드 사용 안하면 static붙여서 쓴다 . 인스턴스 변수나 인스턴스 메서드 사용 관련 없을때 

  


1. JDK 

- JRE ( JVM + Java API )

- 자바실행파일(javac.exe, java.exe, javap.exe, javadoc.exe, jar.exe) 


2. Java의 주요실행파일

- javac.exe  (자바컴파일러)    자바코드>바이트코트

- java.exe   (자바인터프리터) 컴파일된 바이트코드 해석과 실행 

- javap.exe (역어셈블러)       컴파일된 클래스파일 > 원래 소스로 변환


ex) Hello.java > javac.exe(컴파일) > Hello.class > java.exe > 실 행 

          명령어 : javac Hello.java                       java Hello(java.exe로 실행시에는 확장자를 빼고 입력한다)



3. 두개의 클래스가 담긴 하나의 소스파일을 컴파일시 클래스 파일은 클래스마다 하나씩 만들어지므로 두개의 클래스파일이 생성된다. 




4. JVM이 사용하는 메모리 영역

- Method Area

   클래스 로딩 (Static) 

- Stack 

   메서드 호출시 사용 

- Heap 

   인스턴스 생성시 사용 





(자바의 정석 남궁성님 객체지향 강의중 캡쳐)





+ Recent posts