import

 

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

}

 

 

 

 

문자열 ( String, StringBuffer, StringBuilder , StringTokenizer )

 

 

 속도

 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 클래스

 

 

 

난수 얻기 ( RANDOM )

 

- 난수를 얻을 목적으로 만들어진 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
블로그 이미지

이든Kim

,