1. Import
- 다른 package 내의 클래스를 참조하여 사용 할 때
- 클래스 작성시 package와 class 선언 사이에 필요한 만큼 정의 할 수 있다.
- JDK1.5에서부터 static import가 추가
문법 ) import 패키지명.* ; // * 해당 패키지 내의 모든 클래스,interface를 참조할 때 사용한다.
// * source code 작성시 편리하다
// * compiler 시 작성한 source code를 분석하여 사용한 클래스를 패키지에서 찾아 연결
// * 소스가 커질수록 작동이 느려진다.
import 패키지명.클래스명; // * 해당 패키지 내의 클래스를 하나만 참조 사용
// * 권장되는 방법
2. static import
- JDK1.5에서 부터 추가된 문법
- 특정 클래스 내의 static 변수(공용변수) , static method를 내 클래스에 있는 것 처럼 사용.
문법 ) import static 패키지명.클래스명.static 변수명;
import static 패키지명.클래스명.static method명; // method 기호 ( 괄호 : () ) 를 사용하지 않는다.
3. 패키지는 다르나 클래스(인터페이스)의 이름이 같을 때
- 패키지는 다르나 클래스(인터페이스)의 이름이 같을 때 둘중 하나만 import로 처리할 수 있다.
- 다른 하나는 class를 사용할때마다 전체경로를 기술하여 사용한다.
import java.util.Date;
public class Test{
Date d = new Date(); //java.util에 있는 Date Class
java.sql.Date d1 = new java.sql.Date(1L) //java.sql 에 있는 Date class
}
속도 |
CLASS명 |
용도 |
설명 |
아래로 갈수록 빠르다. ↓ |
String |
짧은 문자열을 다룰 때 사용 |
|
StringBuffer |
긴 문자열을 다룰 때 사용 |
멀티thread에서 동시에 접근이 불가능x ( 동기화 o ) | |
StringBuilder |
긴 문자열을 다룰 때 사용 |
JDK 1.5에서부터 지원 멀티thread에서 동시에 접근이 가능o ( 동기화 x )
문법 1.생성) StringBuilder sb = new StringBuilder(); 2.일) | |
StringTokenizer |
문자열을 자를 때 사용 |
| |
짧은 문자열과 긴 문자열의 차이는 문자열에 산술연산자가 들어가면 긴문자열이다.
* 짧은 문자열 : "--------" - 문자열이 문자열 저장소에 저장 - 같은 문자열은 딱 하나만 저장 - method 호출하여 일을 하더라도 원본 문자열은 변경되지 않는다.
* 긴 문자열 : "----" + "------" , - 문자열이 heap에 바로 저장 - 같은 문자열이 여러 개 만들어진다. - method를 호출하여 일을 하면 원본 문자열이 변경된다. - 속도가 빠르다. |
1.StringBuffer 와 StringBuilder 의 Method ( String class 와 겹치는 것은 생략 )
* 두 클래스간의 메소드는 동일하다
StringBuilder sb = new StringBuilder();
1.1. append 메소드 : return StringBuilder
문자열을 덧 붙일 때 사용한다.
sb.append(값);
sb.append(4); =>4
sb.append("오늘은"); =>4오늘은
sb.append("9일").append("월요일").append(1.2).append("도 입니다"); 4오늘은9일월요일1.2도 입니다.
[ 메소드를 위처럼 계속 덧붙이는걸 method chain ( 메소드 체인 ) 이라고한다. ]
1.2. insert(int , ...) 메소드 : return StringBuilder
값 삽입하는 메소드
sb.insert(삽입할 위치 , 값 );
원본 데이터 : ABCDEFG
--------------------------------
문자 |
A |
B |
C |
D |
E |
F |
G |
인덱스번호 |
0 |
1 |
2 |
3 |
4 |
5 |
6 |
값 삽입해서 원하는데이터 : ABCD화이팅FEG
sb.insert(4,"화이팅");
1.3. delete( int , int ) 메소드 : StringBuilder
값을 삭제하는 메소드
sb.delete(시작인덱스, 끝인덱스 + 1 )
원본 데이터 : --------------------------------
문자 |
A |
B |
C |
D | |||
인덱스번호 |
0 |
1 |
2 |
3 |
값 삽입해서 원하는데이터 : ADE
sb.delete(1,3);
2.String Tokenizer
- 문자열을 자를 때 사용
- java.util package에서 제공
- 값의 주소를 전달 받기 때문에 값이 존재하는지 알 수 없다.
-사용방식 1)
String str = "지승민 이동근 경제현 이종민";
token token token token
StringTokenizer stk = new StringTokenizer(str); // 토큰을 공백(white space)로 구분한다.
while(str.hasMoreTokens()){ // 문자열에 토큰이 존재하는지 true / false로 반환
System.out.println( str.nextToken() ); // 포인터가 존재하는 위치의 문자열을 얻고 포인터를 이동
}
2)
StringTokenizer stk = new StringTokenizer(str, "자를 문자열"); // 토큰을 특정문자열로 구분한다. 구분된 문자열은 지워진다.
3)
StringTokenizer stk = new StringTokenizer(str, "자를 문자열",boolean); // 토큰을 특정문자열로 구분하되 ,
// 구분문자열을 Token으로 취급할 것인지
// 판단한다. ( true 취급 : false 취급 x )
수학 ( Math )
- 수학에 관련된 처리
- 생성자가 없음(생성자의 접근지정자가 private)으로 객체를 생성하여 사용하는 클래스가 아님
- 사용 ) 클래스명.method명(값)
1. 절대값을 구하는 메소드 : Math.abs( 값 );
2. 반올림 : Math.round(값); return int/long
3. 올림 : Math.ceil(값); return double
4. 내림 : Math.floor(값); return double
5. 난수 : Math.random(); return double
Math.random() * 발생하고 싶은 수
날짜( Date )
* JAVA에서 시간을 얻어오는 Class 는 System class 이다.
* System.currentTimeMillis(); 메소드로 받아온다.
Date |
- 형식이 있는 날짜정보를 얻을 때 사용한다. - 비추천 method가 많다. - Fomatter : SimpleDateFormat 과 함께 사용한다. 사용법) 1. 객체생성) Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 2. 일 )
|
*SimpleDateFormat - 날짜형식을 지정하는 클래스 - java.text package에있음
사용법) 1.객체 생성) SimpleDateFormat sdf = new SimpleDateFormat(pattern);
pattern 이란 특정문자를 반복하여 원하는 날짜형식을 생성하는 것
pattern 년 : y 월 : M 일 : d 시 : h : 1~12 H : 0~23 K : 1~24 오전/오후 : a 분 : m 초 : s 요일 : E
|
+ Calendar 클래스
- 난수를 얻을 목적으로 만들어진 class
- java.util package에있음
- 사용법)
1.객체생성) Random r = new Random(); // new 하는 순간 사용할 난수가 모두 생성 : 패턴을 알면 다음수를 예측 가능하다.(보안에 취약)
Random r = new Random( seed 대입 가능 );
2.일)
2.1 정수의 난수 얻기 : r.nextInt() : return int //
r.nextInt()%범위수 대체기능 > r.nextInt( int ) : return int > 만약 10일 넣으면 0~9가 나옴
2.2 실수의 난수 얻기 : r.nextFloat() : return float
r.nextDouble() : return double
2.3 불린의 난수 얻기 : r.nextBoolean(); : return boolean
'IT > JAVA' 카테고리의 다른 글
[JAVA] Pattern (Design Pattern) (0) | 2018.04.16 |
---|---|
[JAVA] JCF (Java Collection FrameWork - List, Set , Map ) (0) | 2018.04.10 |
[JAVA] class의 종류 (0) | 2018.04.06 |
[JAVA] 배열(Array) (0) | 2018.04.03 |
[JAVA] Call by Value & Call by Reference (0) | 2018.03.30 |