위코드 프로젝트 기간동안 Java 강의를 못들었더니 완전 처음부터 공부하는 느낌이 든다.
스프링 공부를 하기로 했으니 Java 공부도 다시 시작이다.
하필이면 중간에 끊어진게 강의 중간이라서 더 헷갈리는 느낌이다.
20강 후반부는 수학과 관련된 여러 메소드를 가진 Math 클래스와 문자열과 관련된 Arrays 클래스에 관련된 내용이었다.
난수 생성과 문자열을 토큰으로 구분해줄 때 사용하는 클래스도 있었다.
한달 쉬었다고 못 알아듣는 개념들이 참 많았다.
복습도 해야겠다...
Math 클래스
- 수학관련 연산에 사용되는 클래스
- 클래스 메소드 일부 정리
- 원주율 : Math.PI
- 제곱근 : Math.sqrt(<NUMERIC_DATA_TYPE>)
- 각도 : Math.toDegree(<RADIAN_VALUE>)
- sin 연산 : Math.sin(<RADIN_VALUE>)
- cos 연산 : Math.cos(<RADIAN_VALUE>)
- tan 연산 : Math.tan(<RADIAN_VALUE>)
- Log 연산 : Math.log(<NUMERIC_DATA_TYPE>)
- N제곱 연산 : Math.pow(제곱할 숫자, 횟수)
Random 클래스
- 난수를 생성을 위해서 사용하는 클래스
- ex) Random rand = new Random(<RANDOM_SEED>);
- <RANDOM_SEED> 값을 사용해서 난수를 생성해내지만, 해당 값이 비어있을 경우에는 함수가 작동한 시간을 사용해서 난수를 생성한다.
- <RANDOM_SEED>는 long자료형의 데이터
- 클래스 메소드
- nextBoolean() : boolean형 난수 반환
- nextInt() : int형 난수 반환
- nextInt(<BOUND>) : 0 이상 <BOUND> 미만의 int형 난수 반환
- nextLong() : Long형 난수 반환
- nextDouble() : 0.0 이상 1.0 미만의 double형 난수 반환
- nextFloat() : 0.0 이상 1.0 미만의 float형 난수 반환
StringTokenizer 클래스
- 문자열을 토큰화 할 때 사용하는 클래스
- ex) StringTokenizer st = new StringTokenizer(목표 문자열, 구분자);
- 토큰이란 특정 구분자를 기준으로 나누어진 데이터를 말한다.
- 공백, 두개 이상의 구분자를 사용할 수 있다.
- 클래스 메소드
- public boolean hasMoreToken() : 반환할 수 있는 토큰의 유무를 반환
- public String nextToken() : 다음 토큰을 반환
Arrays 클래스
- 배열과 관련된 기능이 있는 클래스
- 기능 별 클래스 메소드
- 배열 복사
- copyOf(복사할 배열, 길이) : 복사할 배열의 처음부터 주어진 길이 만큼을 복사
- copyOfRange(복사할 배열, 시작 인덱스, 끝 인덱스) : 복사할 배열의 시작 인덱스부터 끝 인덱스 까지를 복사
- arraycopy(목표A, A위치, 목표B, B위치, 길이) : 목표A의 A위치에서 길이만큼을 복사해서 목표B의 B위치부터 값을 덮어 씌운다.
- 내용 비교
- equals(배열A, 배열B) : 내용 비교 후 TRUE/FALSE 반환
- 정렬
- sort(정렬할 배열) : 전달된 배열열을 오름차순으로 정렬
- Comparable 인터페이스를 구현해서 어떤 클래스의 특정 속성을 기준으로 정렬을 할 지 커스텀할 수 있다.
- sort(정렬할 배열) : 전달된 배열열을 오름차순으로 정렬
- 검색
- binarySearch(배열, 검색 값) : 배열에 검색 값이 존재하면 검색 값의 인덱스 반환 없으면 0보다 작은 수를 반환
- 이진탐색을 진행하므로 주어지는 배열은 정렬이 완료되어야 한다.
- 검색의 경우 정렬과 비슷하게 compareTo 메소드를 오버라이딩해서 인스턴스 배열에 대한 검색을 진행 할 수 있다.
- binarySearch(배열, 검색 값) : 배열에 검색 값이 존재하면 검색 값의 인덱스 반환 없으면 0보다 작은 수를 반환
- 배열 복사
'프로그래밍 > Java' 카테고리의 다른 글
Java - 제네릭 (2) (0) | 2020.09.27 |
---|---|
Java - 제네릭 (1) (0) | 2020.09.22 |
Ubuntu에서 Java 개발환경 세팅 (0) | 2020.09.14 |
Java - Java의 기본 클래스 (1) (0) | 2020.07.25 |
Java - JVM의 메모리 모델과 Object 클래스 (0) | 2020.07.23 |