static_메서드1

2024. 1. 23. 22:08JAVA

static 키워드는 변수 뿐 아니라 method 에도 들어간다.

static 변수에 대해 알아봤으니, 이번엔 static method 고다.

 

 

public class ConvertUtil {

    public static String convertCitizenNumber(String citizenNumber) {
        String[] splitNum = citizenNumber.split("-");
        return splitNum[0] + "-" + splitNum[1].substring(0,1) + "******";
    }
}
public class ConvertUtilMain {
    public static void main(String[] args) {
        String citizenNumber = "201011-3156261";
        String resultConvert = ConvertUtil.convertCitizenNumber(citizenNumber);

        System.out.println("resultConvert = " + resultConvert);	// resultConvert = 201011-3******

    }
}

 

method 앞에 static 키워드를 사용하면 해당 method 는 클래스 method, 정적 method, static 메서드가 된다.

static 변수와 마찬가지로 jvm 메모리 영역중 method 영역에 저장되며 클래스명을 통해 접근이 가능 해진다.

 

동작 원리는 static 변수와 같은 걸로.. 땅땅!

 

 

p.s. 

subString() vs charAt()

갑자기 머릿 속에서 주민등록번호 변환 예제 만들어 보고 싶어서 생각나는대로 만들어 봤는데,

 

return splitNum[0] + "-" + splitNum[1].substring(0,1) + "******";

ide(현재 인텔리제이) 에서 subString() 말고 charAt() 워때 ? 라고 제안을 하길래

뭔 차인지 알아봤다.

 

단일 문자 추출이 목적이라면 subString(0,1) 보다 charAt(0) 을 쓰란다. 성능적인 면에서 차이가 발생한다고 한다.

그 이유가 무엇인고 하니

1. subString(int startIndex, int endIndex); 은 start 부터 end 까지의 String 값을 읽어들여 새로운 String 을 만들어 반환한다.

2. charAt(int index) 는 해당 인덱스에 있는 문자열 1개만을 반환한다.

3. charAt()은 새로운 객체를 생성하지 않지만, subString() 은 새로운 객체를 생성하게 되므로, 성능면에서 charAt() 이 유리하다고 한다.

 

물론, 단일 문자를 추출할 때의 예시이며, 문자열을 뽑아내야 할 경우, subString() 을 사용해도 무방하다.

더 상세한 내용이 있다는 모양인데, 그건 뭐 나중에 또 뭐 해보다 보면 알겠지.

'JAVA' 카테고리의 다른 글

상속  (0) 2024.01.28
static_메서드2  (0) 2024.01.23
static_static 변수  (0) 2024.01.22
자료구조_스택&큐  (0) 2024.01.22
메모리 구조_잡탕  (0) 2024.01.22