본문 바로가기

JAVA/API

api/string 메소드/ math메소드

1.api( application programming interface )

운영체제나 C, C++, Pascal 등과 같은 언어로 응용 프로그램을 만들 때, 윈도우를 만들고 파일을 여는 것과 같은 처리를 할 수 있도록 1,000여 개 이상의 함수로 구성되어 있다. API는 프로그래머를 위한 운영체제나 프로그램의 인터페이스로서 사용자와 직접 대하게 되는 그래픽 사용자 인터페이스나 명령형 인터페이스와 뚜렷한 차이가 있다.

API는 응용 프로그램이 운영체제나 데이터베이스 관리 시스템과 같은 시스템 프로그램과 통신할 때 사용되는 언어나 메시지 형식을 가지며, API는 프로그램 내에서 실행을 위해 특정 서브루틴에 연결을 제공하는 함수를 호출하는 것으로 구현된다. 그러므로 하나의 API는 함수의 호출에 의해 요청되는 작업을 수행하기 위해 이미 존재하거나 또는 연결되어야 하는 몇 개의 프로그램 모듈이나 루틴을 가진다.

좋은 API는 모든 building block을 제공함으로써 프로그램 개발을 쉽게 해준다. 프로그래머는 그 block을 함께 합치기만 하면 된다. API가 프로그래머를 위해서 만들어지기는 했지만, 사용자 입장에서도 같은 API를 사용한 프로그램은 비슷한 인터페이스를 가지기 때문에 새로운 프로그램의 사용법을 배우기가 쉬워진다.

 

[네이버 지식백과] API [application programming interface] (두산백과)

 

2.Java8의 기본 api :  https://docs.oracle.com/javase/8/docs/api/

 

확인해보면 기본적으로 존재하는 클래스/인터페이스의 생성자, 상속, 메소드, 제약조건, 사용예시 등을 확인 할 수있다.

 

몇몇 메소드를 소개 해본다.

 

3.Java.lang. String 클래스

ㄱ)String 자료형

 

문자열 String 클래스 특성
1. 불변형이다.
2. 값이 변경될 때 마다 Heap영역의
문자열 저장소(String Pool)에 값을 일일히 저장한다.
3.이미 동일한 값이 저장되어 있다면,
문자열 저장소에서 동일한 값을 꺼내오며 새로만들지 않는다.

 

 

마지막str3의 해시코드 메소드의 값이 같은 이유는 Object에서 상속받아 오버라이딩한 String클래스의 hashCode()메소드에 의해 코드 값이 재정의 되었기 때문이다.(값이 같을 경우 주소를 같게 함)

 

ㄴ)StringBuffer

String 자료형이 저장되는 방식은 한번에 저장되는 것이 아닌 1글자, 2글자, 3글자씩 차례대로 저장하게 된다.

 h
 he
 hel
 hell
 hello

(hello를 저장하려면 글자수 만큼 돌면서 새로히 저장한다)
 위처럼 문자열은 안의 내용이 변경될 때 마다 불변형 특성에 의해서 변경되는 과정까지
하나하나 문자열로 저장된다.


이러한 작업을 줄이기 위해 별도의 임시 공간(buffer)을 만들어 문자열 변경과정을 다 터리한 결과만을 문자열 저장소에 반환하는 Class를 제공한다.

버퍼(임시주소)(h + e +l + l +o ) -> 저장주소를 지정해줄시 끝나면 주소의 String pool에 넣어줌

 

 

ㄷ)Stringbuilder

 

StringBuffer는 동시에 제어에 대한 Thread Safe 기능을 제공한다.
하지만 간단한 프로그램 구현이나 동시제어를 필요로 하지 않는 경우
Thread safe 기능은 짐이 될 수 있기 때문에 StringBuilder도 별도로 제공하게 되었다.

StringBuilder의 사용법은 StringBuilder와 동일하다.

 

 

ㄹ)문자열 나누기

1)split(기준)

어떠한 문자열을 받을 때
"000,xxxx,zzzz" 
여러 문자열을 합하여 받는 경우
해당 문자열을  다시 여러개의 값으로
분리해야 될 필요가 있다.
이 때 사용하는 메소드가 split()메소드이다.
, / 등 자신이 원하는 것을 기준으로 자르고, 배열에 차곡차곡 담아준다.

 

2)StringTokenizer

split 메소드 처럼 하나의 문자열을 특정 구분자로 나누어 관리하는 객체

사용법

만약 토큰을 가지고있으면(hasMoreTokens()) 다음 토큰을 자르는 기준에 따라 내보내주세요(nextToken(기준)

띄어쓰기를 기준으로 했기때문에 , 가 붙게된다. 만약 마지막 토큰 뒤에 특정 문자를 붙이고 싶을경우에는 countTokens()가 0까지 -1씩 감소하기때문에

if( 토큰객체.countTokens() == 0)조건을 주면된다.

 

3)join

특정 문자열 배열을 하나의 문자열로 만들어주는 메소드. 원본은 변하지 않고 별도의 사본을 만들어 실행한다.

 

 

 

4.Math의 메소드

Math의 메소드는 전부 static 이라 객체 생성없이도 가능하다 (Math.메소드로 객체생성없이 사용)
(String은 객체 만들고 그 객체주소에 값 넣어야됨)

'JAVA > API' 카테고리의 다른 글

wrapper  (0) 2019.12.27