[ 지난주 Review ]
1. 자바의 실행 단위는 class이다. -> JVM에서 이 class가 실행된다.
cf) JVM = class를 실행하는 가상 메모리, 자바는 운영체제에 종속적이지 않다.(독립적이다.)
- 자바는 자유 영역 공간을 할당받아서 관리하고 단독으로 실행한다.
- java를 javac가 binary 형식으로 만들어 준다.
- userName.java -> javac userName.java -> java userName
class userName(){ } userName.class JVM에서 메모리를 올리고 구현
1) %JAVA_HOME%/bin/javac.exe
2) %JAVA_HOME%/bin/java.exe
2. %JAVA_HOME%/jre +lib : JDK Tool을 실행시키는 참조형 라이브러리
- 라이브러리 : 실제 구현이 아닌 참조로 구현
3. .jar = project -> package -> .java -> .class로 배포하면 .jar로 생성
- rt.jar을 제일 많이 쓴다.(기본 라이브러리(java.lang, java.util))
- 노란색은 기본 라이브러리
- 이클립스에서는 jre폴더에서 자동으로 해주는 툴을 가지고 있어서 연동할 수 있다.
- java는 bin폴더에 있는 exe파일들을 jre와 lib폴더에 있는 것을 참조로 해서 실행을 한다.
- JDK 안에 JRE가 있다.
- %JAVA_HOME%/jre/lib/rt.jar
4. class = userDataType keyword = { } = NESTED | FIELD | CONSTR | METHOD
= 속성 + 기능(메세지) = FIELD + METHOD
- NESTED | FIELD | CONSTR | METHOD 앞에 두 개는 필드로, 뒤에 두 개는 메소드로 구성
5. 접근 제한자 : public(공개) -> protected(상속) -> default(같은 package에서 공개) -> private(비공개)
6. 기본 자료형 : 값들(values)을 저장하는 메모리 단위
- boolean, 정수, 실수, 한 문자, 문자열
byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
char(2)
- 운영체제가 갖고 있는 파일들이 c언어로 구성되어 있기 때문에 기본 자료형은 같다.
cf) String은 기본 자료형이 아니라 class이다.
# 예시 - 데이터 타입
# 예시 - 자동 형 변환
- 데이터타입 연산할 때 작은 데이터타입과 큰 데이터타입이 있는 경우 큰 데이터타입으로 연산 결과를 낸다.
7. 전역변수(: 클래스 안에 선언되는 변수), 지역변수(: 메소드 안에 선언되는 변수)
- 전역변수는 생성자(=CONSTER) 맴버 변수 초기화
[접근 제한자] datatype 변수 = 값;
- 지역변수는 반드시 초기화해줘야 한다.
datatype 변수 = 값;
cf) 메소드 안에 코드를 작성/선언해라
8. 메소드 : static(= class명.멤버) / non-static(= 클래스변수.멤버_으로 구성
- static은 주소가 있는 거고 non-static은 주소가 아직 없는 상태.
9. void형 / datatype을 가진 return형
[접근제한자] [static/non-static] [void/datatype] userName(obj...){
[return]
}
cf) 프로그램에서 [ ]는 선택적을 의미
10. 제어문 : if, switch, while, do~while, for
- continue : 반복을 계속
- break : 반복 정지
- return : 현재 내가 가진 메소드를 종료 따라서 가장 강력
11. 참조 : 현재 내가 있는 위치에서 또 다른 위치에 있는 주소를 알고 있으면 CRUD가 가능하게 해준다.
# CRUD = Create, Read, Update, Delete
# 연산자 ( . -> & $ )
- $ : outer class가 inner class를 참조할 때 사용
# 속성 파일
12. class diagram을 보고 코드를 작성할 줄 알아야 한다.
[ Overload ] : 메소드를 선언할 때 같은 기능의 메소드를 동일한 이름으로 선언하되 ( )안의 매개 인자, 매개 인자의 개수 또는 데이터타입을 다르게 주는 원형을 말한다.
# 예시 - overload
[ 이중 for문 ]
# 예시
[배열(Array)]
- 같은 데이터타입을 나열형의 값으로 구현된 집합체이다.
- 정적 요소의 크기로 지정되어 있어서 처음 생성된 요소의 사이즈는 변경할 수 없다.(정적형이다.)
- 나열된 값을 하나의 변수명으로 대입되어 값의 시작 주소를 참조하는 참조형이다.
- 각 나열된 요소(엘리먼트)라고 하며 전체 크기는 요소의 사이즈라고 한다.
- 각 요소는 0번지 인덱스부터 나열된 값을 저장하며 사이즈를 지정후 대입할 수 있다.
- 1차원과 다차원으로 나눠진다.
<선언 방법>
1. 1차원
1) datatype 변수명 [] = {요소...}; : 나열형 값에 의해 사이즈가 정해진다.
2) datatype [] 변수명 = {요소...};
3) datatype [] 변수명 = new datatype[] {요소...};
4) datatype [] 변수명 = new datatype[요소의 크기];
# 정적할당과 동적할당
- heap은 필요 없어지면 없어지지만, stack & static은 계속 남아있다.
# 예시 - 정적할당과 동적할당
2. 다차원
- 2차원 [행][열] - 3차원[면][행][열]
1) datatype 변수명 [][] = { {요소...} {...} }; : 나열형 값에 의해 사이즈가 정해진다.
2) datatype [][] 변수명 = { {요소...} {...} };
3) datatype []변수명[] = { {요소...} {...} };
4) datatype [] 변수명[] = new datatype[][] { {요소...} {...} };
5) datatype [][] 변수명 = new datatype[요소의 크기][];
# 예시 - 배열 도식화
- ar[0][1] = 20
- ar.length = 2
- ar[0].length = 3
- ar[1].length = 3
# 예시 - 다차원 배열
[ 메모리 할당 ]
# 예시 - 도식
int a = 10; int b = 20; int c = 30; int d = 40;
int [] ar = {10, 20, 30, 40}; -> int라서 4byte 방을 하나 만들어서 배열 값을 넣는다.
= 오른쪽의 나열형 값들
# 보통 주소는 1byte당 1개, 시작 주소가 그것의 주소이다.
# 예시 - 배열 정적할당
# 참조형들은 자유 영역 공간에서 방을 만든다. 이 때 초기값은 기본값으로 채운다.
# 배열은 크기를 지정한 후에 크기를 변경할 수 없다.
# 예시 - 배열과 for문
- for(int r : res){} : 처음부터 끝까지 순차적으로 return 함.( r = 값을 받을 변수, res = 시작 주소값을 가진 변수)
# 예시 - 배열 동적할당
'K-digital-training > 필기(나머지는 개인 소장)' 카테고리의 다른 글
20210728(수)_Day 08_정리 요약 (0) | 2021.07.30 |
---|---|
20210727(화)_Day 07_정리 요약 (0) | 2021.07.30 |
20210723(금)_Day 05_정리 요약 (0) | 2021.07.28 |
20210722(목)_Day 04_정리 요약 (0) | 2021.07.27 |
20210721(수)_Day 03_정리 요약 (0) | 2021.07.22 |