Java Tip
Response 로 출력할 때 한글 제대로 출력하기 - 2007/05/23 05:59:51
- Response.setCharacterEncoding("utf-8");
Response.setHeader("Content-Type", "text/html; charset=utf-8");
위와 같이 response 에 대한 인코딩 정보와 브라우저에서 인식하게할 문서 타입 및 캐릭터셋을 알맞게 지정해 주면된다.
위의 예제는 utf-8 를 인코딩으로 사용하는 경우의 예제이다.
Eclipse 플러그인으로 코드 품질 높이기 - 2007/05/24 05:59:47
Eclipse에는 다양한 코딩 관련 플러그 인이 존재한다.
이중 어떤 것을 쓰느냐는 자신의 선택에 달려있다.
IBM에서 추천하는 플러그인에 대한 설명을 참조하면 개발에 상당히 많은 도움을 얻을 수 있을 것이다.
추천 하는 플러그인들의 역할은 다음과 같다.
해당 플러그인에 대한 자세한 정보는 아래 IBM사이트에서 확인할 수 있다.
사람을 위한 자동화 : Eclipse 플러그인으로 코드 품질 높이기
자바의 문자형, 정수형변환
- int 변수 = Integer.parseInt(다른타입변수);
- String 변수 = Integer.toString(다른타입변수);
super.메소드() 와 super("매개변수") 의 차이점
- super.메소드()는 상속을 받은 클래스(상위 클래스)의 메소드를 호출
- super("매개변수")은 상위로 해당 값을 전달한다.
다차원 배열의 길이 체크
아래와 같은 배열의 길이를 확인할 수 있다.
- int arr[] = {1, 2, 3, 4};
- System.out.println(arr.length); // 3이 출력됨.
다차원 배열의 경우는 어떨까?
- int arr[][] = {
- {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
System.out.println(arr.length); // 2가 출력됨.
2가 출력되는 이유는 arr[][] 중 제일 첫번째 []의 총 갯수를 알아오기 때문이다.
위의 경우 안의 배열의 갯수를 알아오기 위해서는 아래와 같이 하면 된다.
- int arr[][] = {
- {1, 2, 3, 4},
{5, 6, 7, 8},
{9, 10, 11, 12}
};
System.out.println(arr[0].length); // 3이 출력됨.
dangling else에 대해
아래와 같은 경우 else구문은 어느 if구문과 짝을 이루는지 구분하기 힘들다.
- if (num1 > num2)
- if (num1 > num3)
System.out.println("num1 = " + num1);
else
System.out.println("num2 = " + num2);
이런경우를 dangling else라고 하는데, dangling의 사전적 의미는 '달랑달랑 매달렸다'는 뜻이다.
이런 식의 코딩은 개발자에게 혼동을 주기 쉽지만 자바에서는 분명한 규칙이 정해져있다.
'dangling else는 가장 가까이 있는 if 키워드와 짝을 이룬다'는 것이다.
제일 좋은 코딩은 else문이 혼합된 형태의 if문에서는 블록 처리를 해주는 것이다.
abstract method를 사용하는 이유 3가지
- sub class에서 이 method를 반드시 구현하도록 하기 위해.(sub class마다 구현이 달라 super class에서 구현이 불가능한 경우)
- 기존에 쓰고 있던 class를 상속하여 사용하는 경우 sub class에서는 사용하지만 정작 해당 class(super class)는 더 이상 호출하지 않게 되는 경우가 발생할 수 있다. 이럴 때 super class의 method를 직접적으로 호출하지 않기 위해 abstract method를 사용한다.
- super class의 method를 호출하는 척하면서 compiler의 check를 무사 통과하고, 프로그램이 실행될 떄는 sub class의 method가 호출되도록 하는 것 (2번과 거의 비슷한 이유이나 3번은 다형성을 이용할때 다형성을 유지시키기 위해 존재하는 이유이다.)
경로 확인
- String currentDir = System.getProperty("user.dir");
File dir1 = new File (".");
File dir2 = new File ("..");
try {
System.out.println ("Current dir : " + dir1.getCanonicalPath());
System.out.println ("Parent dir : " + dir2.getCanonicalPath());
}
catch(Exception e) {
e.printStackTrace();
}
History
Last edited on 05/04/2010 10:19 by bluesky
Comments (0)