분류 전체보기
-
Thread 개념 및 Runnable Interface VS Thread ClassJava 2020. 1. 13. 22:47
Thread란? 클래스 실행 java 명령어를 이용하여 Class를 실행시키면, Java Process가 실행되고, main() 메서드가 수행되면서 하나의 Thread가 실행 많은 Thread 필요시, 생성해주면 됨 Java를 사용하여 Web Application을 제공시, WAS를 사용하는데 동일하게 main Thread에서 생성한 Thread들이 수행됨 Process와 Thread 하나의 Process내에 여러 Thread가 수행, 어떤 Process든 Thread가 하나 이상 수행 여러 Process가 공유하는 하나의 Thread는 없음 아무런 Thread를 생성하지 않아도 JVM을 관리하기 위한 여러 Thread가 존재함(GC 관리 Thread 등) Thread가 생긴 이유 Process 하나를 ..
-
java.math.BigDecimalJava 2020. 1. 13. 21:48
BigDecimal java.math 패키지에 선언 사용하는 이유 double과 float은 근사치를 제공할 뿐 정확한 값을 제공하지 않음 정확한 숫자 계산을 할 때는 BigDecimal / BigInteger과 같은 클래스를 사용하는 것이 좋음 주요 생성자 BigDecimal(BigInteger val) BigDecimal(Char[] in) BigDecimal(double val) BigDecimal(int val) BigDecimal(long val) BigDecimal(String val) 사칙연산 메서드 // + BigDecimal add(BigDecimal augend) BigDecimal add(BigDecimal augend, MathContext mc) // - BigDecimal sub..
-
java.util PackageJava 2020. 1. 13. 21:41
java.util Package에서 유용한 Class Arrays Collections Date & Calendar Formatter Properties Random StringTokenizer Arrays 배열을 위한 도우미 클래스 기본 자료형의 배열을 처리하기 위해 동일한 메서드들이 많이 overloading 되어있음 // 정렬 sort() // 검색 binarySearch() // 비교 equals() deepEquals() // 변경 - 특정 값으로 데이터를 채움 fill() // 복사 copyOf() copyOfRange() // 변환 asList() // 해시코드 hashCode() deepHashCode() // 문자열로변환 toString() Collections Collection 관련 ..
-
Collection - MapJava 2020. 1. 9. 20:54
Map In Java 모든 Element는 Key와 Value로 이뤄져있음 Key와 Value는 모두 필수값(하나라도 없으면 안됨) Key는 Map에서 고유해야 함 Value는 중복되어도 상관 없음 java.util.Map Interface의 주요 메서드 // 첫 번째 매개 변수인 Key를 갖고 두 번째 매개 변수인 Value를 가진 Element를 저장 V put(K key, V value) // 매개 변수로 넘어온 Map의 모든 Elements를 저장 void putAll(Map
-
Collection - QueueJava 2020. 1. 8. 21:26
Queue FIFO(First In First Out; 먼저 들어온 것이 먼저 나감) 사용하는 경우 예) 웹 서버 요청을 들어온 순서대로 처리하는 경우 LinkedList Class 자신의 앞, 뒤에 있는 데이터를 기억하는 List 배열의 중간에 있는 데이터가 지속적으로 추가/삭제되는 경우 LinkedList가 배열보다 메모리 공간 측면에서 훨씬 유리함 - 배열과 같은 ArrayList와 Vector는 각 위치가 정해져 있고, 그 위치로 데이터를 찾음. 예를 들어, 맨 앞의 값 제거시 모든 값의 위치를 바꾸어줘야 함 - LinkedList는 중간에 있는 데이터를 삭제하면, 지운 데이터의 앞의 데이터와 뒤의 데이터를 연결하면 됨(= 위치를 맞추기 위해 값을 이동하는 단계가 없음) 상속 관계 java.lan..
-
Collection - SetJava 2020. 1. 8. 20:50
Set 순서에 상관 없이, 어떤 Element가 존재하는지를 확인하기 위한 용도로 많이 사용 중복되는 것을 방지하고, 원하는 값이 포함되어 있는지를 확인하는 것이 주 용도 Set Interface (in Java) 구현한 주요 클래스 HashSet : 순서가 전혀 필요없는 Element를 HashTable에 저장. Set 중 가장 성능이 좋음 TreeSet : 저장된 Element의 값에 따라서 정렬되는 Set. red-black이라는 tree 타입으로 값이 저장되며, Hashset보다 약간 성능이 느림 LinkedHashSet : 연결된 목록 타입으로 구현된 HashTable에 Element를 저장. 저장된 순서에 따라 값이 정렬. 성능이 가장 나쁨 성능의 차이가 나타나는 이유는 데이터 정렬 때문이지만..
-
Collection - ListJava 2020. 1. 8. 19:55
List Interface Collection Interface를 확장 배열처럼 순서가 있음 List Interface를 구현한 주요 Class ArrayList, Vector, Stack, LinkedList ArrayList & Vector 사용법이 거의 동일하고 기능도 거의 비슷함 크기 확장이 가능한 배열 ArrayList(JDK 1.2 ~) : Thread safe하지 않음 Vector(JDK 1.0 ~) : Thread Safe Stack Vector 클래스를 확장하여 만듦 LIFO(Last In First Out)를 지원 - 가장 마지막에 추가한 값을 가장 처음 빼내는 것 프로그래밍 언어에서의 Stack : 보통 메서드가 호출된 순서를 기억하는 장소 LinkedList List Interfac..
-
CollectionJava 2020. 1. 7. 21:30
Data Structure (자료 구조) 하나의 데이터가 아닌 여러 데이터를 담을 때 사용 Java's Data Structure (자바의 자료 구조) 순서가 있는 List형 순서는 상관없고, 중복이 없는 집합인 Set형 먼저 들어온 것이 먼저 나가는 Queue형 Key-Value로 저장되는 Map형 Java Collection 구조 java.util.Collection Interface Set Interface HashSet Class TreeSet Class List Interface ArrayList Class LinkedList Class(List와 Queue 모두 구현) Queue Interface LinkedList Class(List와 Queue 모두 구현) PriorityQueue Clas..