Application

: 일반적으로는 응용프로그램, 여기서는 applet과 대비된 의미. 웹 브라우저에 종속되지 않은 독립적인 응용 프로그램. 실행할 때 JVM(Java Virtual Machine)에 의해 실행됨. 

Applet 

: Sun 사에서 만든 용어, HTML 문서에 포함되는 소규모의 자바 응용프로그램 의미. 자바 이전에는 HTML문서가  내용이 고정되어 있고 완전한 프로그램을 포함할 수 없었다. Java이후 HTML 문서가 applet을 포함하게되어 동적으로 변할 수 있는 문서가 됨.
사용자가 인터넷으로 서핑하다가 Applet이 들어있는 HTML 문서를 참조하면 그 안에 Applet도 사용자 컴퓨터로 전송이 되고 이 Applet은 사용자의 컴퓨터에 있는 웹 브라우저에 의해 실행된다. Applet에서 JVM의 기능을 하는 것이 웹브라우저이다.

자바의 특징 

( c++ 이후 단점을 개선해서 나왔기 때문에 주로 c++과 비교)

  1. 플랫폼에 독립적이다. “Write Once Run Anywhere”
: 자바는 컴파일을 약 80%만 진행함. C언어와 달리 컴파일 후 machine code로 나오는 것이 아니라 bytecode로 나온다. 이 바이트 코드는 어느 플랫폼에서 컴파일하든 동일한 코드로 나온다. 바이트 코드는 머신코드가 아니기 때문에(windows에서 .exe가 아닌 .class 파일) 컴퓨터에서 바로 실행될 수 없고 중간에 interpreter 또는 JVM에 의해 실행된다.

  1. 자바는 객체지향 언어
: 캡슐화(encapsulation), 상속성(inheritance), 다형성(polymorphism) 지원

  1. 자바는 안전하다
: 애플릿이 네트워크에서 다운되어 실행될 때 이를 안전하게 실행할 수 있는지 검증과정을 거친다. 애플릿 코드는 클래스 로드에 의해 로드되며, 바이트 코드 검증기는 코드가 실행되기 이전에 부적절한 클래스의 접근이나, 스택의 오버플로우, 부적절한 자료형 변환 등에 관한 검사를 시행한다.
 바이트 코드 검증 과정은 시스템의 자원의 사용을 제어하는 보안관리자와 함께 실행된다. 이 보안 모델을 sandbox 모델이라고 하는데 그 이유는 다운된 애플릿이 모래상자 외부에 있는 자료의 사용을 허용하지 않기 때문. 따라서 애플릿이 다른된 서버 외에 다른 컴퓨터와는 통신할 수 없으며, 다운된 시스템 내의 파일을 접근할 수 없다.

    4. 자바는 멀티스레딩 기능을 제공
: c++은 멀티스레딩를 직접 지원하지 않지만 자바는 멀티스레딩 프로그램밍을 지원한다. lock이나 monitor를 사용하지 않고 메소드를 정의할 때 synchronized를 사용하면 시스템에서 자동으로 처리해준다.

    5. 자바는 동적이다.
: 라이브러리들은 실행파일에 영향을 끼치지 않고 자유롭게 새로운 기능을 추가할 수 있다. c, c++과 다르게 자바는 실행되기 직전에 라이브러리들을 동적으로 링크하기 때문에 실행할 때 변경된 라이브러리가 자동적으로 참조된다. 

자바 프로그램의 구성

    1. 자바 프로그램의 구성
: 자바 프로그램 요소들은 일반적으로 아래 순서대로 작성하는 것이 관례

1
2
3
4
5
6
7
8
9
10
11
12
13
package
import
class 클래스이름 extends 수퍼클래스이름 {
    클래스 변수
    인스턴스 변수
    클래스 메소드
    인스턴스 메소드
    main 메소드 {
        지역 변수
        객체 생성
        실행문
    }
}
cs

-package : 선택사항. 이 프로그램 소스로 만들어진 클래스가 어떤 패키지(class library)에 소속되는지 알려줌
-import : 선택사항. 새로 만드는 클래스 안에서 다른 클래스를 사용하고자 할 때 그 클래스가 속한 패키지 알려준다.
-클래스 변수 : 클래스 전체에 한 개만 만들어지는 변수. 프로그램에서, 모든 객체들 간에 공유할 수 있는 변수
-인스턴스 변수 : 인스턴스(객체)마다 별도로 만들어지는 변수
-클래스 메소드 : 객체의 생성과 무관하게 실행할 수 있는 메소드
-인스턴스 메소드 : 객체를 대상으로 실행하는 메소드
-main 메소드 : 클래스 메소드의 하나, 애플리케이션에 이 메소드가 반드시 있어야 하며, 제일 첫 번째 실행되는 문장이 main 메소드의 첫번째 실행문.

    2. 자바의 문장
: 전체적으로 C와 비슷. 자바는 대소문자를 구분. C와 다르게 한번 선언한 변수를 아래에서 동일한 이름으로 선언할 수 없다.


'Programming > Java' 카테고리의 다른 글

Java_향상된 for문  (1) 2018.01.30
Java_배열(Array)  (0) 2018.01.29
Java_break와 continue  (0) 2018.01.28
Java_화면 출력과 키보드 입력  (0) 2018.01.28

+ Recent posts