제가 올린 질문에 대해 답좀 적어주세요(자바, java) - 이론

제가 올린 질문에 대해 답좀 적어주세요(자바, java) - 이론

작성일 2004.10.13댓글 1건
    게시물 수정 , 삭제는 로그인 필요

1. JRE가 필요한 이유를 설명하시오.

2. 자바 컴파일러와 해석기에 대해 자세히 기술하시오.

3. Application과 Applet의 차이를 기술하시오.

4. read()함수 사용 시의 예외에 대해서 기술하시오.

5. java에서 제공하는 기본 데이터 형에 대해 자세히 기술하시오.

6. 일반 변수와 객체 변수의 차이를 자세히 기술하시오.

7. if와 switch에 대해 자세하게 비교 설명하시오.

8. while과 do-while의 차이를 비교 설명한 후 for문과 사용법 차원에서 비교 설명하시오.

9. left-shift와 right-shift 비트 연산자를 *, / 연산자와 비교 설명하고, Performance 차원
에서 비교하시오.

10. Exclusive-OR와 AND 연산자의 사용법을 자세히 기술하고 사용, 응용 분야에 대해 기술하시오.



profile_image 익명 작성일 -

숙제인가요? :)

1. JRE가 필요한 이유를 설명하시오.

- 자바는 OS/머신(일반적으로 합쳐서 플랫폼이라고 합니다) 에 무관하게 실행되는 것을 목표로 하는 언어입니다. 그래서 자바 가상머신 (자바가 설치된 플랫폼의 입장에서 보면, 하나의 프로그램입니다) 을 실행해서 플랫폼을 대신하게 하고, 가상머신 위에서 자바 프로그램을 실행합니다. JRE (Java Runtime Environment - 자바 실행 환경) 는 자바 가상머신을 포함해서, 자바 프로그램이 실행될 수 있는 환경을 구성하는 프로그램 세트입니다. 즉 자바 프로그램은 JRE 가 설치된 플랫폼에서 실행될 수 있습니다.

2. 자바 컴파일러와 해석기에 대해 자세히 기술하시오.

- 컴파일러는 자바 언어로 작성된 *.java 파일로부터, JVM (Java Virtual Machine 자바 가상머신) 에서 실행 가능한 바이너리(실행파일 - *.class 파일) 를 생성합니다. 이 과정을 컴파일 이라고 합니다. 해석기는 자바 바이너리를 읽어들여 JVM 이 실행할 수 있는 형태로 해석합니다.

3. Application과 Applet의 차이를 기술하시오.

- 애플리케이션은 JVM 위에서 단독 실행 가능한 자바 프로그램입니다. 애플릿은 웹브라우저 상에서 실행되는, 서버와의 통신 기능 등 웹 상에서 필요한 기능들이 지원되는 자바 프로그랩입니다.

4. read()함수 사용 시의 예외에 대해서 기술하시오.

- 어떤 클래스의 메소드인지 알아야 답변이 가능한 내용입니다. 자바 API 에서는 단독 함수를 지원하지 않습니다. 모든 함수는 클래스의 메소드로서 지원됩니다. 예외 (Exception) 은 프로그램 개발 시에 예측 가능한 에러 상황 발생 시, 프로그램을 종료하지 않고 처리해주기 위한 것입니다. 일반적으로 메소드를 호출할 때 발생할 수 있는 에러에 대해 미리 정의하고, 처리 방법을 기술해둡니다.

- 아마도 java.io.FileInputStream.read() 일 것으로 추측해봅니다. 만약 그렇다면... 발생하는 예외는 java.io.IOException 입니다. IO 에 관련된 에러가 발생할 때 throw 되는 예외입니다. FileInputStream 이 참조하는 파일이 없거나, 다른 프로그램에서 읽는 등의 이유로 읽을 수 없거나, 권한이 없어서 읽을 수 없는 등, 파일을 읽는 데 실패하면 발생합니다.

5. java에서 제공하는 기본 데이터 형에 대해 자세히 기술하시오.

- byte : 1바이트 길이의 정수형입니다. (8 bit)
- short : 2바이트 길이의 정수형입니다. (16 bit)
- int : 4 바이트 길이의 정수형입니다. (32 bit)
- long : 8 바이트 길이의 정수형입니다. (64 bit)

- float : 단정도 부정소수형입니다. (32 bit)
- double : 배정도 부정소수형입니다. (64 bit)

- boolean : true, false 의 두 값을 가집니다.
- char : ASCII 1 문자를 나타냅니다. (8 bit)

6. 일반 변수와 객체 변수의 차이를 자세히 기술하시오.

- 일반 변수는 기본 데이터 형의 변수입니다. 일반 변수를 선언하면, 형 에 따라 8 ~ 64 bit 의 저장 공간을 메모리에 할당합니다. 일반 변수에 값을 대입하면 그 공간 내에 값을 저장합니다.

- 객체 변수는 객체를 가리키는 변수를 말합니다. 객체는 저장에 필요한 공간의 크기가 객체 정의에 따라 달라집니다. 그러므로 변수를 선언해도 객체에 객체를 저장할 공간을 할당하지 않습니다. 객체는 생성자를 호출하여 생성되는데, 이 때 객체를 저장할 메모리 공간이 할당됩니다. 객체 변수에 객체를 대입하면 객체가 저장되어있는 메모리 주소 값이 객체 변수에 할당됩니다. (즉 객체 변수를 선언하면 객체 자체를 저장할 공간이 아니라 객체 저장 공간의의 주소 값을 저장할 공간이 메모리에 할당됩니다.) -> 원래 개념이 복잡해 설명도 복잡합니다. 자바 책이나 자료에서 reference (참조) 에 대한 내용을 찾아보세요.

7. if와 switch에 대해 자세하게 비교 설명하시오.

- if 는 () 안의 판단문의 판단 결과가 true 이면 {} 안의 내용을 실행합니다. else if 도 마찬가지입니다. 즉 판단문의 판단 결과로 분기합니다.

if (판단문 A) {
...
} else if (판단문 B) {
...
} else {
...
}

- switch 는 판단문의 값에 따라, 특정 값을 기준으로 미리 지정해 둔 구문으로 분기해서 실행합니다. 즉 판단문의 값에 따라 분기합니다.

switch (판단문) {
case 값A :
...
break;
// (break 가 필수인 것은 아닙니다. 다만 일반적으로 이렇게 사용합니다)
case 값B :
...
break;
case 값C :
...
break;
default :
....
}

8. while과 do-while의 차이를 비교 설명한 후 for문과 사용법 차원에서 비교 설명하시오.

- while 은 실행문 앞에 판단문이 있습니다.

while (판단문) {
...
}

- do-while 은 실행문 뒤에 판단문이 있습니다.

do {
....
} while (판단문);

============

- 일반적으로 while, do-while 문을 사용할 때에는 실행문 내부에서 판단문에 관련된 변수를 변화시켜가면서, 판단문이 true 인 동안 반복 실행합니다.

즉 아래와 같은 일반적 구조를 가집니다.

while (판단문) {
....

판단문에 관련된 변수 변화;
}

do {
....

판단문에 관련된 변수 변화;
} while (판단문);

- for 문에서는 판단문과 변수 변화문을 묶어서 보기 편하게 만들었습니다.

for (초기화 ; 판단문 ; 변수 변화문) {
....
}

* for 문의 실행 순서는 초기화 -> 판단문 -> 실행문 -> 변수 변화문 -> 판단문 -> 실행문 -> 변수 변화문... 으로 반복되며, 판단문이 거짓이면 종료합니다.

* for 문의 각 부분의 역할은 필수적인 것이 아닙니다. 어떠한 내용이라도 들어갈 수 있습니다. 그러나 설명한 대로의 작성이 권장됩니다.

9. left-shift와 right-shift 비트 연산자를 *, / 연산자와 비교 설명하고, Performance 차원에서 비교하시오.

- shift 계열의 연산자들은 변수의 메모리상에서 표현된 bit 열을 그대로 왼쪽이동 혹은 오른쪽 이동하는 연산자입니다. 변수의 값은 메모리 상에 이진수의 형태로 표현됩니다. 그러므로 bit 열을 왼쪽 이동하는 것은 2^이동자리수 만큼을 곱하는 것과 같고, 오른쪽 이동하는 것은 2^이동자리수 만큼으로 나누는 것과 같게 됩니다. 즉 left-shift(>) 는 2 진수 나눗셈과 같은 효과를 냅니다. (물론 unsigned integer 계열 변수일 때입니다.)

- 기계어 차원에서 봤을 때 비트 연산자들은 일반 연산자들에 비해 매우 짧은 기계어 코드들로 구현됩니다. 그래서 일반 연산자에 비해 무척 빨리 실행됩니다. (performance 가 좋다는 말과도 같습니다)

10. Exclusive-OR와 AND 연산자의 사용법을 자세히 기술하고 사용, 응용 분야에 대해 기술하시오.

- XOR 은 bit 값의 특정 영역의 역을 구하기 위해 사용됩니다. (1 XOR 1 = 0 XOR 0 = 0, 1 XOR 0 = 0 XOR 1 = 1) 아래를 보면

10101101
xor 11110000
------------
01011101

xor 의 두번째 피연산자의 비트값이 1 인 영역은 역 값이 나왔고, 0 인 영역은 원래대로의 값이 나왔음을 알 수 있습니다. 이렇게 bit 값의 특정 영역에서 역 값을 취할 때 XOR 을 사용합니다.

- AND 는 bit 값의 특정 영역을 남기고 나머지를 0 으로 치환하기 위해 사용됩니다. ( 1 AND 1 = 1, 1 AND 0 = 0 AND 1 = 0 AND 0 = 0)

10101101
and 11110000
------------
10100000

and 의 두번째 피연산자의 비트값이 1 인 영역은 원래대로의 값이 나왔고, 0 인 영역은 0 으로 치환되었음을 알 수 있습니다.

이렇게 원하는 영역의 값을 변화시키고 나머지는 남기는 동작을 마스킹이라고 합니다. XOR, AND, OR 등의 논리 비트 연산자들은 비트값의 마스킹에 주로 사용됩니다.



에 올라오기에는 좀 질문 범위가 넓지 않은가 합니다. 자바 서적을 옮기는 듯한 기분이네요. ;;
어쨌든 모두 작성했으니 도움 되셨으면 좋겠군요. 자바 공부를 본격적으로 하셔서 질문이 아니라 답변을 작성하는 입장이 되시길 바랍니다. :)

대해 답좀 적어주세요(자바, java) - 이론

... read()함수 사용 시의 예외에 대해서 기술하시오. 5. java에서 제공하는 기본... > 지식인에 올라오기에는 질문 범위가 넓지 않은가 합니다. 자바 서적을 옮기는...

자바스크립트

... 알려주세요. <@script language="javascript... 님이 올린 소스에 대해 부연하겠습니다. ①checkInput... 우선 제가 적어드린 위 내용만 이해해도...

대한 가장기초적인것들에대해..(내공100)

... 질문에 답변드리도록 하겠습니다. 제가 자기개발로 컴퓨터에 대해 배우고 싶어서 이런 글을 씁니다. 부디 개념글만 달아주세요 .. 1. 컴퓨터에대해 전혀 지식이...

자바를 어떻게 해야 c언어를 어찌하면...

... 책이랑 자바책이랑 막 인터넷으로 대충 기본서 샀는데 진짜1도 모르겠다는... 공부 안했다가 하니까 머리가 지끈지끈 일단 다시 C언어 책 사야할듯요 책좀 추천해주세요...

국내자격증에 대해 질문합니다.<SCJP...

움..지식인들을 보다가 제가 원하는 질문과 답이없길래... 2번질문 전문적인거같은데.. 아는만큼... 교육센터의 교육팀장이었습니다. 더 궁금하신 점 있으시면 쪽지주세요~

정보처리산업기사 취득 및 취업 질문!

... 쪽쪽 적어주세요) 네이버 형님들 인강이나 학원은 제가 찾아볼게요 홍보보단 저 질문에 답좀 부탁드립니다... 이 외에 따두면 좋은 자격증 있으면 팁으로 ...

2014년 3월 고2 전국연합 국어 B형

국어 B형 답좀 갈켜주세요 급합니다.. 질문을 두 군데... 발표자는 플레밍의 실험에 대해서는 페니실린을 발견 한... 경우가 적어진다. (나) - 2 자료는 저작권을 침해하는 사례...

DBA에 대해 질문했던 학생입니다.

... 알려주세요!! 그리구.. 제가 자바프로그래밍에도... 것에 대해 전문가입니다. 님 프로필은 모르겠지만... DB개발자 과정이던 취업자과정이던 아마도 문법적인 이론후에...

컴퓨터 오류에관한 질문 빨리 대답좀 ㅠㅠ

... 인터넷 자료실등에서 최신 자바 다운받기..심마니... Q:[질문] 치명적인 오류 도와주세요~!! 컴퓨터 사양:인텔... 컴퓨터가 제가 있나? CPU랑 메인보드 업그레이드...