달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

'프로그래밍/java'에 해당되는 글 5

  1. 2016.08.04 Java Native Interface
  2. 2016.05.04 객체
  3. 2016.05.04 변수
  4. 2016.05.04 hello world
  5. 2016.02.13 리눅스에 자바 설치 및 실행 방법
2016. 8. 4. 17:58

Java Native Interface 프로그래밍/java2016. 8. 4. 17:58

JNI


1. JNI(Java Native Interface)이란?

다른 언어로 작성된 코드를 자바에서 호출할 수 있도록 만들어진 규약이다.  Native Code란 플랫폼에 종속적인 기계어 코드로 C/C++와 같은 언어를 말한다. 자바는 특정 플렛폼에서 제공하는 고유의 서비스의 기능을 모두 처리할 수 없기때문에 특수한 목적으로 제작된 하드웨어를 제어해야 할 필요가 있다면 자바만으로 해결하기 힘들다.


2. DLL이란 무엇인가?


라이브러리란 자주 사용되는 표준적인 함수를 매번 직접 작성해서 사용하는 것은 지나치게 시간 소모적이므로 표준화할 수 있는 함수를 미리 만들어서 모아 놓은 집합이며 보통 LIB확장자를 가진다. 이 라이브러리를 프로그램에 링크시키는 방식에는 정적 링크(Static Link)와 동적 링크(Dynamic Link)가 있는데 동적 링크 방식을 쓰면 DLL이 된다.


- 정적 링크(Static Link)

실행파일을 만들 때 프로그램에 라이브러리 코드를 복사하여 컴파일하는 방식이다. 그래서 파일의 크기는 커지지만 실행파일은 완전한 단독 실행파일이 된다. 컴파일이 끝나면 라이브러리 파일(LIB)이 없이도 프로그램을 실행할 수 있다.


- 동적 링크(Dynamic Link)

실행 파일을 만들 때 프로그램에 라이브러리를 복사시키지 않고 링크시키는 방식이다. 그러면 실행파일에는 호출할 함수의 정보만 포함되고 실제 함수 코드는 복사되지 않으므로 실행파일의 크기는 작아진다. 실행 파일은 실제코드를 가지고 있지 않으므로 프로그램 실행시에 DLL이 꼭 있어야 한다.


3. Shared object란 무엇인가?

라이브러리는 함께 링크될 수 있도록 보통 미리 컴파일된 형태인 오브젝트코드(Object code) 형태로 존재한다. 이 Object들은 자주 사용하는 함수의 소스를 컴파일하여 만들 수 있다.


*표준 시스템 라이브러리: /lib와 /usr/lib에 위치

*라이브러리의 이름은 대개 lib로 시작




1단계: Native Method를 선언하는 자바 클래스를 작성하고 컴파일한다.

여기서 Native Method란 Native code(C/C++)를 호출하기 위한 자바 함수이다.

native는 Native Function이라는 것을 알여주는 키워드이다.




[출처]

- DLL이란 무엇인가?

http://stdesignstar.tistory.com/entry/DLL-%EC%9D%B4%EB%9E%80-%EB%AC%B4%EC%97%87%EC%9D%B8%EA%B0%80




'프로그래밍 > java' 카테고리의 다른 글

객체  (0) 2016.05.04
변수  (0) 2016.05.04
hello world  (0) 2016.05.04
리눅스에 자바 설치 및 실행 방법  (0) 2016.02.13
:
Posted by youjin.A
2016. 5. 4. 15:22

객체 프로그래밍/java2016. 5. 4. 15:22

-클래스의 구조

class    class_name {

//필드 정의

data_type    field1;

...


//메소드 정의

return_type    method1(parameter) { ... }

...

}

클래스(class) : 자신만의 변수와 함수를 가지고 있는 자료형

객체(object) : 클래스를 통해 생성되는 인스턴스(instance)

필드(field) : 클래스 내의 멤버 변수. 필드는 메소드 밖에서 선언하며 같은 클래스 내부에서 모든 메소드가 직접 접근이 가능하다. 접근 지정자를 통해 외부 클래스로의 접근을 조절할 수 있다. 

메소드(method) : 클래스 내의 멤버 함수. 필드가 아닌 일반 변수를 메소드 내부에 사용할 경우, 지역 변수가 되어 메소드 내에서만 유효하다. public 메소드의 경우 외부 클래스에서 호출이 가능하다. static이 지정된 메소드는 선언된 클래스의 객체를 생성하지 않고 호출할 수 있다. 


-객체의 생성

class_name    object;    //참조 변수 선언

object = new class_name();    // 객체를 생성하고 참조값을 참조 변수에 저장


먼저 지정된 클래스는 객체의 주소를 저정할 객체 참조 변수를 생성한다.

new 예약어는 클래스 타입의 객체 메모리 공간을 할당하여 객체를 생성한다.


-메시지 전달

메시지(message) : 객체와 객체간의 상호 작용을 하기 위한 통신 메카니즘.

object.filed    // 객체에 포함된 필드 참조

object.method(parameter)    // 객체에 포함된 메소드 

객체의 외부에서 객체에 포함된 속성과 메소드를 참조하려면 도트(.) 연산자를 사용한다.


//클래스의 구조

class Car{

String name;

String color;

int engine;


public void displayCar() {

System.out.println("차이름 : " + name);

System.out.println("차색깔 : " + color);

System.out.println("배기량 : " + engine + "CC");

}

}


public class Example303 {

public static void main(String[] args) {

//객체의 생성

Car myCar;

myCar = new Car();


//메세지 전달

myCar.name = "sonata";

myCar.color = "black";

myCar.engine = 2000;

myCar.displayCar();

}

}




'프로그래밍 > java' 카테고리의 다른 글

Java Native Interface  (0) 2016.08.04
변수  (0) 2016.05.04
hello world  (0) 2016.05.04
리눅스에 자바 설치 및 실행 방법  (0) 2016.02.13
:
Posted by youjin.A
2016. 5. 4. 15:20

변수 프로그래밍/java2016. 5. 4. 15:20

-변수

데이터를 저장하는 공간

사용 전에 변수를 선언하여야 한다.

자료형      이름 


-문자열 변수

문자열은 문자 상수가 하나 이상 모여서 연속된 형태를 구성하며 끝에는 널 문자('\0')가 포함되어 있다.

기본 자료형은 아니지만 String 타입을 이용하여 문자열 변수를 선언할 수 있다.

String 클래스는 문자열을 처리하기 위해 java.lang 패키지에서 제공하는 클래스이다. String 클래스로 생성된 문자열은 문자의 변경이 불가능한 문자열 상수이다.


public class Example202{

public static void main(String[] args){

int num1, num2, sum;

String sentence = "The calculate is completed.";


num1 = 10;

num2 = 20;

sum = num1 + num2;

System.out.printf("num1 = %d, num2 = %d \n sum = %d\n", num1, num2, sum);

System.out.println(sentence);

}

}


'프로그래밍 > java' 카테고리의 다른 글

Java Native Interface  (0) 2016.08.04
객체  (0) 2016.05.04
hello world  (0) 2016.05.04
리눅스에 자바 설치 및 실행 방법  (0) 2016.02.13
:
Posted by youjin.A
2016. 5. 4. 15:06

hello world 프로그래밍/java2016. 5. 4. 15:06

public class HelloWorld{

public static void main(String[] args){

System.out.println("Hello World!!");

}

}



- 메인 클래스

자바 프로그램에는 반드시 메인 클래스가 존재해야 함.

public class 프로그램의_파일_이름


- 메인 메소드

메인 클래스에는 메인 메소드가 반드시 존재함.

프로그램 실행 시 자바 가상머신에 의해 자동으로 실행

public static void main(String[] args)


- 표준 출력 방법

System.out.print()

System 클래스: 자바 라이브러리를 통해 표준 입출력의 기능을 제공함.

out 스트림: 표준 풀력을 위해 시스템과 연결된 콘솔 창으로 데이터를 내보내는 역할을 수행.

표준 출력 메소드: print(), println(), printf()




'프로그래밍 > java' 카테고리의 다른 글

Java Native Interface  (0) 2016.08.04
객체  (0) 2016.05.04
변수  (0) 2016.05.04
리눅스에 자바 설치 및 실행 방법  (0) 2016.02.13
:
Posted by youjin.A

설치 방법

http://ngee.tistory.com/276


실행 방법

http://gangsanilee.tistory.com/entry/%EC%9A%B0%EB%B6%84%ED%88%AC%EC%97%90%EC%84%9C-JAVA-%EC%8B%A4%ED%96%89-%ED%95%98%EA%B8%B0

'프로그래밍 > java' 카테고리의 다른 글

Java Native Interface  (0) 2016.08.04
객체  (0) 2016.05.04
변수  (0) 2016.05.04
hello world  (0) 2016.05.04
:
Posted by youjin.A