반응형
인터페이스
객체간의 소통 수단을 의미한다.
추상메소드와 상수만이 존재하며, 일반 메소드로 사용 시 에러가 난다.
인터페이스는 객체가 아니지만, 객체 타입으로만 사용된다.
public class InterfaceClass implements Itf1,Itf2 {
//인터페이스에 대한 override 필요
}
public interface Itf1 {
}
public interface Itf2 {
}
객체 타입으로 인터 페이스를 쓸 수도 있다.
InterfaceClass interfaceClass = new InterfaceClass();
Itf1 itf1 = new InterfaceClass();
Itf2 itf2 = new InterfaceClass();
※ 다형성 : 객체가 다양하게 변할 수 있다는 점
싱글톤
단 하나만 존재할 수 있는 객체
public class SingletoneClass {
private static SingletonClass ST = new SingletonClass();
//private 이므로 싱글톤 객체는 외부에서 생성 불가하고,
private SingletonClass(){}
//여기에서 get함수를 통해 싱글톤 객체를 반환하는 것이다.
public static SingletonClass getSingletonClass(){
if(ST == null) ST = new SingletonClass();
return ST;
}
... SingletonClass 안의 변수, 메소드
}
싱글톤 객체 생성쪽
SingletonClass singletonClass = SingletonClass.getSingletonClass();
API
Application Programming Interface, 쉽게 설명하자면 누군가가 만들어 놓은 기능.
1. String API (String s1)
s1.concat(s2) : s1뒤에 s2 문자열 연결
s1.substring(x1, x2) : s1에서 인덱스 x1~x2 범위의 문자열 추출 (x2위치 포함 안함)
s1.length() : s1의 길이
s1.toUpperCase() : s1을 모두 대문자로
s1.toLowerCase() : s2를 모두 소문자로
s1.charAt(x) : s1의 x번째 인덱스
s1.indexOf(s2) : s1내 에서 문자열 s2의 위치(인덱스 반환)
s1.equals(s2) : s1와 s2비교
s1.trim() : s1의 앞뒤 공백 제거
s1.replace(s2, s3) : s1에 있는 문자열 s2를 모두 s3로 변경
s1.replaceAll(f, s2) : s1에서 정규식 f 에 해당하는 모든 문자열들을 모두 s2로 변경
------------------------------------------------------------------------------
1-2. StringTokenizer
문자열 분할 클래스
import java.util.StringTokenizer;
-main 클래스-
String str = "2020/11/17";
StringTokenizer sT = new StringTokenizer(str, "/"); //2번째 인자 생략 시 " " 가 기준이됨
int cnt = sT.countTokens(); //분할 된 문자열 조각 수
while(sT.hasMoreTokens()){ //순회
System.out.println(sT.nextToken());
}
String 객체는 메모리를 과소비한다는 단점이 있다.
데이터에 변화가 생기면 기존 것을 재활용 하지 않고 새 메모리를 만들어버린다.
이를 보완할 만한 클래스로 StringBuffer, StringBuilder가 있다.
StringBuffer : 2개 이상의 thread의 동시 접근을 허용 안해서 thread-safe.
StringBuilder : thread-safe 하지 않지만, StringBuffer보다 빠름.
<둘 다 같은 메서드를 갖기 때문에 StringBuilder 기준으로만 정리할 것>
------------------------------------------------------------------------------
2. StringBuilder
StringBuilder stringBuilder = new StringBuilder(s1);
stringBuilder.append(s2) : s2 문자열 연결
stringBuilder.insert(x,s2) : x위치에 s2 문자열 삽입
stringBuilder.delete(x1, x2) : 인덱스 x1~x2 범위의 문자열 삭제 (x2위치 포함 안함)
stringBuilder.deleteCharAt(x) : x위치의 문자 하나 삭제
stringBuilder.toString() : String 형으로 반환
------------------------------------------------------------------------------
3. 날짜 API
Calendar calendar = Calendar.getInstance();
calendar.get(Calendar.YEAR) : 몇년
calendar.get(Calendar.MONTH) + 1 : 몇월 (0부터 시작이라 1을 더함)
calendar.get(Calendar.DAY_OF_MONTH) : 며칠
calendar.get(Calendar.HOUR_OF_DAY) : 몇시
calendar.get(Calendar.MINUTE) : 몇분
calendar.get(Calendar.SECOND) : 몇초
System.currentTimeMillis() : 현재의 시간을 1/1000초 단위로 long형으로 반환
이를 두 지점에 호출해주면 속도 테스트 용으로 쓸 수 있다.
------------------------------------------------------------------------------
4. Random
double d = Math.random(); //API, 0~1 사이 반환
import java.util.Random;
Random random = new Random(); //클래스
int r = random.nextInt(1000); //0~1000 사이로 설정
반응형
'Spring 사전 준비 > JAVA' 카테고리의 다른 글
[JAVA 간단정리 5] API(Timer)/Wrapper/예외처리/Collections (0) | 2020.11.17 |
---|---|
JAVA Collections 시간복잡도 총정리(타 블로그 링크) (0) | 2020.11.17 |
[JAVA 간단정리 3] 패키지/접근제한자/static/상속/추상클래스 (0) | 2020.11.13 |
[JAVA 간단정리 2] 입력/제어문/반복문/문자열/배열/객체/enum (0) | 2020.11.12 |
[JAVA 간단정리 1] 설치, 환경 변수 세팅 (0) | 2020.11.11 |
댓글