School Study

[BSP]업무일지 - 2010726

룸훼훼 2010. 7. 27. 09:13
반응형

   

JAVA 시작!

   

특성-

자바를 개발한 선 마이크로는 자바를 아래와 같이 정의 하고 있는데 여기에 사용한 단어들이 자바의 특징을 잘 나타내 주고 있다.

Java: A simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high-performance, multithreaded, and dynamic language

   

  • 자바는 매우 간단하다. 자바는 C++에 가깝지만 훨씬 간단하다. 자바에는 고급 언어들에 들어 있는 여러 가지 요소들 중에서 반드시 필요하지 않다고 생각된 부분들은 모두 빼 버렸다..

       

  • 객체 지향적이다. 자바는 숫자(int, float, long 등)나 논리값(true, false)을 제외한 거의 모든 것이 객체로 구성되어 있다. 실제로 자바는 object class에서 모든 클래스를 파생한다.

       

  • C++과 비교할 때 자바는 단일 클래스 상속만 지원하여 다중 클래스 상속시 발생할 수 있는 개념의 혼란을 막았다. 또, 자바는 연산자 오버로딩과 함축적 유형 변환을 지원하지 않는다.

       

  • 분산 환경을 지원한다. 자바에는 TCP/IP 라이브러리가 기본적으로 포함되어 있다. 또한 http와 ftp 프로토콜을 기본적으로 지원한다.

       

  • 인터프리터 언어이다. 자바는 정확하게 말하면 컴파일 언어인 동시에 인터프린터언어이다. 자바는 먼저 텍스트 소스를 컴파일하여 2진 파일(클래스 파일)로 만든 다음 자바 런타임이 클래스 파일을 인터프리트하면서 실행한다. 먼저 시스템에 무관한 2진 파일을 만듬으로써 자바는 컴파일 언어에 가까운 속도와 시스템 독립성을 동시에 얻을 수 있었다.

       

  • 강고하다. 이것은 자바가 C++과 마찬가지로 컴파일때에 유형 검사를하여 에러를 막을 뿐만 아니라 도구들까지 명확한 유형 선언을 하도록 한다. 자바는 포인터개념에 있어 포인터 연산을 지원하지 않는다. 이는 잘못된 주소를 가르킬 가능성을 사전에 없앤 것이다. 자바는 포인터를 표현하기 위해 실제 배열을 사용하여 메모리 경계를 범할 가능성을 없애고 메모리 검사를 가능하게 하였다. 자바는 모든 메모리 접근을 자바 시스템이 관리하고 제한하며 또한 예외 핸들링을 하여 시스템 붕괴의 우려가 없다. 예를 들어 자바는 리소스 관리(garbage collection)를 하는데 사용이 끝난 리소스를 시스템이 메모리에서 삭제하는 방식을 채택하고 있어 메모리 누출에 대한 고민을 프로그래머가 할 필요가 없다.

       

  • 자바는 안전하다. 자바는 포인터 개념이 없고 유형 정의가 강고하여서 실행 전에 클래스 파일을 이용한 프로그램의 검사가 가능하다. 실제로 웹 브라우저가 애플릿을 실행하기 전에 보안 검사를 한다.

       

  • 기계 중립적이다. 웹의 서버-클라이언트 환경에서 이기종 서버-클라이언트의 지원은 매우 중요한 문제이다. 자바는 웹을 기본 환경으로 하고 있기 때문에 처음부터 이 문제를 염두에 두고 만들어졌다. 자바의 실행 파일은 기계 중립적인 이진 코드(클래스) 파일이다. 이 클래스 파일을 기계 종속적인 자바 런타임이 인터프리트하여 실행시키는 것이다. 따라서 자바 런타임이 설치된 시스템에서는 어디서나 자바 프로그램을 실행할 수 있다.

       

  • 이식성이 높다. 자바는 유형 정의를 시스템에 무관하게 정의하고 있다. 따라서 C++에서처럼 시스템에 따라 동일한 유형(예를 들어 int)이 다르게 사용되는 경우가 없다. 또한 기계 중립적인 자바의 특성은 곧바로 자바의 높은 이식성을 말해 준다.

       

  • 높은 수행능력을 제공한다. 자바는 기계 중립적인 이진 코드로 미리 컴파일된 것을 실행 때 기계어 코드로 번역하여 수행하는 방식을 채택하고 있고 또 이진 코드는 기계어로 번역될 것을 감안하여 설계되었으므로 그 수행능력이 C나 C++ 컴파일러에 의 한 기계어 코드에 비견할 만하다. 현재 자바 이진코드의 수행속도는 C 컴파일러의 약 20분의 1이라고 한다.

       

  • 멀티 쓰레딩을 지원한다. 윈도우 NT, 윈도우95나 솔라리스는 쓰레드를 지원하는 운영 체제들이다. 윈도우 3.1은 멀티 쓰레드를 지원하지 않으므로 자바 런타임을 구현할 수 없다. 쓰레드는 하나의 프로세스 인스턴스(인스턴스는 객체의 실제 변수로 생각하면 된다.)가 실행되는 경로로 정의되는데 멀티 쓰레드를 지원할 경우 하나의 프로그램 단위가 동일한 쓰레드를 동시에 수행할 수가 있다. 보통 사용자 인터페이스 쓰레드와 장시간 계산이 필요한 쓰레드가 동시에 필요할 때 멀티 쓰레드가 효과적이다. 특히 자바는 멀티 프로세서 하드웨어를 지원하도록 설계되었으므로 멀티 CPU 시스템에서 높은 효율을 낼 수 있다.

       

  • 동적이다. 자바 인터페이스를 이용하면 하나의 모듈을 갱신할 때 다른 모듈을 모두 갱신할 필요가 없다. 이것은 인터페이스가 모든 인스턴스 변수와 도구의 실행문을 배제한 채 객체 간의 상호 작용을 정의하기 때문이다.

       

       

       

       

변수(Variable)

수학에서 변수(變數)라는 것을 배운 적이 있을 것이다. 수학에서 변수는 x나 y같은 문자로 된 기호로 표시 한다. 변수는 정해진 값이 아니라 경우에 따라 여러 가지 값을 취하는 것으로 방정식이나 함수등 에서 사용을 하고 있다.

JavaScript에서도 변수라는 것을 사용을 하는데 수학에서 말하는 변수와는 차이가 있다. 수학에서는 변수의 값을 수자(數字)에 국한 하고 있지만 JavaScript에서는 수자뿐만 아니라 문자나 논리값 같은 것도 변수를 사용한다.

JavaScript의 변수는 수학의 변수와는 달리 어떤 정보를 변수 이름에 기억시키는 용도로 사용이 되고 있다.

변수이름(예 : name) = 변수값(예 : "홍길동" )

변수 이름은 문자나 underscore ("_")로 시작해야 하고, 다음은 숫자 0~9 또는 알파벳 소문자 a~z, 알파벳 대문자 A~Z 만을 사용할 수 있도록 하고 있다. 예를 들어 _A, abc_d, abc123 으로 변수이름을 지정할 수 있다.

변수의 이름을 정하여 아래와 같이 변수의 값을 정해 준다.

address="서울 강남구 대치동" 또는 var address=""서울 강남구 대치동"

var는 address라는 변수는 함수안 에서만 사용되는 변수를선언 하는 것이다. 이를 내부 변수라고 한다. (아래에서 다시 설명 함)

변수에 지정할 수 있는 값은 웹 페이지에 있는 모든 객체들이 다 포함하고 있지만 우선 대표적인 값들은 아래와 같다.

숫자 : 3, 2.15

논리값 : true, false

문자 : "abc", "안녕", "abc123"

null

  

수자(數字)

수자(數字)는 정수나 소수점을 갖는 부동 소수점 있다. 정수에도 몇 진수냐에 따라서 3가지가 있는데 10진수(decimal), 8진수(octal), 16진수(hexadecimal)이다.

10진수는 맨 앞에 0(zero)이 없는 숫자들의 조합이다. 숫자의 맨 앞에 0(zero)이 오면 8진수로 된다. 8진수는 0에서 7까지로 구성된다. 맨 앞에 0x 또는 0X가 오면 16진수가 된다. 16진수는 0에서 9가지의 정수와 a에서 f 또는 A에서 F까지의 알파벳을 갖는다. 예를 들면 0x345, 0567, -123, 3.14, 0.5 등이다.

   

  

논리값(Boolean)

Boolean 값은 true와 false이다. 조건 문에서 제어를 위해 주로 사용한다.

   

  

문자(文字)

문자열 값은 이중 따옴표(")나 따옴표(')로 정수나 문자의 조합을 둘러쌓는 것이다. 예를 들면 : "안녕", 'I am 777', '1234', "첫 번째 줄 \n 다음줄" 등이다.

위의 \n은 특수 문자로 다음 줄로 글을 줄 넘김 한다는 말이다. 특수문자는 \b : backspace, \f : form feed, \n : new line, \c : carriage return, \t : tab, \\ : backslash , \" : 이중따옴표, \' : 따옴표인데 이것들로 alert, prompt, confirm 박스의 내용을 쓸 때나 <TEXTAREA>에 글을 넣을 때, 글자들을 편집할 수 있다.

  

Null

아무런 값도 없다는 뜻이다. 주로, 어떤 값을 지우거나 이벤트를 지울 때 사용한다.

var notV = null

  

타입(Type : 변수의 )

JavaScript에서는 어떤 변수를 선언할 때 그 변수가 수자인지 문자인지 하는 등의 형(type)을 따로 선언할 필요는 없다. JavaScript에서는 C와 같은 프로그램 언어처럼 엄격하게 변수의 형을 지정할 필요가 없기 때문에 아무 변수나 만들고, 지정해 주는 것이 그 변수의 형이 된다.

var X = 5; 이것은 X가 숫자로 지정된다. 여기에 다시 X = "ABC";를 지정하면 문자열 "ABC"를 가지는 변수가 된다. 비슷한 특징으로 문자에 숫자를 더하거나 숫자에 문자를 더하면 문자로 바뀐다. var my = "ver" + 4; 로 하면 변수 my의 값은 "ver4" 로 된다.

   

  

내부, 외부변수 선언

변수는 내부, 외부 변수로 선언할 수 있는데 내부 변수는 어떤 function 안에서만 사용할 수 있는 변수이고 반면에 외부변수는 다른 function 안에서도 사용할 수 있을 뿐만 아니라, 다른 창이나 frame의 이름으로 다른 페이지에서도 사용할 수 있다.

내부변수는 선언 시 변수명 앞에 "var "를 꼭 붙여야 한다. 안 붙이면 외부변수로 선언된다.

function variableDeclare() {

var interior = XX;

outdoor = XX;

}

여기서 interior는 내부 변수이고 outdoor는 외부변수이다. 변수를 function 안에서만 사용할 때는 내부변수로 선언하는 것이 좋다. 왜냐하면, 다른 function에서 외부변수로 interior를 선언했는데, function에서 내부변수를 선언 할 때 var를 붙이지 않으면 외부변수가 되어 다른 function 안에 있는 interior의 값을 바꾸기 때문이다.

그러므로 변수는 가급적 내부변수로 선언을 하는 것이 안전하고, 외부변수로 선언 할 때는 변수명에 주의해야 한다. 또한 if 나 else, break, for, null, var 같은 JavaScript가 내부적으로 사용하는 단어는 변수 이름으로 사용해서는 안 된다.

   

---------------------------------------------------------------------------------------------------

예제1-1

기본적인 프로그램 코딩과 실행.

-컴파일은 javac 파일명.java로 하면된다.

실행은 java 파일명을 입력하게 되면 실행이 된다.

   

이클립스에서 실행.

   

(막간 단축키)

Ctrl + F11 = 컴파일

Ctrl + spacebar = 자동완성

   

   

   

반응형

'School Study' 카테고리의 다른 글

[BSP]업무일지 - 2010728  (0) 2010.07.28
[BSP]업무일지 - 2010727  (0) 2010.07.28
[BSP]업무일지 - 20100719  (0) 2010.07.19
[업무일지]20100712-임종현  (0) 2010.07.12
[BSP]업무일지 - 20100702 - 임종현  (0) 2010.07.12