본문 바로가기

반응형

JAVA/JAVA

자바 예제 - join() 메소드 ** join() 메소드Thread를 가동시키게 되면 자바는 Thread를 수행하는데 오랜 시간이 걸릴 것으로 나름대로 판단하여 Thread 가동 이후의 문장을 먼저 수행시키는 경향이 있다.만약 쓰레드가 완료된 후에 그 다음 작업이 실행되길 원한다면 join 메소드를 이용한다. ** join() 을 사용하려면 예외처리를 해야한다. 예외처리전)class PersonTest04{public static void main(String[] args) { Person p1 = new Person("송인욱");Person p2 = new Person("최영록"); p1.start();p2.start(); p1.join();p2.join(); System.out.println("작업종료");}} 예외처리후)class.. 더보기
자바 예제 - Thread 를 이용한 우선순위 설정 ** 두개 이상의 Thread를 가동시키면 가능하면 공평하게 실행이 되게끔 스케쥴링 된다. 그런데 만약 특정객체가 먼저 일이 끝날 수 있도록 요구된다면 쓰레드의 우선순위를 설정.반드시 그것이 먼저 끝나는 것을 보장하지 않는다. ** 쓰레드의 우선순위를 설정하는 메소드setPriority(정수값) 정수값의 범위 : 1 ~ 10 ** 우선순위 주는 예제 // 우선순위 주기class Person extends Thread{private String name;public Person(String name){this.name = name;} public void run(){for (int i = 1; i 더보기
자바 예제 - 멀티쓰레드 프로그래밍 방법 ** 멀티쓰레드 프로그래밍 방법 ** run() 과 start() 차이 비교를 위한 예제1. 기본구조2. API 나온 형식3. ** run() 과 start() 차이 비교를 위한 예제 class Person extends Thread{private String name; public Person(String name){this.name = name;} public void run(){for (int i = 1; i 더보기
자바 개념 - 멀티 쓰레드(Thread) 프로그래밍 설명 및 간단한 예제 ** 멀티 쓰레드(Thread) 프로그래밍 : 자바프로그램에서 어떤 일처리를 위한 것을 메소드로 표현되는 것이 일반적이다. p1.sayHello();p2.sayHello(); 위의 문장을 실행하면 p2는 p1의 sayHello()가 끝날때까지 대기해야 한다.만약 그속의 문장이 복잡하거나 문제가 발생이 된다면 p2는 끝없이 기다려야 하거나 자신에게 기회가 오지 않을 수도 있다. 이때 가능하면 p1과 p2에게 공평하게 실행할 기회를 주고자 한다면 'Thread'를 이용한다. 자바는 이와같이 멀티쓰레드 프로그래밍을 위하여 아래와 같이 제공한다.Thread 클래스와 Runnable 인터페이스를 제공한다. ** 필요성을 느끼기 위한 예제 // 밑에 예제의 같은 경우 p1의 실행이 끝나야 p2가 진행되는데 // 만.. 더보기
자바 개념 - 예외처리 ** 예외처리 : 프로그램 실행중에 사용자의 부주의로 인한 예기치 않는 상황에 대한 처리 ** 예외처리 하는 방법1. try ~ catch 절에 의해 직접 예외처리하는 방법2. 메소드명 뒤에 throw 키워드를 붙여 메소드를 호출하는 쪽으로 예외를 전파하는 방법 try{예외상황이 발생할 만한 문장들...'예외가 발생된다' 라는 말은 예외클래스의 객체가 생성된다는 말}catch(예외자료형 변수명){예외가 발생되었을 때 처리할 문장들...} ==> 자바는 대체로(일반적으로) 발생할 수 있는 예외상황에 대한 클래스가 이미 정의되어 있다.==> 예외에 대한 제일 조상클래스 : Exception ** 하나의 try 안에 여러개의 catch가 올수 있다. 다만 범위가 적은 순서대로 와야 한다!try{예외상황이 발생.. 더보기
자바 예제 - inner 클래스 만들어지는 과정 inner 클래스 예제 메뉴얼에 java.awt 는 GUI를 모아놓은 것들그 안에서 Frame 은 창을 만들 수 있는 클래스 사용방법 두가지1. 자바가 제공하는 Frame을 생성하여 사용하는 방법2. 자바가 제공하는 Frame을 확장하여 사용하는 방법 (설정하는 메소드는 set이 앞에 붙어있음) 1. 기본구성 2. MyEvent 클래스를 Hanb 클래스 안에 넣기 전 3. MyEvent를 Hanb 클래스안에 넣은 후 ( MyEvent 클래스는 Hanb클래스에서만 필요하고 다른곳에서는 필요없기에 굳이 따로 만들 필요가 없음)밖에 해도 되고 다른 파일로 만들어도 되겠지만 Hanb 클래스안에 넣음 4. new MyEvent를 굳이 생성안하고 바로 넣어도 되지 않니굳이 MyEvent 클래스를 굳이 만들어야 되니.. 더보기
자바 개념 - inner 클래스 ** inner 클래스: 클래스 안에 또다른 클래스를 정의 하는 것inner 클래스는 outer 클래스의 멤버처럼 동작한다.즉, outer클래스의 멤버변수나 멤버메소드에 자유롭게 접근가능반대로 outer 클래스에서 inner 클래스로 접근하려면 객체 생성 및 통해서만 가능하다. 만약 inner클래스가 다른 곳에서도 사용될 필요가 있다면 inner 클래스를 쓰는게 부적합하다.outer클래스에서만 필요하다면 inner클래스가 적합하다 자주 쓰이는 용도 : awt 나 안드로이드 이벤트처리 등에 자주 쓰임 컴파일시 inner 클래스는 A$B 로 만들어짐 B클래스 객체 생성시 A.B ob = new A().new B();ob.info();이런식으로 해야하기에 외부에서 많이 사용할 경우 적합하지 않다 예)class.. 더보기
자바 개념 - equals 메소드와 toString 메소드 설명 ** equals 메소드: 자바의 제일 조상인 Object의 메소드이며, 두 객체 서로 동일한 속성값을 갖고 있는지 판별하기 위해서는 자신에 맞게 재정의 하여 사용 class Person{String name;int age;public Person(String name, int age){this.name = name;this.age = age;} public boolean equals(Person){boolean re = false;if(name.euqals(ob.getName) && age == ob.getAge()){re = true;}return re;}} Person p1 = new Person("coco", 20);Person p2 = new Person("reo", 22); // goodif(.. 더보기

반응형