Programming/JAVA(16)
-
[JAVA] failed to load the JNI shared library jvm.dll
몬가 해서 봤더니 64bit 운영체제에서 32bit 이클립스를 설치해서 생긴 오류..64bit로 다시 다운받아서 하니 잘된다!
2013.01.04 -
[JAVA] Collection 정리
Vector- 동기화 처리가 내부적으로 이루어진다.- 예를 들어 한 쓰레드에서 어떤 작업을 하고 있으면 다른 쓰레드에서는 접근할 수 없도록 한번에 하나의 쓰레드만 사용할 수 있도록 내부적으로 처리되고 있다.- 단일 쓰레드에서는 불필요한 처리 코드만 가지게 되기 때문에 ArrayList나 LinkedList에 비해 성능 저하를 가져오게 된다.- 동기화를 고려한다면 Vector의 사용 보다는 Collection.synchronizedCollection(Collection C)나 synchronizedList, Map 등을 사용하는 것이 낫다.ArrayList- 내부적으로 따로 동기화 처리를 하지 않는다.- 동기화 처리를 위해선 Collection.synchronizedCollection을 사용해야 한다.- ..
2013.01.03 -
[JAVA] 동적 라이브러리 호출
JAVA에서도 C++과 같이 동적으로 Lib(자바에서는 Jar)를 호출할 수 있다.
2013.01.03 -
[JAVA] volatile
얼핏보면 C volatile과 다른 문맥으로 쓰인 것 처럼 보였지만 알고 보면 같은 의미이다.첫번째로 C에서 volatile 선언은 optimize를 포기하겠다는 의미로 표현될 수 있다.가령 어떤 변수에 i = 0;i = 10;i = 20;i = 50;이라는 값을 대입했을 경우 volatile로 선언하지 않았을 경우, C 컴파일러에서는 optimize를 위해서 최종 50에 해당하는 값만 의미가 있다고 판단을 하고 나머지 0,10,20에 대한 값은 누락시킬 것이다.하지만 이를 방지하고 단계적 순차과정을 알아야 한다면 volatile로 선언을 해주어야 한다.두 번째는 멀티쓰레드 환경에서의 무결성 보장을 위한 측면으로 사용될 수 있다.프로그램은 메모리에 대입한 변수에 대해 매번 메모리로부터 값을 가지고 오는 ..
2012.12.27