일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사칙연산
- R
- 수학
- hash table
- SpringBoot 2
- Kadane's Algorithm
- scanner
- Easy
- heroku
- 카데인 알고리즘
- 자바 thread 실행 순서 제어
- array
- input
- 자바입력
- JAVA11
- 자바 스레드 실행 순서 제어
- Today
- Total
목록Java (38)
DeFacto-Standard IT
Comparator, Comparable 인터페이스는, List인터페이스를 구현하는(예를 들면 ArrayList 등) 컬렉션 리스트에 들어있는 객체들의 정렬을 할 때 주로 쓰인다. Comparator는 기본 정렬기준 외에도 다른 정렬 기준을 정하고 1차정렬된 틀 안에서 2차 정렬을 수행할 때 사용된다.Comparable은 기본 정렬기준을 구현하는데 사용한다. Comparator와 Comparable 인터페이스의 소스는 다음과 같다.public interface Comparator { int compare(Object o1, Object o2); boolean equals(Object obj); }public interface Comparable { public int compareTo(Object o);..
Shallow Copy'얕은 복사' 단순히 레퍼런스만을 복사 새로운 객체는 레퍼런스만을 복사한 것이므로 원본을 가리킨다. 따라서 원본이 변경된다면 이를 레퍼런스하므로 영향이 있다. 복사본의 수정이 곧 원본에 영향을 미침 Deep Copy'깊은 복사' 원본 데이터를 저장하고 있는 새로운 객체나 배열을 생성. 새로운 객체는 이를 완전히 복사한 것이므로 원본이 변경되어도 영향이 없다. 완전히 별도의 복사본이 생기므로 '깊다'고 표현.
공통점과 차이점 Vector와 ArrayList는 배열의 대용으로서 사용된다. 공통점 차이점 List Interface를 구현 저장순서 유지 데이터 중복 허용 저장 공간으로서 배열을 사용 Vector : 멀티 쓰레드에 대한 동기화 지원 O ArrayList : 멀티 쓰레드에 대한 동기화 지원 X Vector의 경우 멀티쓰레드에 대한 동기화가 지원이 되며 ArrayList의 경우는 동기화가 지원되지 않는다. 멀티쓰레드의 동기화 지원의 여부때문에 ArrayList보다 Vector가 나중에 나온 것이라고 생각할 수 있지만, Vector의 동기화 때문에 속도가 느려서 ArrayList가 나온 것이다. 장단점 장점 단점 데이터를 읽거나 저장할 때 효율이 좋다 용량을 변경할 일이 생긴다면 새로운 배열을 생성하고 복..
List Interface - 데이터의 중복 허용 - 저장 순서가 유지 메서드 설명 void add(int index, Object element) boolean addAll(int index, Collection c) index위치에 element 또는 Collection c에 포함된 객체들을 추가 Object get(int index) index위치의 객체 반환 int indexOf(Object o) 객체 o의 위치를 첫 번째 요소부터 찾아서 반환 int lastIndexOf(Object o) 객체 o의 위치를 마지막 요소부터 찾아서 반환 ListIterator listIterator() ListIterator listIterator(int index) List 객체에 접근할 수 있는 ListIter..
메서드 설명 boolean add(Object o) boolean addAll(Collection c) 객체 o 또는 Collection c의 객체들을 추가 void clear() 모든 객체 삭제 boolean contains(Object o) boolean contains(Collection c) 객체 o 또는 Collection c의 객체들이 포함되어 있는지 확인 boolean equals(Object o) 동일한 Collection인지 확인 int hashCode() hash code 반환 boolean isEmpty() 비어있는지 확인. 비어있다면 true, 비어있지 않다면 false Iterator iterator() Iterator 반환 boolean remove(Object o) 객체 o 삭..
Primitive Type이 객체로서 다뤄져야 할 때가 있다. 매개변수로 객체를 요구할 때(Generic과 함께) 기본형이 아닌 객체로 저장해야할 때 객체간 비교가 필요할 때 등이 해당한다. Wrapper Class는 Primitive와 Object간의 변환을 쉽게하도록 지원하는 클래스이다. Wrapper Class의 생성자는 매개변수로 문자열이나 각 자료형의 값들을 인자로 받는다. Primitive Type Wrapper Class Constructor boolean Boolean Boolean(boolean value) Boolean(String s) char Character Character(char value) byte Byte Byte(byte value) Byte(String s) short..
수학계산에 필요한 메서드와 기타 숫자를 제어할 수 있는 메서드가 정의된 클래스. Math클래스는 생성자가 private으로 인스턴스화 할 수 없다. 이유는 멤버변수가 없기 때문에 인스턴스할 필요 없이 메서드만 사용하면 되기 때문이다. 메서드 예제 결과 static double abs(double a) static float abs(float f) static int abs(int f) static long abs(long l) int i = Math.abs(-10); double d = Math.abs(-10.0); i = 10 d = 10.0 인자의 절대값 반환 static double ceil(double a) double d = Math.ceil(10.1); double d2 = Math.ceil(..
StringBuffer의 버퍼 크기 StringBuffer는 내부적으로 버퍼를 가지고 있기 때문에, 문자열의 수정이 가능하다. 이 버퍼는 StringBuffer 인스턴스를 생성할 때 그 크기를 지정할 수 있다. 만약, 버퍼의 크기를 넘는 문자열을 저장하려면 버퍼의 크기를 늘리는 추가작업이 필요하다. StringBuffer 인스턴스를 생성할 때, 기본적으로 16개의 문자를 저장할 수 있는 크기의 버퍼를 생성한다. 만약 생성자의 인자로서 정수를 준다면 해당 인자의 크기 만큼의 버퍼를 생성한다. 생성자의 인자로서 문자열을 준다면 해당 문자열의 길이보다 16만큼 더 큰 버퍼를 생성한다. StringBuffer 인스턴스의 비교 String 클래스는 equals()를 오버라이딩해서 문자열 값의 내용을 비교한다. 하..
String Class와 StringBuffer Class 문자형 배열 변수(char[])를 인스턴스 변수로 정의해놓는다. String 객체가 한 번 생성된다면 이를 변경하는 것은 불가능하며, 읽어오는 것만 가능하다. 만약 '+' 연산자를 사용해서 문자열을 이어붙이는 경우, 수정이 되는 것이 아니라 새로운 String 객체를 만들어서 다시 바인딩하는 것이다. 만약 문자열 간의 합성이나, 문자 추출 등 문자열을 다루는 작업이 많다면 String보다는 StringBuffer 클래스를 사용하는 것이 좋다. StringBuffer 객체는 문자열 변경이 가능하다. String을 사용하는 경우 역시 charAt 등의 연산이 제공되기는 하기때문에 특정 인덱스의 char 값을 구하는 것은 가능하다. String 객체의..
java.lang Package는 import하지 않고도 사용할 수있다. String, System 클래스 등을 포함하고 있다. 이 중 Object Class를 알아본다. Object Class Methods Method 설명 protected Object clone() 자신의 복사본을 반환 public boolean equals(Object obj) 자신과 obj가 같은 객체인지 알려준다. 같은 경우 true 반환 protected void finalize() 객체가 소멸될 때 GC에 의해 자동적으로 호출된다. 수행되어야 하는 추가적인 코드가 있는 경우에만 오버라이딩한다. public Class getClass() 객체의 클래스 정보를 담고있는 Class인스턴스 반환 public int hashCode..