반응형

Integer.parseInt를 많이 써왔었지만 문자를 정수로 바꾼다라는 것 밖에 몰랐었다.

그런데 이 함수가 다른 기능도 있었다. 

바로 진법 변환.

  1. @Test
  2. public void integerTest(){
  3.     String number1 = "1010";
  4.     String number2 = "10";   
  5.     Assert.assertEquals(10Integer.parseInt(number1, 2));
  6.     Assert.assertEquals(8Integer.parseInt(number2, 8));
  7. }

위 테스트 코드를 실행하면 정상적으로 실행이 된다.

첫번째는 1010을 2진법 수로 인식해서 결과값을 10을 리턴했고

두번째는 10을 8진법 수로 인식해서 결과값을 8로 리턴했다.

진법 변환하는것을 코드로 짜면 귀찮았는데 Integer.paserInt 함수에 이런 기능이 있었다니. ^^ 참 편리하네


728x90
반응형

'Development > Java' 카테고리의 다른 글

JSP 용량초과? 65535 bytes limit  (0) 2013.11.21
Reflection 활용한 값 비교  (0) 2013.11.13
Null Object 사용  (0) 2013.07.05
Singleton Pattern  (0) 2013.07.03
List 를 Array로 바꾸는 함수.  (0) 2013.07.02
반응형

...

객체를 상속받는 null 객체를 만들고

null일 경우 get method에 대한 처리 해줌

728x90
반응형

'Development > Java' 카테고리의 다른 글

Reflection 활용한 값 비교  (0) 2013.11.13
Integer.paserInt 를 사용한 진법 변환  (0) 2013.11.12
Singleton Pattern  (0) 2013.07.03
List 를 Array로 바꾸는 함수.  (0) 2013.07.02
Annotation : Retention  (0) 2013.07.01
반응형

Singleton Pattern : 해당 클래스의 객체가 하나만 만들어지고 어디서든지 그 객체에 접근할수 있도록 한다.


(출처 : http://www.phpbuilder.com/columns/Singleton-PHP5/Octavia_Anghel112310.php3)

구현 방법은 간단하다.

  1. public class Singleton {
  2.     private static Singleton singleton;
  3.     private Singleton(){};
  4.    
  5.     public static Singleton getInstance(){
  6.         if (singleton == null){
  7.             singleton = new Singleton();
  8.         }
  9.         return singleton;
  10.     }
  11. }

그런데 위와 같은 방법은 문제가 있다.

멀티 쓰레드 상에서 if문을 여러 client가 통과할 가능성이 있다는것이다.  그렇게 되면 유일한 객체가 아닌 singleton객체가 여러개 생성이 될수 도 있다.

그래서 찾은 방법이 synchronized를 사용하는것.

그런데 또 문제 발생... synchronized를 사용할 경우 멀티 쓰레드 상에서 성능 문제를 발생 시킬수 있다. singleton객체를 별로 안쓴다면 크게 문제가 없겠지만.

그래서 또 나온 방법이 DCL.  Double-Checked Locking

  1. public class Singleton {
  2.     private volatile static Singleton singleton;
  3.     private Singleton(){}
  4.     public static Singleton getInstance(){
  5.         if (singleton == null){
  6.             synchronized (Singleton.class) {
  7.                 if (singleton == null){
  8.                     singleton = new Singleton();
  9.                 }
  10.             }
  11.         }
  12.         return singleton;
  13.     }
  14. }

위에 코드처럼 singleton이 null 인 경우에만 synchronized를 적용한다면 속도에는 크게 지장이 없을것이다.

그리고 java1.4 이후에서 나온 volatile을 선언해 두면 해당 변수가 사용될때 한번 확인해서 동기화 시켜준다. 

728x90
반응형

'Development > Java' 카테고리의 다른 글

Integer.paserInt 를 사용한 진법 변환  (0) 2013.11.12
Null Object 사용  (0) 2013.07.05
List 를 Array로 바꾸는 함수.  (0) 2013.07.02
Annotation : Retention  (0) 2013.07.01
Meta Annotaion  (0) 2013.07.01
반응형

Arrays.asList(array);

이렇게 하면 array를 List로 변환해 준다.

나름 유용할듯. ^^

이것 이외에도 sort도 사용할수 있다.

Arrays.sort(array)

배열 정렬시킬때 잘 써먹을듯 하다. 

728x90
반응형

'Development > Java' 카테고리의 다른 글

Null Object 사용  (0) 2013.07.05
Singleton Pattern  (0) 2013.07.03
Annotation : Retention  (0) 2013.07.01
Meta Annotaion  (0) 2013.07.01
Type-Safe Code란?  (0) 2013.06.25
반응형

Retention Annotation은 meta Annotation이 얼마동안 유지되는지를 정한다.

사용법은 아래와 같다

Retantion(RetentionPolicy.SOURCE) : Annotation이 소스 코드에만 존재하고 class 파일이나 runtime 시에 나타나지 않는다.

Retantion(RetentionPolicy.CLASS) : compiler가 class파일에 기록은 하지만 runtime시에 나타나지 않는다. Retantion을 명시하지 않으면 default가 CLASS이다.

Retantion(RetentionPolicy.RUNTIME)compiler가 class파일에 기록을 하고 runtime시에 영향을 준다.

728x90
반응형

'Development > Java' 카테고리의 다른 글

Singleton Pattern  (0) 2013.07.03
List 를 Array로 바꾸는 함수.  (0) 2013.07.02
Meta Annotaion  (0) 2013.07.01
Type-Safe Code란?  (0) 2013.06.25
Fileld명을 테이블 컬럼명으로 바꾸자  (0) 2013.04.06
반응형

Annotation을 지정할 때에 특정 field나 method에 한정해서 지정해 줄 수 있다.


@Target(ElementType.FIELD)

위와 같이 사용하게 되면 해당 Annotation은 Field에만 사용할 수 있게된다.

FIELD 이외에도 다른 타입들이 존재한다.

TYPE(Class, interface..)
METHOD
PARAMETER
CONSTRUCTOR
LOCAL_VARIABLE
ANNOTATION_TYPE
PACKAGE

여러개를 사용하고 싶을 때에는 다음과 같이 Array형태로 지정한다.

@Target({ElementType.FIELD,ElementType.METHOD })


728x90
반응형

'Development > Java' 카테고리의 다른 글

List 를 Array로 바꾸는 함수.  (0) 2013.07.02
Annotation : Retention  (0) 2013.07.01
Type-Safe Code란?  (0) 2013.06.25
Fileld명을 테이블 컬럼명으로 바꾸자  (0) 2013.04.06
Tomcat 구동시 라이브러리를 못찾을 경우..  (0) 2013.03.29
반응형

Compile Time에 object의 type이 매칭이 제대로 되었는지 확인할 수 있는 코드를 말한다.

java의 Generic이 그 예가 된다.

728x90
반응형

'Development > Java' 카테고리의 다른 글

Annotation : Retention  (0) 2013.07.01
Meta Annotaion  (0) 2013.07.01
Fileld명을 테이블 컬럼명으로 바꾸자  (0) 2013.04.06
Tomcat 구동시 라이브러리를 못찾을 경우..  (0) 2013.03.29
ExecutorService  (0) 2013.03.22
반응형

가끔 이런것이 필요할 때가 있다.

userId 를 USER_ID 로 바꾸는 기능.

  1. public class Test {
  2.     public static void main(String[] args) throws Exception {
  3.         String regex = "([a-z])([A-Z])";
  4.         String replacement = "$1_$2";
  5.                 String str = "UserId";
  6.                 String value = "";
  7.                 value = str.replaceAll(regex, replacement).toUpperCase();
  8.                 System.out.println(value);
  9.     }
  10. }

728x90
반응형

'Development > Java' 카테고리의 다른 글

Meta Annotaion  (0) 2013.07.01
Type-Safe Code란?  (0) 2013.06.25
Tomcat 구동시 라이브러리를 못찾을 경우..  (0) 2013.03.29
ExecutorService  (0) 2013.03.22
오버라이딩 규칙  (0) 2013.02.12
반응형

해당 workspace 아래에 있는 

.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\프로젝트 명\WEB-INF

이 폴더를 찾아가서 lib가 제대로 들어가 있는지 확인해 보자..

이클립스 화면에 보인다고 해서 다 돌아가는게 아니더라...-_-;;

프로젝트 publising 할대 위에 폴더로 jar 파일이랑 다 들어가는데 그때 안들어가는 경우가 생기기도 한다..

그러니... 잘 기억해두고 찾아보자..


728x90
반응형

'Development > Java' 카테고리의 다른 글

Type-Safe Code란?  (0) 2013.06.25
Fileld명을 테이블 컬럼명으로 바꾸자  (0) 2013.04.06
ExecutorService  (0) 2013.03.22
오버라이딩 규칙  (0) 2013.02.12
Java에서 Null 값을 비교할 때  (0) 2013.02.12

+ Recent posts