프로그래밍/JAVA
-
[Java] 중첩 클래스프로그래밍/JAVA 2022. 8. 11. 22:23
중첩 클래스는 클래스 내부에 선언한 클래스를 말하며 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있고, 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다는 장점이 있다. class ClassName{ class Name{ // 중첩 클래스 } } 인터페이스도 클래스 내부에 선언할 수 있는데, 이런 인테페이스를 중첩 인터페이스라고 한다. 인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들 수 있기 때문이다. class ClassName{ interface Name{ // 중첩 인터페이스 } } 내부 클래스(Inner Class) 내부 클래스는 static 키워드 없이 중첩 선언된 클래스를 말하며, 클래스 또는 메소드 ..
-
[Java] 입출력 스트림(Stream)프로그래밍/JAVA 2022. 8. 10. 21:33
자바에서 데이터는 스트림을 통해 입출력하게되며 스트림은 단일방향, 연속적으로 흘러가는 것을 의미한다. 스트림은 입출력을 동시에 처리할 수 없는 이유로 데이터를 입력 받아야 할 경우 입력 스트림을 사용하고 데이터를 출력할 경우 출력 스트림을 사용한다. 자바 java.io 패키지에서는 InputStream 클래스와 OutputStream 클래스를 제공하고 입출력 스트림 클래스의 하위 클래스 표현시 접미사를 붙여 표현한다. 스트림 클래스는 다음과 같이 크게 두 종류로 바이트 기반 스트림, 문자 기반 스트림으로 구분된다. 바이트 기반 스트림은 그림, 멀티미디어 등의 바이너리 데이터를 읽고 출력할 때 사용하며 InputStream과 OutputStream은 바이트 기반 입출력 스트림의 최상위 클래스로 접미사를 붙..
-
[Java] 예외처리(Exception)프로그래밍/JAVA 2022. 8. 10. 20:53
에러는 개발자가 미리 예측하여 처리할 수 없는 것으로 프로그램 실행 중 심각한 문제를 야기하여 실행을 종료한다. 예외는 개발자가 미리 예측하여 예외를 처리할 수 있고 보편적으로 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발행하는 프로그램 오류를 의미한다. 예외가 발생되면 프로그램은 곧바로 종료된다는 점에서 에러와 비슷하나 예외는 예외처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 예외는 두 가지 종류가 있으며, 일반예외와 실행예외로 구분된다. 일반예외는 컴파일러 체크 예외라고도 하는데, 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 컴파일 과정에서 예외 처리 코드가 있는지 검사를 하게되고 만약 예외 처리 코드가 없다면 컴파일 오류가 발생한다. 실..
-
[Java] Map 컬렉션 클래스프로그래밍/JAVA 2022. 8. 9. 22:27
Map 컬렉션 클래스는 키와 값을 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없고, 키는 중복으로 허용하지 않지만 값은 중복될 수 있다. 대표적인 Map 컬렉션 클래스는 HashMap, TreeMap, HashTable, Properties 가 있고 하나씩 알아보자. HashMap 클래스 JDK 1.2부터 제공되어 Map 인터페이스를 구현한 대표적인 클래스로 키와 값으로 구성된 요소 객체를 저장하는 구조를 가지고 있는 자료구조이다. 키는 중복 저장될 수 없고, 값은 중복될 수 있다. 만약 기존에 저장된 키와 동일한 키로 값을 저장하면 기존의 값은 없어지고 새로운 값으로 대체된다. 해싱(Hashing) 을 사용하기 때문에 많은 양의 데이터를 빠르게 검색하는 뛰어난 성능을 가지고 있다. TreeMap 클..
-
[Java] Set 컬렉션 클래스프로그래밍/JAVA 2022. 8. 9. 22:17
set 컬렉션 클래스는 순서가 없는 데이터들의 집합으로 데이터의 중복을 허용하지않는 특징을 가지고 있다. 대표적인 set 컬렉션 클래스는 HashSet, TreeSet가 있고 하나씩 알아보자. HashSet 클래스 JDK 1.2부터 제공하여 해시 알고리즘을 사용하여 검색 속도면에서 굉장한 장점을 보인다. 데이터를 중복해서 저장할 수 없으며 저장 순서가 유지되지않는다. 만일 데이터에 중복된 값을 저장하려하면 자동으로 제거한다. 중복 제거 과정 hashcode()를 이용하여 저장되어 있는 객체들의 해시 코드 값을 비교 equals()로 두 객체를 비교해서 true 가 나오면 동일한 객체로 판단 HashSet 참조변수 = new HashSet(); add() : 요소를 추가 size() : 요소의 개수를 반환..
-
[Java] List 컬렉션 클래스프로그래밍/JAVA 2022. 8. 9. 22:08
List 컬렉션 클래스는 순서가 있는 데이터들의 집합으로 데이터의 중복을 허용하는 특징을 가지고 있다. 대표적인 List 컬렉션 클래스는 Vector, ArrayList, LinkedList, Stack, Queue가 있고 하나씩 알아보자. Vector 클래스 vector 클래스는 자바 1.0부터 존재하는 레거시 클래스로 배열과 동일하게 정수 인덱스를 이용하여 액세스 할 수 있고 동적인 길이로 여러 데이터형을 저장하기 위해 사용된다. 동기화가 되어 있으며 한번에 하나의 스레드만 벡터의 메소드를 호출 할 수 있다. Vector 참조변수 = new Vector(요소의 개수); addElement() : 요소를 추가 size() : 요소의 개수를 반환 capacity() : 현재 벡터에 저장 가능한 크기를 반..
-
[Java] 컬렉션 프레임워크(collection framework)프로그래밍/JAVA 2022. 8. 9. 21:17
자바는 널리 알려져 있는 자료구조를 사용해서 객체들을 효율적으로 추가, 삭제, 검색 할 수 있도록 인터페이스(interface)와 구현 클래스를 java.util 패키지에서 제공한다. 여러가지 데이터를 메모리에서 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스들의 집합인 이것을 총칭해서 컬랙션 프레임워크라고 부른다. 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. 자료구조 - 데이터를 효율적으로 관리할 수 있는 데이터 구조를 의미 - 데이터의 특성에 따라 체계적으로 구조화 알고리즘 - 어떤 문제를 풀기 위한 절차 및 방법 - 어떤 문제에 대해 입력을 넣으면 원하는 출력을 얻을 수 있도록 만드는 프로그래밍 컬렉션 프레임워크은 인터페이..
-
[Java] 인터페이스(interface)프로그래밍/JAVA 2022. 8. 8. 22:46
자바는 다중상속을 지원하지 않으므로 인터페이스를 사용해서 다중상속을 구현할 수 있다. 인터페이스는 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 매개 역할을 담당하는 일종의 추상클래스와 비슷한 개념을 가지고 있다. 인터페이스는 추상 메소드와 상수만을 포함 할 수 있고 JDK8이상부터는 인스턴스 메소드, static메소드도 포함한다. 인터페이스는 다중 상속뿐만 아닌 장점도 존재한다. 개발 시 일관되고 정형화된 개발을 위한 표준화가 가능하고 개발시간 단축의 이점이 있다. 인터페이스 선언 인터페이스를 선언하기 위해서는 interface 키워드를 사용한다. 접근제어자 interface 인터페이스명{ // 인터페이스의 모든 필드는 public static final // 인터페이스의 ..