본문 바로가기

자바

(33)
33. 싱크로나이즈 Synchronized는 하나의 인스턴스에서 n개의 스레드가 진행될 경우 객체의 선언되어 있는 인스턴스변수를 스레드가 공유하게 되어 인스턴스 값에 영향을 미치는 것을 방지하기 위해 나온 키워드이다. Synchronized를 이용하면 먼저 수행되는 스레드의 모든 작업이 끝날때 까지 다른 스레드가 기다려야 한다. package com.Synchronized; public class HowToUseSynchrnoized implements Runnable { int testNum = 0; @Override public synchronized void run() { //synchronzied를 이용하여 스레드의 우선 순위를 정한다. for(int i = 0; i < 10; i++) { if(Thread.curr..
32. 쓰레드 쓰레드란 하나의 프로세스에서 여러 가지 일을 하는 것이다. 예를 들어 노래를 들으며 문서작업을 하거나 채팅을 하며 게임을 하는 경우가 있다. java는 멀티스레드를 지원한다. 한가지는 객체 하나당 n개의 스레드를 공유하는 방식이고 다른 하나는 객체 하나당 하나의 스레드가 존재하는 방식이다. 쓰레드를 구현하는데는 두가지 방법이 있다. 한가지는 Runnable 인터페이스를 이용한 구현이고 다른 한가지는 Thread 클래스를 상속하여 구현하는 방법이다. 다음은 Runnable 인터페이스를 이용하여 쓰레드를 구현한 것이다. package com.thread; public class HowToUseRunnable implements Runnable { @Override public void run() { Syst..
31. Java 입출력(I/O) 입출력(I/O)란 입력(Input)과 출력(Output)을 의미한다. 컴퓨터에 정보를 입력하는 행위는 input, 정보를 얻어 출력하는 행위는 output이라고 한다. 예를 들어 input은 파일 데이터를 읽고, 키보드의 데이터를 읽고, 네트워크상의 데이터를 읽는 일을 한다. 반면 output은 파일 데이터를 쓰고, 모티터에 데이터를 쓰고, 네트워크상에 데이터를 쓰는 일을 한다. java는 입출력 API로 inputStream, Reader & OutputStream, Writer 클래스를 지원한다. InputStream과 OutputStream은 1byte 단위를 지원하며 주로 이미지나 동영상 데이터를 처리할 때 사용한다. Reader와 Writer는 2byte 단위를 지원하고 주로 문자열처리에 사용한..
30. Java Collection2 맵은 키와 값으로 이루어진 자료구조다. 키는 반드시 유일해야 한다. 키를 이용하여 값에 접근하는 방식으로 작동한다. package com.MapCollection; import java.util.HashMap; import java.util.Iterator; public class HowToUseMap { public static void main(String[] args) { HashMap hm = new HashMap(); //해당 key에 대한 value 삽입 hm.put(0, "str0"); hm.put(1, "str1"); hm.put(2, "str2"); hm.put(3, "str3"); hm.put(4, "str4"); System.out.println(hm.toString()); hm.re..
29. Java collection1 데이터의 성질에 따라 자료를 다루는 방법이 다르기 때문에 효율적으로 자료를 다룰 수 있게 고안한 것이 자료구조이다. 컬렉션은 자료구조 묶음이다. 자바는 컬렉션을 통해 여러가지 자료구조를 기본적으로 제공한다. 자바의 자료구조 중 가장 많이 사용하는 계열을 LIst계열이다. 1. ArrayList : 자바에서 배열의 단점을 보안하기 위해 만들었다. 크기가 가변적이다. 인덱스가 존재하고 데이터는 중복 가능하다. package com.ListCollection; import java.util.ArrayList; public class HowToUseArrayList { public static void main(String[] args) { ArrayList al = new ArrayList(); //원소 추가..
28. 예외 처리 예외란 프로그램에서 외부환경요인 등에 문제가 일어나 정상적인 작동을 하지 않는 것을 말한다. 예외 처리란 프로그램이 죽은 상태에서 정확히 원하는 결과는 얻지 못하더라도 어디가 잘못된지 알려주는 방법이다. 일반적으로 프로그램에서 오류가 나면 예외처리가 되어있어 오류가 어디서 났는지 띄워준다. package com.Except; public class ExceptClass { public static void main(String[] args) { int i = 10; int j = 2; System.out.println(i+j); System.out.println(i-j); System.out.println(i*j); System.out.println(i/j); int a = 2; int b = 0; Sy..
27. API(StringTokenizer) 문자열을 분할 할 때 아주 강력한 기능을 나타내는 클래스이다. package com.StringTokenizer; import java.util.StringTokenizer; public class HowToUseStringTokenizer { public static void main(String[] args) { String str1 = "abc def ghi"; String str2 = "ab/cd/ef/gh"; System.out.println(str1); System.out.println(str2); StringTokenizer t1 = new StringTokenizer(str1); //공백을 기준으로 나눈다. StringTokenizer t2 = new StringTokenizer(str2,..
26.API(Timer) Timer클래스는 프로그램이 돌아가는 데 특정 시간 원하는 작업을 수행하거나 프로그램 전체가 돌아가는데 걸리는 시간을 측정하는데 사용한다. package com.Timer; import java.util.TimerTask; //추상 클래스 public class TimerTask1 extends TimerTask { public void run() { //추상 클래스 안에 있는 함수로 반드시 구현 System.out.println("TimerTask1 실행"); } } package com.Timer; import java.util.TimerTask; //추상 클래스 public class TimerTask2 extends TimerTask { public void run() { //추상 클래스 안에 있..