티스토리 뷰

반응형

1. 기본지식

  • 클래스변수: 클래스가 메모리에 로딩(loading) 될 때 생성되어 프로그램이 종료될 때 까지 유지되며, public을 앞에 붙이면 같은 프로그래 내에서 어디서나 접근할 수 있는 전역변수의 성격을 갖는다.
  • 지역변수: 메서드 내에 선언되어 메서드 내에서만 사용 가능하며, 메서드가 종료되면 소멸되어 사용할 수 없게 된다.

 

1. 클래스 변수를 활용한 케이스

public class StaticClass {
    private static final Pattern PATTERN =  Pattern.compile("^(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&+=])(?=\\S+$).{8,}$");

    public static boolean validPassword(String password){
        return PATTERN.matcher(password).matches();
    }
}

 

2. 지역변수를 활용한 케이스

public class CompClass {
    public static boolean validPassword(String password){
        Pattern PATTERN =  Pattern.compile("^(?=.*[0-9])(?=.*[a-z])(?=.*[!@#$%^&+=])(?=\\S+$).{8,}$");
        return PATTERN.matcher(password).matches();
    }
}

 

 

class SimpleTest {
    @Test
    void test_static(){
        long start = System.currentTimeMillis();
        for (int i = 0; i < 1000000; i++) {
            String password = new String("Test12$@d");
            StaticClass.validPassword(password);
        }
        long end = System.currentTimeMillis();
        System.out.println(end-start);
    }

    @Test
    void test_static2(){
        long start = System.currentTimeMillis();

        for (int i = 0; i < 1000000; i++) {
            String password = new String("Test12$@d");
            CompClass.validPassword(password);
        }
        long end = System.currentTimeMillis();
        System.out.println(end-start);
    }
}

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함