본문 바로가기

반응형

프로그래밍언어/JAVA

(60)
[JAVA] Annotation 1. annotation 애너테이션은 주석, 주해, 메모 라는 뜻을 가지고 있다. 자바에서 에너테이션은 소스코드 안에 다른 프로그램을 위한 정보를 미리 약속된 형식으로 포함시킨 것이다. '@' 기호를 붙여서 표현하며, 주석처럼 프로그램에 직접적인 영향을 미치지 않으면서 정보를 제공한다. 대표적인 애너테이션으로 @Override, @Test 등을 사용하곤 하는데, 각각 이후에 나오는 소스코드가 오버라이딩을 위한 메서드, 테스트를 위한 메서드임을 알려주는 역할을 한다. 이와같이 JDK 에서 미리 제공하는 애너테이션들을 표준 애너테이션이라고 하는데, 주로 컴파일러를 위한 것들이다. 이외에도 개발자가 직접 애너테이션을 정의할 수 있는데, 이때 메타 에너테이션을 사용하면된다. 2. 표준 애너테이션 자바에서 제공하..
[JAVA] Enums 1. 열거형, enums 열거형은 JKD1.5 부터 추가된 타입으로 열거형이 갖는 값뿐만 아니라 타입까지 관리하여 논리적인 오류를 줄일 수 있다. C언어의 열거형은 타입을 관리하지 않기 때문에 타입이 달라도 값이 같은 경우에 조건식 결과가 true 로 반환한다. 하지만 자바는 타입에 안전한 열거형, typesafe enum 이기 때문에 값이 같아도 타입이 다른 경우 false 를 반환한다. 2. 열거형의 정의와 사용 열거형을 정의하는 방법은 중괄호 {} 안에 상수의 이름을 나열하기만 하면 된다. 열거형에 정의된 상수를 사용하는 방법은 (열거형이름).(상수명)으로 사용할 수 있다. enum EnumName {CONSTANT1, CONSTANT2, ... } System.out.println(EnumName..
[JAVA] Generics 1. 지네릭스 지네릭스는 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에 컴파일 시의 타입 체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하여 객체의 타입 안정성을 높이고 형변환의 번거로움을 줄여서 코드를 간결하게 유지할 수 있다. 간단하게 얘기하여 ArrayList 와 같은 컬렉션 클래스에 들어갈 수 있는 객체의 종류를 미리 명시해두어 번거로운 형변환을 줄여준다. 2. 지네릭 클래스의 선언 지네릭 타입은 클래스와 메서드에 선언할 수 있는데, 다음과 같이 사용할 수 있다. class Box { T element; void setElement(T element) { self.element = element; } T getElement() { return element; } } 위의 예제에서..
[JAVA] Collections 1. Collections Collections 는 컬렉션과 관련된 메서드를 제공한다. fill(), copy(), sort(), binarySearch() 등의 메서드는 두 클래스에 모두 포함되어 있으며 같은 기능을 한다. - 컬렉션의 동기화 멀티쓰레드 프로그래밍에서는 하나의 객체를 여러 쓰레드가 동시에 접근할 수 있다. 그렇기 때문에 데이터의 일관성, consistency 를 유지하기 위해 공유되는 객체에 동기화, synchronization 이 필요하다. Vector 와 Hashtable 과 같은 구버전 클래스들은 자체적으로 동기화 처리가 되어있다. 그렇기 때문에 멀티쓰레드 프로그래밍이 아닌 경우에는 불필요한 기능이 되어 성능에 불리하다. 이후에 추가된 ArrayList 와 HashMap 과 같은 ..
[JAVA] Properties Properties Properties 은 Hashtable 은 상속받아 구현한 것으로 Hashtable 은 키, 값을 (Object, Object) 형태로 저장하는데 Properties 는 (String, String) 의 형태로 저장하는 컬렉션 클래스이다. 주로 애플리케이션의 환경설정과 관련된 속성, property 를 저장하는데 사용되며, 데이터를 파일로부터 읽고 쓰는 기능을 제공한다. 메서드 설명 Properties() Properties 객체를 생성한다. Properties(Properties defaults) 지정된 Properteis 에 저장된 목록을 가진 Properties 객체를 생성한다. String getProperty(String key) 지정된 키의 값을 반환한다. String g..
[JAVA] TreeMap TreeMap TreeMap 은 이진검색트리의 형태고 키, 값 데이터를 저장하는 컬렉션 클래스이다. 이진검색트리로 구성되어 있기 때문에 검색과 정렬에 적합하다. 기본적인 검색에서는 HashMap 이 TreeMap 보다 유리하지만 범위검색이나 정렬이 필요한 경우에는 TreeMap 을 사용하는 것이 더 유리하다. 메서드 설명 TreeMap() TreeMap 객체를 생성 TreeMap(Comparator c) 지정된 Comparator 를 기준으로 정렬하는 TreeMap 객체를 생성 TreeMap(Map m) 주어진 Map에 저장된 모든 요소를 포함하는 TreeMap 을 생성 TreeMap(SortedMap m) 주어진 SortedMap 에 저장된 모든 요소를 포함하는 TreeMap 을 생성 Map.Entry..
[JAVA] HashSet, TreeSet 1. HashSet HashSet 은 Set 인터페이스를 구현한가장 대표적인 컬렉션이다. HashSet 에 데이터를 저장할 때는 add() 또는 addAll() 메서드를 사용하는데 만약에 중복되는 데이터가 이미 존재하는 경우에는 false 를 반환하여 데이터 저장이 실패했다는 것을 알린다. ArrayList 와 같이 List 인터페이스를 구현한 컬렉션과 달리 HashSet 은 저장순서를 저장하지 않는다. 저장순서를 유지하고자 한다면 LinkedHashSet 을 사용해야 한다. 메서드 설명 HashSet() HashSet 객체 생성 HashSet(Collection c) 컬렉션 c의 데이터를 포함하는 HashSet 객체를 생성 HashSet(int initialCapacity) 주어진 값을 초기용량으로 하..
[JAVA] Comparator, Comparable 1. Comparator, Comparable Comparator 와 Comparable 은 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다. Comparable 을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교할 수 있는 클래스들이며, 기본적으로 오름차순으로 정렬하도록 구현되어 있다. 그래서 Comparable 을 구현한 클래스는 모두 비교가 가능하다는 것을 알 수 있다. public interface Comparator { int compare(Object o1, Object o2); boolean equals(Object obj); } public interface Comparable { public int compareTo(Object o); } compare()..

반응형