Java 문법 9

java :) collection 프레임워크, collection의 전체 그림/collection의 주요 메소드/List인터페이스 및 구현체 설명/ Set인터페이스 및 구현체 설명

goal 자바의 collection framework 이해 자바의 collection 인터페이스의 주요 메소드 자바의 List 인터페이스의 개념과 설명 자바의 List 구현체 -> ArrayList 클래스 자바의 List 구현체 -> LinkedList 클래스 자바의 Set 인터페이스의 개념과 설명 자바의 Set 구현체 -> HashSet 클래스 자바의 Set구현체 -> TreeSet 클래스 1 ] 자바의 collection framework 1. 개념 다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합 즉, 데이터를 저장하는 자료 구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해 놓은 것이다. 컬렉션 프레임워크는 자바의 인터페이스(interface)를 사..

Java/java 2022.05.18

java :) abstract, abstract class(추상클래스)/abstract method(추상메소드) [수정 1]

goal abstract class와 method에 대해서 이해한다. [수정전 내용 : 2022.03.13 작성] 1] abstract method child class에서 반드시 Overriding해야만 사용할 수 있는 메소드를 의미한다. abstract class에 선언된 abstract method를 반드시 선언하게하는 강제성 부여 추상 메소드는 선언부만 존재하며 구현부는 작성되지 않는다. (동작을 정의하지 않는다.) abstract 반환타입 메소드이름(); 1. 사용이점 모듈처럼 중복되는 부분, 공통적인 부분은 미리 다 만들어진 것을 사용하고 이를 받아 사용하는 쪽(child class)은 자신에게 필요한 부분만을 재정의하여 사용함으로써 생상선 향상, 배포 등이 쉬워진다는 이점을 갖는다. 2. a..

Java/java 2022.05.13

java :) Arrays의 다양한 메소드 정리하기

goal Arrarys의 다양한 메소드를 이해한다. "Arrays사용법" import java.util.Arrays 1 ] Arrays의 다양한 메소드 1. binarySearch() 메소드 [1] 개념 특정 객체의 위치를 이진 검색 알고리즘을 사용하여 검색한 후, 해당 위치를 반환한다. ※ 이진 검색 알고리즘 원리 : 배열의 임의 중앙값과 찾고자 하는 값의 대소를 비교하는 방식 특징 : 오름차순으로 정렬된 리스트에서 특정한 값이 위치를 찾는 알고리즘 시간 복잡도의 이점을 얻을 수 있다. 순환 탐색의 경우 O(n) 이진 탐색의 경우 O(log n) 단, 배열이 정렬(sort())이 된 상태일 때 사용해야한다. 정렬이 되지 않은 상태에서 사용하게 된다면 엉뚱한 값을 얻을 수 있다. [2] 예제 소스코드 및..

Java/java 2022.04.23

java :) StringBuffer

goal StringBuffer 클래스를 이해한다. String 클래스와 StringBuffer 클래스의 비교 [1] 우선, "immutable class? mutable class?" 명칭 설명 불변 클래스 (immutable class) 인스턴스가 한 번 생성되면 그 값을 변경할 수 없는 클래스 가변 클래스 (mutable class) 인스턴스의 값을 변경할 수 있는 클래스 ※ 인스턴스가 생성되면... 메모리에 할당이 된다. 따라서, 독립적인 메모리를 갖는다는 것을 기억한다. [2] 우선, "String 클래스와 StringBuffer" 클래스 mutable 여부 설 명 사용목적 String 클래스 x 인스턴스가 한 번 생성되면 그 값을 변경할 수 없다. 객체가 서로 영향을 주어서는 안 되는 경우 S..

Java/java 2022.04.23

java :) generic class의 이해

goal Generic class를 이해한다. 1. Generic class generic은 data type을 일반화할 때 사용한다. generic은 class나 method에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법이다. 컴파일시에 미리 타입 검사(type check)를 수행하면 아래와 같은 이점을 가진다. 클래스나 메소드 내부에서 사용되는 객체의 타입 안정성을 높일 수 있다. 반환값에 대한 타입 변환 및 타입 검사에 들어가는 노력을 줄일 수 있다. class MyArray { T element; void setElement(T element){ this.element = element; } T getElement() { return this.element; } } T를 Type ..

Java/java 2022.03.13

java :) clone()메소드( + interface Cloneable)

goal clone() 메서드에 대해서 이해한다. 1] clone() 메소드 clone()메소드는 해당 인스턴스를 복제하여, 새로운 인스턴스를 생성해 반환한다. 하지만, Object클래스의 clone()메소드는 단지 필드의 값만을 복사하므로, 필드의 값이 배열이나 인스턴스면 제대로 복제할 수 없다. 따라서 이러한 경우에는 해당 클래스에서 clone() 메소드를 오버 라이딩하여, 복제가 제대로 이루어지도록 재정의한다. 1. 예제 코드 출처 : http://www.tcpschool.com/java/java_api_object package first_package; import java.lang.Cloneable; import java.util.ArrayList; class Car implements Clo..

Java/java 2022.03.13

java :) interface

goal interface에 대해서 이해한다. 1] interface 접근제어자 interface 인터페이스이름 { public static final 타입 상수이름 = 값; public abstract 메소드이름(매개변수목록); } interface의 모든 필드와 메소드는 형식이 지정되어있다. 모든 필드 : public static final 메소드 이름 : public abstract 형식의 생략도 가능한데 생략이 될 경우 컴파일 시 자바 컴파일러가 자동으로 추가한다. interface도 abstract class처럼 직접 instance를 생성할 수 없다. interface는 abstract와 달리 다중상속이 가능하지만 일반적인 경우 사용하지 않는다. interface는 모호성의 대한 문제를 해결하..

Java/java 2022.03.13