문서의 선택한 두 판 사이의 차이를 보여줍니다.
양쪽 이전 판 이전 판 다음 판 | 이전 판 | ||
프로그램:java:ㄴhomework:quiz [2022/01/14 11:55] clayeryan@gmail.com |
프로그램:java:ㄴhomework:quiz [2023/07/13 17:29] (현재) clayeryan@gmail.com ↷ 문서가 programmer:java:ㄴhomework:quiz에서 프로그램:java:ㄴhomework:quiz(으)로 이동되었습니다 |
||
---|---|---|---|
줄 4: | 줄 4: | ||
==== 자바실행환경(Compile Time, Run Time) ==== | ==== 자바실행환경(Compile Time, Run Time) ==== | ||
+ | *자연어를 기계어로 번역하는 방식은 두 가지가 있다. | ||
+ | - 컴파일(Compile)은 파일 전체를 읽어들여 실행 속도는 빠르나 파일 작성이 어렵고 자원이 낭비된다는 단점이 있다. | ||
+ | - 인터프리터(Interpreter) 언어는 실행에 필요한 부분만 읽어들이기에 입력이 쉬우나 실행 속도는 느리다는 단점이 있다. | ||
+ | *자바의 실행환경인 JRE는 위 두 가지 번역 방법을 모두 사용하여 효율적인 실행환경을 제공하고 있으며 이러한 방식을 JIT(Just In Time)이라고 한다. | ||
+ | *JIT의 작동방식을 간략하게 설명하자면, | ||
+ | - 먼저 자연어로 작성된 자바파일을 바이트 코드로 변환한다. 바이트코드는 자연어와 기계어의 중간단계 언어로, 가상머신에 의해 빠르게 번역될 수 있는 코드이다. | ||
+ | - 이렇게 바이트코드로 컴파일된 파일은 Run Time으로 넘어간다. 이때 이 파일의 내용이 하드디스크나 웹 등 외부환경에서 컴퓨터 메모리 영역으로 넘어간다. | ||
+ | - Run Time 환경으로 넘어가면, | ||
==== 객체라이프사이클 (클래스 정의) ==== | ==== 객체라이프사이클 (클래스 정의) ==== | ||
+ | *클래스는 크게 두 가지로 구분된다. | ||
+ | 1. 실행클래스는 클래스를 실행 가능하며, | ||
+ | <code java> | ||
+ | public static void main(String[] args){ | ||
+ | } | ||
+ | </ | ||
+ | 2. 헬퍼클래스는 실행이 불가능한, | ||
+ | |||
+ | *클래스는 멤버필드와 멤버메소드를 가지고 있으며 다음과 같은 형태로 정의된다. | ||
+ | 예) '' | ||
+ | <code java> | ||
+ | class Student { //class 클래스 이름의 형태로 내부 구성요소를 가짐 | ||
+ | String name; // 멤버필드 | ||
+ | void setName(String name) { // 멤버메소드 setter | ||
+ | this.name = name; | ||
+ | } | ||
+ | String getName(){ //getter | ||
+ | return name; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | 좌측의 class인 Student는, 멤버필드로 String name을 가지고 멤버메소드로 getter, setter를 갖는 헬프클래스라고 할 수 있다. | ||
+ | |||
+ | * 객체의 라이프 사이클은 위의 정의된 클래스의 객체를 이용하기 위해 생성 -> 소멸까지의 과정이다. | ||
+ | |||
+ | <WRAP box> | ||
+ | - 클래스 정의 | ||
+ | - 객체참조변수 선언 '' | ||
+ | - 객체 생성 '' | ||
+ | - 생성자 호출 '' | ||
+ | - 주소 할당 '' | ||
+ | - 객체 사용 '' | ||
+ | - 객체 소멸 '' | ||
+ | </ | ||
==== 멤버필드 (타입, 크기) ==== | ==== 멤버필드 (타입, 크기) ==== | ||
+ | * 멤버 필드는 클래스를 구성하는 변수이다. 클래스를 구성한다는 것의 의미는 클래스 내부 메소드의 변수처럼 클래스의 하위 영역에 소속되어 있다는 것이 아닌, 클래스 자체를 구성함을 의미한다. 예를 들어, 아래 클래스를 보자. | ||
+ | <code java> | ||
+ | class Main { | ||
+ | public static void main(String[] args) { | ||
+ | int num; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | > | ||
+ | <code java> | ||
+ | class Help { | ||
+ | int help; | ||
+ | } | ||
+ | </ | ||
+ | > | ||
+ | |||
+ | * 멤버 필드의 타입은 크게 2가지로 구분된다. | ||
+ | - 원시타입은 실제 ' | ||
+ | |||
+ | ^ 분류 | ||
+ | ^ 정수 | ||
+ | ^ 실수 | ||
+ | ^ 논리 | ||
+ | ^ 문자| | ||
+ | |||
+ | 2. 클래스 타입은 ' | ||
+ | >String name = " | ||
+ | >Student st = new Student(); | ||
==== 멤버메소드 (구조) ==== | ==== 멤버메소드 (구조) ==== | ||
줄 156: | 줄 226: | ||
==== 스트림 ==== | ==== 스트림 ==== | ||
- | + | ||
+ | ===== [Quiz] 14차 중간평가 ===== | ||
+ | |||
+ | ==== 바이트 기반 입력 스트림 ==== | ||
+ | |||
+ | ==== 문자 기반 입력 스트림 ==== | ||
+ | |||
+ | ==== 계산기 프로젝트 (Properties + 파일I/O) ==== | ||
+ | |||
+ | ==== TCP 소켓 프로그래밍 ==== | ||
+ | |||
+ | ==== UDP 소켓 프로그래밍 ==== | ||