JAVA
-
스레드 기본(2)JAVA/in 기초 2014. 3. 5. 01:05
스레드의 상태 스레드의 제어 스레드를 만들고 시작하는 것보다 스레드를 제어 하는 것이 더 중요 하다. 스레드 제어의 기본 스레드를 제대로 제어하려면 스레드의 상태부터 알아야 한다. 스레드의 상태 시작 상태(Start 상태) 동작할 수 있는 상태(Runnable 상태) 동작 상태(Run 상태) 대기 상태(NotRunnable 상태) 종료 상태(Dead 상태) 제일 먼저 스레드를 만든 후 start()를 호출햇을 때 Start 상태가 된다. 그리고 바로 Runnable 상태로 진입하게 된다. Runnable 상태에서 CPU의 제어권을 할당 받는 순간 Run 상태가 되었다가 일정 시간 동안 작압을 한 후 Runnable 상태도 되돌아와서 자신의 순서가 되기를 기다린다. 결국 Runnable 상태에 있는 스레드..
-
static 변수는 하나의 프로세스에서 하나의 값만 가진다.JAVA/in 기초 2014. 3. 5. 01:03
static 변수는 하나의 값만을 가진다. static 변수를 가진 class 의 인스턴스를 새로 생성 하여도 static의 값들은 한 곳의 메모리만 바라보게 된다. 샘플 public class TestStaticInt { public static int i = 0; public static void main(String[] args) { TestStaticInt t1 = new TestStaticInt(); t1.i = 1; TestStaticInt t2 = new TestStaticInt(); t2.i = 2; TestStaticInt t3 = new TestStaticInt(); t3.i = 3; TestStaticInt.i = 4; System.out.println(t1.i); System.out..
-
스레드 기본(1)JAVA/in 기초 2014. 3. 5. 00:08
프로세스와 스레드의 개념 프로세스(Process)하나의 프로그램은 하나의 프로세스에 해당한다. 멀티태스킹(Multi-Taking)프로세스의 경우 운영체제에서 자동으로 관리 해주다.운영체제 차원의 프로세스 관리를 멀티 태스킹이라고 한다. 프로세스와 스레드(Thread)하나의 프로세스 내에는 여러 개의 스레드가 존재 할 수 있다. 스레드란?하나의 프로그램 내에서 실행되는 메소드같은 순간에 두 개의 매소드가 동시에 실행되면서 두 개의 스레드가 동작 하는 것이다. 스레드 프로그램을 할 때 주의해야 할 사항우선권(Priority) : 동시에 두개이상의 메소드가 실행되기 때문에 어느 메소드에게 작업할 권한을 많이 줄 것인지에 대해서 결정 하는 것.동기화(Synchronization) : 하나의 자원을 상대로 순서대..
-
가변 인수(Varargs)JAVA/in 기초 2014. 2. 23. 23:56
자바 5.0에서 소개되는 기법 중에서 가변인수(varargs)라는 것이 있다.가변인수라는 것은 필요에 따라 매개변수(인수)를 가변적으로 조정할 수 있는 기술이다.가변인수가 없던 시절에는 가변인수 대신 컬렉션이나 배열을 이용해서 가변인수를 대체 하고 있었다. public class VarArgMain { public static void display(String... strs){ for(String s : strs){ System.out.println("가변인수형태: "+s); } } } 사용법 VarArgMain.display("A","b", "C", "D");
-
Java에서의 상수와 enum(열거형) 사용 예제 및 설명JAVA/in 기초 2014. 2. 23. 23:41
기본적으로 자바에서 상수를 만드느 방법은 final 키워드를 이용하거나 인터페이스를 이용 하는 방법이 있다. * 상수의 의미는 단 한번 초기화를 거칠 수 있으며 절대 변경이 불가능 한 것을 이야기한다. 클래스에서 상수 선언 - final 키워드를 이용하여 상수로 선언한다. - 선언할때 단 한번 초기화를 한다. - static final로 선언하면 전역적인 상수가 된다. * 보통의 경우 static final로 선언하여 전역적인 상수를 만들어 사용한다. 클래스를 이용한 상수 선언 public class Constants4Class { private Constants4Class(){}; public static final double PI = 3.14; } 인터페이스를 이용한 상수 선언 - 인터페이스 맴버 ..
-
Formatting 기능JAVA/in 기초 2014. 2. 21. 01:13
JDK 5.0 이전에서는 Formatting 클래스를 이용해서포멧된 문자열을 만들 었지만, 자바 5.0부터는 String.format() 메소드를 이용해서 포멧된 문자열을 만들수 있다. String s1 = String.format("%s %d %f %o %h", "Hello", 100, 3.14F, 100, 100); 결과값 : Hello 100 3.140000 144 64%s : 문자열%d : 숫자%f : 실수 %o : 8진수%h : 16진수 String s2 = String.format("%,d", 1000000000); String s3 = String.format("%.3f", 31.23433200); String s4 = String.format("%,.2f", 123456.67890000);..
-
예외처리(Exception)JAVA/in 기초 2014. 2. 21. 01:03
Exception 이란?실행 타임에 발생하는 에러 이벤트를 이야기 한다. try와 catch 구문은?실행 타임에 발생하는 에러 이벤트를 감지하기 위한 도구 try{ //에러 감지 블럭 }catch(Exception e){ // 에러 처리 블럭 }finally{ //최정적으로 무조건적으로 처리해야 하는 작업 } Exception은 사용자가 임의로 발생 시킬수 있다.또한 특정 메소드에서 에러처리를 자신을 호출한 메소드에게 전달 할수 있다. public void throwMethod() throws Exception{ throw new Exception("메시지"); } 의무적으로 에러처리 루틴이 필요 한 곳 - 네트워크 입출력 - 데이터베이스 입출력 - 파일 입출력 - 메모리 입출력
-
컬랙션(Collection)과 맵(Map) 계열JAVA/in 기초 2014. 2. 21. 00:53
컬랙션(Collection)과 맵(Map) 계열은 배열의 발전된 모델이라 볼 수 있다. 배열과 컬렉션이나 맵계열의 차이는, 배열은 크기를 동적으로 늘릴 수 없지만, 컬렉션이나 맵 계열 클래스는 동적으로 메모리를 확장 할 수 있다. 일반적으로 Collection은 집합적 데이터 관리를 위해서 사용 하며, Map은 검색적인 저장 공간을 지원 하기 위해서 사용 한다. List 인터페이스 - 순서가 있는 Collection 이다. - 데이터를 중복해서 포함 할 수 있다. Set 인터페이스 - 집합적인 개념의 Collection이며 순사의 의미가 없다. - 데이터를 중복해서 포함 할 수 없다. 동기화란? 하나의 객체에 여러 쓰레드들이 접근을 할때 한번에 하나씩만 접근이 가능 하도록 LOCK을 거는 행위를 말한다...