출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

컬렉션 프레임워크의 개념


컬렉션 프레임워크(collection framework)란?

자바에서 컬렉션 프레임워크(collection framework)란 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미합니다, 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것입니다.  이러한 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사용하여 구현됩니다.


컬렉션 프레임워크 주요 인터페이스

 

컬렉션 프레임워크에서는 데이터를 저장하는 자료 구조에 따라 다음과 같은 핵심이 되는 주요 인터페이스를 정의하고 있습니다.

 

1. List 인터페이스

2. Set 인터페이스

3. Map 인터페이스

 

이 중에서 List와 Set 인터페이스는 모두 Collection 인터페이스를 상속받지만, 구조상의 차이로 인해 Map 인터페이스는 별도로 정의됩니다. 따라서 List 인터페이스와 Set 인터페이스의 공통된 부분을 Collection 인터페이스에서 정의하고 있습니다. 자바 컬렉션 프레임워크의 주요 인터페이스에 대한 더 자세한 사항은 다음 페이지를 참고하면 됩니다.

 

Java Documentation : The Collections Framework =>


주요 인터페이스 간의 상속 관계

자바에서 컬렉션 프레임워크를 구성하고 있는 인터페이스 간의 상속 관계는 다음 그림과 같습니다.

 

 

위의 그림에서 <E>나 <K, V>라는 것은 컬렉션 프레임워크를 구성하는 모든 클래스가 제네릭으로 표현되어 있음을 알려줍니다.

 


주요 인터페이스의 간략한 특징

 

자바에서 컬렉션 프레임워크를 구성하고 있는 주요 인터페이스의 간략한 특징은 다음과 같습니다.

 

 

List<E> 순서가 있는 데이터의 집합으로, 데이터의 중복을 허용함. Vector, ArrayList, LinkedList, Stack, Queue
Set<E> 순서가 없는 데이터의 집합으로, 데이터의 중복을 허용하지 않음. HashSet, TreeSet
Map<K, V>

키와 값의 한 쌍으로 이루어지는 데이터의 집합으로, 순서가 없음.

이때 키는 중복을 허용하지 않지만, 값은 중복될 수 있음.

HashMap, TreeMap, Hashtable, Properties

컬렉션 클래스(collection class)

 

컬렉션 프레임워크에 속하는 인터페이스를 구현한 클래스를 컬렉션 클래스(collection class)라고 합니다. 컬렉션 프레임워크의 모든 컬렉션 클래스는 List와 Set, Map 인터페이스 중 하나의 인터페이스를 구현하고 있습니다. 또한, 클래스 이름에도 구현한 인터페이스의 이름이 포함되므로 바로 구분할 수 있습니다. Vector나 Hashtable과 같은 컬렉션 클래스는 예전부터 사용해 왔으므로, 기존 코드와의 호환을 위해 아직도 남아 있습니다. 하지만 기존에 사용하던 컬렉션 클래스를 사용하는 것보다는 새로 추가된 ArrayList나 HashMap 클래스를 사용하는 것이 성능 면에서도 더 나은 결과를 얻을 수 있습니다. 다음 예제는 ArrayList 클래스를 이용하여 리스트를 생성하고 조작하는 예제입니다.

 

 

예제

import java.util.*;

public class Collection01 {

    public static void main(String[] args) {

        // 리스트 생성

        ArrayList<String> arrList = new ArrayList<String>();



        // 리스트에 요소의 저장

        arrList.add("넷");

        arrList.add("둘");

        arrList.add("셋");

        arrList.add("하나");



        // 리스트 요소의 출력

        for(int i = 0; i < arrList.size(); i++) {

            System.out.println(arrList.get(i));

        }

    }

}

실행 결과

 

하나


Collection 인터페이스

 

List와 Set 인터페이스의 많은 공통된 부분을 Collection 인터페이스에서 정의하고, 두 인터페이스는 그것을 상속받습니다. 따라서 Collection 인터페이스는 컬렉션을 다루는데 가장 기본적인 동작들을 정의하고, 그것을 메소드로 제공하고 있습니다.  Collection 인터페이스에서 제공하는 주요 메소드는 다음과 같습니다.

 

메소드설명

boolean add(E e) 해당 컬렉션(collection)에 전달된 요소를 추가함. (선택적 기능)
void clear() 해당 컬렉션의 모든 요소를 제거함. (선택적 기능)
boolean contains(Object o) 해당 컬렉션이 전달된 객체를 포함하고 있는지를 확인함.
boolean equals(Object o) 해당 컬렉션과 전달된 객체가 같은지를 확인함.
boolean isEmpty() 해당 컬렉션이 비어있는지를 확인함.
Iterator<E> iterator() 해당 컬렉션의 반복자(iterator)를 반환함.
boolean remove(Object o) 해당 컬렉션에서 전달된 객체를 제거함. (선택적 기능)
int size() 해당 컬렉션의 요소의 총 개수를 반환함.
Object[] toArray() 해당 컬렉션의 모든 요소를 Object 타입의 배열로 반환함.

 


'JAVA > basic' 카테고리의 다른 글

[ 컬렉션 Collection<E> ] HashSet  (0) 2020.10.23
[ 컬렉션 Collection<E> ] Iterator  (0) 2020.10.23
[ 컬렉션 Collection<E> ] ArrayList  (0) 2020.10.23
generic / 제네릭  (0) 2020.10.22
예외처리 / Exception  (0) 2020.10.21
예외처리 / throw  (0) 2020.10.21
예외처리 / try-catch-finally  (0) 2020.10.21

1.

package generic;

public class Apple {

	private int weight; // 사과의 무게
	
	Apple(int weight){
		this.weight= weight;
	}
	
	public void showWeight() {
		System.out.println("사과의 무게 : " + weight);
	}
}
package generic;

public class Orange {

	private int sugarContent; // 오렌지 당도
	
	Orange(int sugar){
		this.sugarContent=sugar;
	}
	
	public void showsugarContent() {
		System.out.println("오렌지의 당도 : " + sugarContent);
	}
}
package generic;

public class AppleBox {
	
	Apple apple;
	
	public void store(Apple apple) {
		this.apple=apple;
	}
	
	public Apple PullOut() {
		return apple;
	}
}
package generic;

public class OrangeBox {
	
	Orange orange;
	
	public void store(Orange orange) {
		this.orange=orange;
	}
	
	public Orange PullOut() {
		return orange;
	}
}
package generic;

public class FruitBoxMain {

	public static void main(String[] args) {

		AppleBox appleBox = new AppleBox();
		appleBox.store(new Apple(10));
		Apple apple = appleBox.PullOut();
		
		apple.showWeight();
		
		OrangeBox orangeBox = new OrangeBox();
		// orangeBox.store(new String("오렌지"));
		orangeBox.store(new Orange(100));
		Orange orange = orangeBox.PullOut();
		
		orange.showsugarContent();
	}

}

2. 

fruitBox를 만들어서 사과와 오렌지를 각각 집어넣어줄 수 있지만,

아무거나 들어가도 빨간줄이 생기지 않지만, 실행하면 에러가 난다.

package generic;

public class FruitBox {
	
	Object fruit;
	
	public void store(Object fruit) {
		this.fruit=fruit;
	}
	
	public Object PullOut() {
		return fruit;
	}

}

 

package generic;

public class FruitBoxMain {

	public static void main(String[] args) {

		
		FruitBox box1 = new FruitBox();
		box1.store(new Apple(100));
		Apple apple = (Apple)box1.PullOut();
		apple.showWeight();
		
		FruitBox box2 = new FruitBox();
		box2.store("Apple"); // Apple 타입만 들어가야 한다. (아무거나 들어가도 ㅇㅋ인게 문제점..)
		Orange orange = (Orange)box2.PullOut();//형변환
		orange.showsugarContent();
		
	}

}

3.

제네릭을 이용해 FuritBox<T>를 생성해주면

형변환도 필요없고 알아서 올바르지 않은 타입이 들어가면 빨간줄이 생긴다.

package generic;

public class FruitBox <T> { // T > Apple / Orange
	
	T fruit; // Apple fruit
	
	public void store(T fruit) { // store(Apple fruit)
		this.fruit=fruit;
	}
	
	public T PullOut() { // public Apple PullOut()
		return fruit;
	}

}
package generic;

public class FruitBoxMain {

	public static void main(String[] args) {

		
		FruitBox<Apple> box1 = new FruitBox<Apple>();
		// box1.store("Apple"); 에러남
		box1.store(new Apple(10));
		Apple apple = box1.PullOut();
		apple.showWeight();
		
		FruitBox<Orange> box2 = new FruitBox<Orange>();
		// box2.store(new Apple(10)); // Orange만 들어갈 수 있게 됨
		box2.store(new Orange(100));		
		Orange orange = box2.PullOut(); //형변환도필요없다.
		orange.showsugarContent();
		
	}

}

4.

FruitBox<T>에 초기화 생성자를 추가하면 더욱 편리하다.

package generic;

public class FruitBox<T> { // T > Apple / Orange
	
	T fruit; // Apple fruit
	
	FruitBox(T fruit){   // FruitBox(Apple fruit){
		this.fruit=fruit;
		
	}
	
	public void store(T fruit) { // store(Apple fruit)
		this.fruit=fruit;
	}
	
	public T PullOut() { // public Apple PullOut()
		return fruit;
	}

}
package generic;

public class FruitBoxMain {

	public static void main(String[] args) {

		
		FruitBox<Apple> box1 = new FruitBox<Apple>(new Apple(10));
		Apple apple = box1.PullOut();
		apple.showWeight();
		
		FruitBox<Orange> box2 = new FruitBox<Orange>(new Orange(100));
		Orange orange = box2.PullOut(); //형변환도필요없다.
		orange.showsugarContent();
		
	}

}

yaboong.github.io/java/2019/01/19/java-generics-1/

'memo' 카테고리의 다른 글

java.net.BindException:  (0) 2020.10.28
역직렬화  (0) 2020.10.26
java.io.FileNotFoundException  (0) 2020.10.26
코드블럭 꾸미기  (0) 2020.10.22
매개변수란? ( ) 안에 들어가는애들인듯  (0) 2020.10.14
string stringbuffer stringbuilder  (0) 2020.10.13
ArrayList 참고글  (0) 2020.10.12
package Basic;

import java.util.StringTokenizer;

public class Token {

	public static void main(String[] args) {

		String s="11:22:33:44:55";
		StringTokenizer st = new StringTokenizer(s, ":");
		
		while(st.hasMoreTokens()) {
			System.out.println(st.nextToken());
		}
				
	}

}

11
22
33
44
55

 

import java.util.StringTokenizer;

public class Token {

	public static void main(String[] args) {
		

		System.out.println("-----------------------1번");
		String a = "11:22:33:44:55";
		StringTokenizer t = new StringTokenizer(a, ":"); // ":"가 true이면 출력
		while (t.hasMoreTokens()) {
			System.out.println(t.nextToken());
		}
		
		
		System.out.println("-----------------------2번");
		String s = "11:22:33:44:55";
		StringTokenizer st = new StringTokenizer(s, ":", true); // ":"가 true이면 출력
		while (st.hasMoreTokens()) {
			System.out.println(st.nextToken());
		}
		

		System.out.println("-----------------------3번");
		String pNum = "Tel 82-010-1234-5678";
		StringTokenizer st1 = new StringTokenizer(pNum);

		while (st1.hasMoreTokens()) {
			System.out.println(st1.nextToken());
		}

		
		System.out.println("-----------------------4번");
		StringTokenizer st2 = new StringTokenizer(pNum, " -"); // 구분자는 "-" " " 로 처리
		while (st2.hasMoreTokens()) {
			System.out.println(st2.nextToken());
		}

		
		System.out.println("-----------------------5번");
		StringTokenizer st3 = new StringTokenizer(pNum, "- ", true);
		while (st3.hasMoreTokens()) {
			System.out.println(st3.nextToken());
		}

	}

}

 

-----------------------1번
11
22
33
44
55
-----------------------2번
11
:
22
:
33
:
44
:
55
-----------------------3번
Tel
82-010-1234-5678
-----------------------4번
Tel
82
010
1234
5678
-----------------------5번
Tel
 
82
-
010
-
1234
-
5678

 

 

package Basic;

import java.math.BigDecimal;

public class BigDecimalTest {

	public static void main(String[] args) {

		
		double d1= 1.6;
		double d2= 0.1;
		System.out.println("d1 : " + d1);
		System.out.println("d2 : " + d2);
		System.out.println("d1 + d2 : "+ (d1+d2));
		System.out.println("d1 * d2 : "+ (d1*d2));
		
		BigDecimal e1 = new BigDecimal("1.6");
		BigDecimal e2 = new BigDecimal("0.1");
		
		System.out.println("두 실수의 덧셈결과: "+ e1.add(e2));
		System.out.println("두 실수의 곱셈결과: "+ e1.multiply(e2));
	}

}
​

 

최대 정수 표현 : 9223372036854775807
최소 정수 표현 : -9223372036854775808
덧셉 : -8999999999999999999999999
곱셈 : -9999999999999999999999999000000000000000000000000

 

package Basic;

import java.math.BigInteger;

public class BigIntergerTest {

	public static void main(String[] args) {

		System.out.println("최대 정수 표현 : " + Long.MAX_VALUE);
		System.out.println("최소 정수 표현 : " + Long.MIN_VALUE);
		
		BigInteger bigValue1 = new BigInteger("1000000000000000000000000");
		BigInteger bigValue2 = new BigInteger("-9999999999999999999999999");
		
		BigInteger addResult = bigValue1.add(bigValue2);
		BigInteger mulResult = bigValue1.multiply(bigValue2);
		
		System.out.println("덧셉 : " + addResult);
		System.out.println("곱셈 : " + mulResult);

	}

}

 

d1 : 1.6
d2 : 0.1
d1 + d2 : 1.7000000000000002
d1 * d2 : 0.16000000000000003
두 실수의 덧셈결과: 1.7
두 실수의 곱셈결과: 0.16

 

lioncho.tistory.com/75

'memo' 카테고리의 다른 글

역직렬화  (0) 2020.10.26
java.io.FileNotFoundException  (0) 2020.10.26
제네릭  (0) 2020.10.22
매개변수란? ( ) 안에 들어가는애들인듯  (0) 2020.10.14
string stringbuffer stringbuilder  (0) 2020.10.13
ArrayList 참고글  (0) 2020.10.12
public static void  (0) 2020.10.12
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
32
33
34
public class Wrapper1 {
 
    public static void main(String[] args) {
 
        Integer i1 = new Integer(100); // 인스턴스생성
        Integer i2 = new Integer(100); // 인스턴스 생성
        
        System.out.println("참조변수의 비교 : " + (i1==i2)); // 참조값비교
        System.out.println("저장값 비교 : " + i1.equals(i2)); // 저장값 비교
        
        System.out.println("il.toString() : "+ i1.toString());
        System.out.println("i2.toString() : "+ i2.toString());
        
        System.out.println("Integer.MAX_VALUE : " +Integer.MAX_VALUE);
        System.out.println("Integer.MIN_VALUE : "+Integer.MIN_VALUE);
        System.out.println("Type : " + Integer.TYPE);
        System.out.println("Siez : " + Integer.SIZE);
    
        
        int num = i2.intValue();
        System.out.println("int num = i2.intValue();" + num); 
        
        int num2=Integer.parseInt("10"); //String>int
        num2+=1;
        System.out.println("num2 : " + num2);
        
        // String > integer , int > integer        
        Integer i3 = Integer.valueOf("10");
        int num3=i3.intValue();
        System.out.println("num3 : " + num3);
        
    }
 
}
cs
참조변수의 비교 : false
저장값 비교 : true
il.toString() : 100
i2.toString() : 100
Integer.MAX_VALUE : 2147483647
Integer.MIN_VALUE : -2147483648
Type : int
Siez : 32
int num = i2.intValue();100
num2 : 11
num3 : 10​

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
    public static void main(String[] args) {
 
        Integer iValue=10// autoboxing
        // Integer iValue=new Integer(10)
        // Integer iValue=Integer.valueOf(10)
        Double dValue=3.14;
        //Double dValue=new Double(3.14)
        //Double dValue=Double.valueOf(3.14)
        
        System.out.println(iValue); // iValue.toString()
        System.out.println(dValue); // dValue.toString()
        
        int num1=iValue; // Integer > int Auto unboxing
        double num2= dValue;
        
        System.out.println(num1);
        System.out.println(num2);
 
    }
 
}
    
cs
10
3.14
10
3.14

예외클래스

docs.oracle.com/javase/8/docs/api/java/lang/Exception.html

Exception
    |
    |--- IOException
    |--- ClassNotFoundException
    |--- ...
    |--- RuntimeException
            |--- ArithmeticException
            |--- ClassCastException
            |--- NullPointerException
            |--- ...
            |--- IndexOutOfBoundsException
InputMismatchException 타입이 맞지 않을때 ex) int 인데 숫자가 아닌 다른 것이 입력되었을 때
ArithmeticException 산술연산 에러 ex) 나누는 수가 0일 때 (10/0)
NullPointerException 참조값이 없는 경우
ArrayIndexOutOfBoundsException 배열의 범위에서 인덱스 값을 벗어난 경우
ClassCastException 적절치 못하게 클래스를 형변환 하는 경우
NegativeArraySizeException 배열의 크기가 음수값인 경우
OutOfMemoryException 사용 가능한 메모리가 없는 경우
NoClassDefFoundException 원하는 클래스를 찾지 못한 경우
NumberFormatExcpeion 문자열을 숫자로 변경할 때 숫자가 변환될 수 없는 문자가 포함되어있음
실행 예외 (RuntimeException)
  • 예외가 발생하면 JVM은 해당하는 실행 예외 객체를 생성
  • 실행 예외는 컴파일러가 예외 처리 여부를 확인하지 않음. 따라서 개발자가 예외 처리 코드의 추가 여부를 결정
  • 대표적인 실행 예외 예
실행 예외 발생 이유
ArithmeticException 0으로 나누기와 같은 부적절한 산술 연산을 수행할 때 발생
IllegalArgumentException 메서드에 부적절한 인수를 전달할 때 발생
IndexOutOfBoundsException 배열, 벡터 등에서 범위를 벗어난 인덱스를 사용할 때 발생한다.
NoSuchElementException 요구한 원소가 없을 때 발생한다.
NullPointerException null 값을 가진 참조 변수에 접근할 때 발생한다.
NumberFormatException 숫자로 바꿀 수 없는 문자열을 숫자로 변환하려 할 때 발생한다.
일반 예외
  • 컴파일러는 발생할 가능성을 발견하면 컴파일 오류를 발생
  • 개발자는 예외 처리 코드를 반드시 추가
  • 대표적인 일반 예외 예
일반 예외 발생 이유
ClassNotFoundException 존재하지 않는 클래스를 사용하려고 할 때 발생한다.
InterruptedException 인터럽트 되었을 때 발생한다.
NoSuchFieldException 클래스가 명시한 필드를 포함하지 않을 때 발생한다.
NoSuchMethodException 클래스가 명시한 메서드를 포함하지 않을 때 발생한다.
IOException 데이터 읽기 같은 입출력 문제가 있을 때 발생한다.

 

'JAVA > basic' 카테고리의 다른 글

[ 컬렉션 Collection<E> ] ArrayList  (0) 2020.10.23
[ 컬렉션 Collection<E> ] 컬렉션 프레임워크  (0) 2020.10.22
generic / 제네릭  (0) 2020.10.22
예외처리 / throw  (0) 2020.10.21
예외처리 / try-catch-finally  (0) 2020.10.21
인터페이스 / interface / implements  (0) 2020.10.20
추상클래스 / abstract class  (0) 2020.10.20
Throwable 클래스의 주요 메서드
메서드 설명
public String getMessage() Throwable 객체의 자세한 메시지를 반환한다.
public String toString() Throwable 객체의 간단한 메시지를 반환한다.
public void printStackTrace() Throwable 객체와 추적 정보를 콘솔 뷰에 출력한다.

프로그래머가 직접 정의하는 예외의 상황

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
package FirstJava;
 
public class ExcepthionThrow {
 
    public static void main(String[] args) {
        
        
        try {
            
            
            // 프로그래머가 강제로 예외를 발생시킨다.
            // 예외 클래스의 인스턴스 생성
            Exception e = new Exception("강제로 발생한 예외");
            // 예외발생
            throw e;
            
        }catch (Exception e){
            System.out.println(e.getMessage());
            e.printStackTrace(); // 예외발생 순서
        }
        System.out.println("프로그램 종료");
    }
 
}
 
cs

예제1)

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package FirstJava;
 
public class AgeInputException extends Exception{
    
    int age;
    
    public AgeInputException(int age) {
        super("유효하지 않은 나이가 입력되었습니다");
        this.age=age;
    }
 
    @Override
    public String toString() {
        return "AgeInputException [age=" + age + ", getMessage()=" + getMessage() + "]";
    }
 
 
 
}
 
cs
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
32
33
34
35
package FirstJava;
 
import java.util.Scanner;
 
public class ProgrammerDefineException {
 
    public static void main(String[] args) throws AgeInputException {
 
        System.out.println("나이를 입력하세요");
        try {
        int age = readAge();
        System.out.println("나이는 "+ age + "세 입니다.");
        } catch(AgeInputException e) {
            System.out.println(e); // tostring()
        }
    
 
    }
 
    public static int readAge() throws AgeInputException{
        //throws AgeInputException
        //readAge 메서드 내에서 발생하는 예외중에
        //AgeInputException 타입의 예외가 발생하면
        //readAge()메서드를 호출한 쪽으로 전달
        Scanner sc = new Scanner(System.in);
        int age=sc.nextInt();
        // 논리적인 오류에 대한 예외 발생
        if(age<=0) {
            AgeInputException ae=new AgeInputException(age);
            throw ae;
        }
        return age;
    }
}
 
cs

 

  • if else와 달리 try-catch는 블럭내에 포함된 문장이 하나여도 {} 를 생략할 수 없다.
  • try 블럭 다음에는 여러 종류의 예외를 처리할 수 있도록 여러개의 catch블럭을 사용할 수 있다.
  • catch 내에 또 다른 try-catch 블럭을 사용할 수 있는데 이때는 다음과 같이 변수 e를 중복해서 사용할 수 없다.
  • 하나의 try 문에서 여러 개의 예외가 발생할 수 있지만 동시에 발생하지는 않음
  • 하나의 예외가 발생하면 즉시 try 블록의 실행을 멈추고 해당 catch 블록으로 이동
  • 예외 발생 여부와 관계없이 무조건 수할 실행문이 있다면 try~catch 문에 finally 블록 추가
  • 다중 catch 블록일 때 try 블록에서 예외가 발생하면 발생한 예외를 catch 블록 순서대로 비교
  • 앞에 있는 catch 블록의 예외 객체가 나중 catch 블록 예외 객체의 부모라면 앞에 있는 catch 블록이 먼저 가로챔 -> 컴파일러는 오류를 발생시킴
  • 구체적인 예외를 먼저 처리해야 함.

 

  • printStackTrace(): 예외발생 당시의 호출스택에 있었던 메서드의 정보와 예외 메시지를 화면에 출력
  • getMessage(): 발생한 예외클래스의 인스턴스에 저장된 메시지를 얻을 수 있다.

Try-catch 문의 실행순서

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
class ExceptionEx {
    public static void main(String args[]) { // 0으로 나눠서 고의로 ArithmeticException을 발생시킨다.
        System.out.println("try~catch 실행 순서");
        System.out.println(1);
        System.out.println(2);
        try {
            System.out.println(3);
            System.out.println(0 / 0);
            System.out.println(4); // 실행되지 않는다.
        } catch (ArithmeticException ae) {
            System.out.println(5);
        } // try-catch의 끝
        System.out.println(6);
    } // main메서드의 끝
}


cs

rebeccacho.gitbooks.io/java-study-group/content/chapter8.html

 

Chapter 8 예외처리(Exception Handling) | Java Study Group

 

rebeccacho.gitbooks.io

butter-shower.tistory.com/87

 

[Java] 예외처리 - try~catch 문, throws문, 예외의 종류

오류의 종류 에러 (Error) 개발자가 해결할 수 없는 치명적인 오류 하드웨어의 잘못된 동작 또는 고장으로 인한 오류 에러가 발생되면 프로그램 종료 정상 실행 상태로 돌아갈 수 없음 예외 (Excepti

butter-shower.tistory.com

'JAVA > basic' 카테고리의 다른 글

generic / 제네릭  (0) 2020.10.22
예외처리 / Exception  (0) 2020.10.21
예외처리 / throw  (0) 2020.10.21
인터페이스 / interface / implements  (0) 2020.10.20
추상클래스 / abstract class  (0) 2020.10.20
오버라이딩 Override / Overriding & 다형성  (0) 2020.10.16
상속 / extends  (0) 2020.10.15

+ Recent posts