본문 바로가기
국비교육/JAVA

교과서(Getting Start JAVA) 복습 1~187p

by Diligejy 2019. 1. 2.

#1

JSON = 비동기 통신

EDI문서 = 전자문서

메타태그 -> html -> xml value로 가져옴
                        -> Json -> 객체


#2

J2SE 5.0(2004년) = 제네릭, 가변인자, 메타 데이터(주석, annotation)


#3

java.lang 기본 언어기능과 언어 중추 기능을 가진 클래스

java.util 컬렉션 데이터 구조 클래스

java.io   입출력 조작에 필요한 클래스

java.nio  채널을 이용한 파일 입 출력인 new I/O 프레임 워크



#3

자바의 주요 실행 파일


보안 구현 툴 : keytool, jarsigner, policytook, kinit, klist, ktab


원격에서 메소드를 호출하는 툴(RMI) : rmic, rmiregistry, rmid, serialver


모니터링을 실행하는 툴(jps) : jcmd, jconsole, jmc, jvisualvm


#4

자바의 메모리

메소드(Method) 영역

- 클래스의 메소드에 대한 바이트 코드

- 전역변수(클래스 변수) 

힙(heap) 영역 

- 객체를 저장할 때 사용하는 메모리

- new 연산자를 이용하여 동적 할당해서 생성하는 영역 

스택(stack) 영역 

- 지역변수, 메소드의 인자, 메소드의 리턴값, 리턴 번지 등을 사용 


p.19

추가적으로 native method stacks를 가지는데 이는 스택 영역과 함께 사용되며 네이티브 메소드에서 사용되는 값을 저장한다. Native Method Stack은 각 스레드당 하나씩 생성된다. 스레드란 C, C++ 같은 언어로 구현된 메소드, 주로 하드웨어에 대한 접근용 메소드인 네이티브메소드(Native Method)를 호출하면 Java Stack을 벗어나게 되며 이때 네이티브 메소드에 의해 Native Method Stack이 사용된다. 네이티브 메소드에서 자바 메소드를 다시 호출하게 되면 Java Stack으로 되돌아가게 된다.


p.31

지역변수는 반드시 선언해야 함


p.34

static final 멤버변수 상수

non static final 지역변수 상수


p.35

byte = 1byte

short, char = 2byte

int = 4 byte

long = 8 byte

float = 4 byte

double = 8 byte


p.36

기본값 = 생성자 초기값

boolean의 기본값 false

char의 기본값 null

byte, short, int, long 의 기본값 0


p.40

String은 하나의 문자가 아니라 문자열을 표현하기 위한 클래스, new keyword없이 클래스로부터 인스턴스를 만들 수 있는 유일한 클래스


p.47

ⓐ 데이터형이 아닌 더 큰 데이터형에 대입될 때 컴파일러는 리터럴을 더 큰 데이터형으로 변환하는데 이것을 프로모션이라고 함


ⓑ boolean자료형을 제외하고 기본 자료형의 프로모션이 자동으로 이루어짐. 다른 말로는 자동형변환이라고 함. 


ⓒ int보다 작은 데이터 타입인 short, byte, char형끼리의 연산한 변수의 데이터 타입은 int가 되기 때문에 컴파일 에러를 발생


p.77

시프트 연산자는 int, byte, short, long, char형에 대해서만 정의가되어 사용할 수 있으며 float, double, boolean에 대한 시프트 연산은 사용할 수 없다.


p.78

x << n = 정수 x를 n비트 왼쪽으로 이동시키고, 오른쪽 비트는 항상 0으로 채운다.

x >> n = 정수 x를 n비트 오른쪽으로 이동시키고, 왼쪽 비트는 양수일 경우 0으로, 음수일 경우 1로 채운다.

x >>> n = 정수 x를 n비트 오른쪽으로 이동시키고, 왼쪽 비트는 항상 0으로 채운다.


p.95

charAt(int index) 메소드는 String 클래스의 메소드로 문자열을 인덱스 0부터 하나의 char로 관리하여 해당 인덱스에 위치한 글자를 char로 리턴하는 메소드이다.


p.109

do~ while구문은 화면 설계 또는 예매시스템 같은 한번 수행된 상태에서 취소할 수 있는 구문에 적합하다.


p.113

for문의 초기화 작업을 할 때 조건식 ()안에 선언된 i변수는 선언된 for문만 사용할 수 있는 지역변수가 된다. i변수는 Block밖에서는 사용할 수 없다.


p.114

for문 초기값, 증감 증가식 부분에 여러 개의 변수와 연산식을 콤마(,)로 열거해서 선언할 수 있지만 조건식 부분의 결과가 반드시 true, false이어야 한다.


p.120

break 뒤에 레이블이 있으면 해당 레이블로 이동하여 지정된 영역을 빠져나오는 기능을 수행한다.


p.123

1. continue : LOOP문의 나머지를 실행하지 않고 LOOP BODY(반복문의 끝)으로 점프한다.

2. continue[label] : label이 포함된 LOOP문의 다음 단계로 넘어가서 실행한다. 


p.135

break문은 for문, while문, do~while문 등 반복 Loop나 switch~case문을 빠져 나오는데 사용하는 구문으로 한 번에 가장 가까운 하나의 Loop를 벗어날 때 사용한다.


p.146

같은 자료형을 여러 개 선언해서 사용하는 것보다 하나의 이름으로 같은 자료형의 상수들을 관리하는 것이 메모리 관리에 훨씬 효율적이다.


p.147

배열은 다음과 같은 특징을 지닌다

ⓐ 배열은 선언과 동시에 주소를 할당받아 요소로 관리된다

ⓑ 상수를 기억하는 배열의 메모리는 연속적으로 할당된다.

ⓒ 배열의 요소는 각괄호 '[ ]' 안의 정수 첨자, 즉 인덱스로 구분되며 0부터 시작된다.

ⓓ 모든 기본 데이터형의 배열을 사용할 수 있을 뿐만 아니라 참조형 객체 배열로 사용할 수 있다

ⓔ 배열로 선언되는 변수를 참조 변수 또는 배열 변수라고 한다

ⓕ 배열은 멤버변수 length가 제공되며 length는 "참조변수.length"형태로 배열의 요소 개수를 리턴한다.

ⓖ 자바는 배열을 차원으로 관리하며 차원에 따라 일차원, 다차원, 가변배열 등을 제공한다.


p.149

일차원 배열이란 열의 모임으로 구성된 기억공간을 말하며 각괄호 '[ ]' 하나를 선언해서 일차원으로 값을 관리할 것을 인식하게 한다.


p.149

배열은 참조변수 선언, 배열 생성, 초기화의 단계를 거쳐서 사용된다.


선언 시 주의할 점은 배열의 크기를 명시할 수 없으므로 '[ ]' 내부에 어떠한 수도 명시하지 않는다. 배열의 선언은 배열의 이름과 데이터 타입에 관한 선언이므로 아무런 기억 장소도 할당되지 않는다.


p.150

배열의 생성이란 new 연산자를 이용해서 배열 원소를 저장할 메모리 공간을 자유영역 공간에 동적으로 할당하는 것을 말한다. 할당하는 이유는 배열변수에 나열형으로 상수를 대입해서 메모리를 사용할 수도 있지만 new연산자를 이용해서 동적으로 할당하게 되면 배열의 실행이 끝나고 주기적으로 가비지 컬렉터가 쓸모없는 공간을 소멸시켜 주기 때문에 메모리 관리에 굉장히 효율적이다.


형식은 다음과 같다.


배열의 변수명 = new 데이터 타입[요소의 크기];

특징

ⓐ new 연산자를 통해 생성된 메모리에 배열의 원소를 저장하게 된다.

ⓑ '[ ]'에 반드시 요소의 크기를 명시한다.

ⓒ 배열 객체가 생성되면 자동으로 초기화가 된다.


p.156

배열은 resize 되어지지 않는다. 즉, 배열은 크기를 중간에 바꿀 수 없으며 크기를 바꿀 필요가 있다면 새로운 크기의 배열을 만들어 사용해야 한다.


배열은 참조형이기 때문에 주소를 얼마든지 다시 할당 받아 참조될 수 있다. 값 또한 선언된 배열의 원하는 부분을 복사해서 사용할 수 있는데 자바에서 제공하는 메소드 중에 System.arraycopy() 메소드를 사용하면 array의 원하는 부분을 복사할 수 있다.


형식은 다음과 같다.


public static void arraycopy(Object src, int src_index, Object dst, int dst_index, int length)

=> src를 src_index부터 dst에 dst_index로 length만큼 복사한다.


p.159

java.util.Arrays.sort

생성된 배열의 값을 가지고 내부적으로 정렬을 하려면 여러 가지 공식에 의해 값을 구현해야 하지만 자바에서 제공하는 java.util.Arrays.sort 메소드를 사용하면 배열이 가진 상수의 정렬을 쉽게 할 수가 있다. java.util.Arrays.sort 메소드는 자바에서 제공되는 모든 자료형의 배열을 정렬할 수 있으며 원하는 위치를 지정하면 지정된 부분만 정렬을 할 수도 있다.


형식은 다음과 같다. 


public static void sort(Data Type [] a)

public static void sort(Data Type [] a, int fromIndex, int toIndex)


p.161

자바에서도 커맨드 라인을 통해 클래스 실행 시에 값을 main메소드로 전달해서 사용할 수 있다. 클래스를 실행할 때 공백을 기준으로 클래스명 뒤에 값을 전달하게 되면 인덱스를 부여 받아 main 메소드의 String[] args의 배열로 상수가 전달된다. 만일 CmdTest란 클래스에 A123 B234라는 데이터를 공백으로 구분하여 값을 실행시에 대입한다면 다음과 같이 선언될 수 있다. 입력된 값을 main(String[] args)을 통해 전달되며 args[0] = "A123" args[1]="B234"로 대입된다. 단, 커맨드 라인으로 입력되는 값들은 숫자를 입력하더라도 문자열로 대입된다는 것을 잊지 말도록 한다.


p.172

가변 배열은 배열의 차원을 각괄호 [ ] 로 구분할 때 일차원 배열의 크기만을 지정(행)해서 지정된 일차원을 이용해서 또 다른 일차원을 생성한 주소를 대입하는 형식으로 선언된다.


형식은 다음과 같다.


데이터타입 [ ] [ ] 배열명 = new 데이터타입 [요소의 크기] [ ] ;

* 반드시 일차원 요소만 요소의 크기를 선언하며 뒤의 [ ] 부분은 비워둔다.


p.173

가변은 배열의 배열을 선언하거나 메모리를 효율적으로 필요한 부분만 관리해야 하는 경우 사용한다.


모든 배열은 자유영역 공간(Heap)에 메모리를 할당한 것을 참조하는 형식으로 이루어지며 배열을 선언하면 자동으로 데이터의 default값으로 채워진다.


p.




'국비교육 > JAVA' 카테고리의 다른 글

1월 4일 국비교육 26일차  (0) 2019.01.04
1월 3일 국비교육 25일차  (0) 2019.01.03
국비교육 24일차  (0) 2019.01.02
국비교육 23일차  (0) 2018.12.28
12월 27일 국비교육 22일차  (0) 2018.12.27

댓글