'나만의 작업/Java'에 해당되는 글 14건
- throw new UnsupportedOperationException() (4) 2009/10/30
- [Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. 2009/10/30
- [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) 2009/10/27
- [Effective Java] 15. 가변성을 최소화하자. (2) 2009/10/19
- [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) 2009/10/15
- [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. 2009/09/28
- [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) 2009/09/24
- [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) 2009/09/23
- [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 2009/09/17
- Eclipse Galileo에 어떤 프로젝트가 있을까? (2) 2009/08/26
- [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) 2009/08/26
- [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) 2009/07/31
- [Java] 자바 코딩하다가 실수하는 부분들 (8) 2008/03/03
- [java] java.util.Properties 클래스 (4) 2007/05/10
throw new UnsupportedOperationException()
Posted at 2009/10/30 10:23// Posted in 나만의 작업/Java자동생성되는 메소드에 throw new UnsupportedOperationException()넣기
이클립스에서 제공해주는 코드 템플릿을 이용하여, 인터페이스를 만들고 그 구현체를 퀵픽스를 통해 메소드를
자동생성했을 때 리턴값이 있을 경우 컴파일에러가 일시적으로 나지 않게 해주기 위해서 return null; 이나
return 0; 이나 임시땜빵으로 이런작업을 해주는데 이게 귀찮을 때
throw new UnsupportedOperationException()을 코드 템플릿을 이용하여 넣어주는 방법
이클립스라면 Preference – Java – Code Style – Code Templates 안에 Code/Method Body에 이를 추가해주면 된다.
자꾸 까먹어서, 링크 해 둡니다.
'나만의 작업 > Java' 카테고리의 다른 글
| throw new UnsupportedOperationException() (4) | 2009/10/30 |
|---|---|
| [Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. (0) | 2009/10/30 |
| [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) | 2009/10/27 |
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
[Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자.
Posted at 2009/10/30 10:14// Posted in 나만의 작업/Javaif (o instanceof Set) { // Raw type
Set<?> m = (Set<?>) o; // Wildcard type
...
}
'나만의 작업 > Java' 카테고리의 다른 글
| throw new UnsupportedOperationException() (4) | 2009/10/30 |
|---|---|
| [Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. (0) | 2009/10/30 |
| [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) | 2009/10/27 |
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
[Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자.
Posted at 2009/10/27 19:46// Posted in 나만의 작업/Java// Constant interface antipattern - do not use!
public interface PhysicalConstants {
// Avogadro's number (1/mol)
static final double AVOGADROS_NUMBER = 6.02214199e23;
// Boltzmann constant (J/K)
static final double BOLTZMANN_CONSTANT = 1.3806503e-23;
// Mass of the electron (kg)
static final double ELECTRON_MASS = 9.10938188e-31;
}
public class PhysicalConstants {
private PhysicalConstants() { } // Prevents instantiation
public static final double AVOGADROS_NUMBER = 6.02214199e23;
public static final double BOLTZMANN_CONSTANT = 1.3806503e-23;
public static final double ELECTRON_MASS = 9.10938188e-31;
}
public class Test {
double atoms(double mols) {
return AVOGADROS_NUMBER * mols;
}
...
// Many more uses of PhysicalConstants justify static import
}
'나만의 작업 > Java' 카테고리의 다른 글
| throw new UnsupportedOperationException() (4) | 2009/10/30 |
|---|---|
| [Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. (0) | 2009/10/30 |
| [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) | 2009/10/27 |
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
[Effective Java] 15. 가변성을 최소화하자.
Posted at 2009/10/19 10:08// Posted in 나만의 작업/Java[Effective Java] 15. 가변성을 최소화하자.
2) 상속을 할 수 없도록 하자. 일반적으로는 클래스를 final로 지정하면 상속을 막을 수 있다.
3) 모든 필드를 final로 지정한다. 새로 생성된 불변 클래스 인스턴스의 참조가 스레드간의 동기화를 하지 않고 하나의 스레드에서
다른 스레드로 확실하게 전달되도록 하는데도 필요하다.
4) 모든 필드를 private으로 지정한다. 필드로 참조되는 가변 객체를 클라이언트가 직접 접근하여 객체의 내용을 변경하는 것을 막기위함이다. 불변 클래스의 public final필드에서 기본형 데이터 값이나 불변 객체의 참조를 갖는 것이 기술적으로는 가능하다. 그러나 향후에 그 클래스의 내부 구조를 변경하기 어렵기 때문에 바람직하지 않다.
5) 가변 컴포넌트의 직접적인 외부 접근을 막자. 만일 가변 객체를 참조하는 필드가 클래스에 있다면, 그 클래스의 클라이언트가 해당 가변 객체의 참조를 획득할 수 없게 하자. 즉, 클라이언트가 주는 객체 참조로 그런 필드를 초기화해서는 절대 안되며, 접근자 메소드에서 객체 참조를 반환해도 안된다. 그대신 생성자와 접근자 메소드 및 readObject메소드에서 해당 객체의 방어 복사본(defensive copy)을 만들어 사용하도록 하자.
'나만의 작업 > Java' 카테고리의 다른 글
| throw new UnsupportedOperationException() (4) | 2009/10/30 |
|---|---|
| [Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. (0) | 2009/10/30 |
| [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) | 2009/10/27 |
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
[Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자.
Posted at 2009/10/15 10:03// Posted in 나만의 작업/Java이 인터페이스는 Object 클래스의 protected 메소드인 clone의 행동 방식을 규정한다. 만약, clone 메소드가 호출된 객체가 Cloneable 타입이라면, Object.clone 메소드는 이 객체의 모든 필드를 그대로 복사한 복제본을 리턴한다. 하지만 Cloneable 타입이 아니라면 CloneNotSupportedException을 던진다.
java.lang.Object.clone의 명세(Specification)
보통 모든 객체 x에 대하여, 다음 식
x.clone() != x는 true 이고, 또 다음 식
x.clone().getClass() == x.getClass()
도 true이지만 반드시 지켜야 할 사항은 아니다. 또 다음 식
x.clone().equals(x)
도 true이지만 반드시 지켜야 할 사항은 아니다. 어떤 객체를 복제할 때 보통 이 객체 클래스의 새로운 인스턴스는 반드시 생성해야 하지만, 내부 데이터 구조도 역시 복제해야 할지도 모른다. 이 메소드는 어떤 생성자도 호출하면 안 된다.
일반적인 Class의 clone() method
- field가 모두 기본형 타입일 경우
try {
return super.clone();
} catch(CloneNotSupportedException e) {
throw new Error("Assertion failuer");
}
}
어떤 객체가 가변 객체를 참조하는 필드를 갖고 있는 Stack클래스를 생각해 보자.
Stack 클래스의 clone 메소드가 올바르게 동작하려면, 원본 객체가 내부적으로 포함하고 있는 객체까지도 복제해주어야 한다.
그리고 그렇게 하는 가장 쉬운 방법은, elements 배열에 대해 재귀적으로 clone 메소드를 호출하는 것이다.
Cloneable을 implements 하는 클래스의 서브 클래스에서는 clone 메소드를 잘 구현해야한다.
객체를 복제하는 다른 방법을 제공하거나, 또는 복제할 수 없도록 하는 것이 좋다.
예를 들어, 불변 클래스의 객체 복제를 지원하는 것은 바람직하지 않다. 사실상 복제본이 원본과 같기 때문이다.
객체를 복제하는 좋은 방법은 복제 생성자나 복제 팩토리 메소드를 제공하는 것이다. 복제 생성자는 그냥 생성자로써, 그 생성자를 포함하는 클래스를 타입으로 하는
인자를 하나만 갖는다.
public Yum(Yum yum);
복제 팩토리는 복제 생성자와 유사한 static 팩토리 메소드로 다음과 같다.
public static Yum newInstance(Yum yum);
복제 생성자와 복제 팩토리 메소드를 사용하는 방법은 Cloneable 과 Clone을 사용하는 것에 대해 많은 장점을 갖고 있다.
'나만의 작업 > Java' 카테고리의 다른 글
| throw new UnsupportedOperationException() (4) | 2009/10/30 |
|---|---|
| [Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. (0) | 2009/10/30 |
| [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) | 2009/10/27 |
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
[Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자.
Posted at 2009/09/28 13:24// Posted in 나만의 작업/Java'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 23. 새로 작성하는 코드에서는 원천(raw) 타입을 사용하지 말자. (0) | 2009/10/30 |
|---|---|
| [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) | 2009/10/27 |
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
[Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자.
Posted at 2009/09/24 11:07// Posted in 나만의 작업/Java'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 19. 타입을 정의할 때만 인터페이스를 사용하자. (2) | 2009/10/27 |
|---|---|
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
[Effective Java] 5. 불필요한 객체 생성을 피하자
Posted at 2009/09/23 11:33// Posted in 나만의 작업/Java'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 15. 가변성을 최소화하자. (2) | 2009/10/19 |
|---|---|
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
| [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) | 2009/07/31 |
-
2009/09/24 11:18 [Edit/Del] [Reply]흠... String s = "abc" 해도
결국 new String('a', 'b', 'c') 하는 거니까...
객체 생성 한다는 측면에선 별 차이가 없는...
문제가 되는 건 new String(antoherString)하는 과정에서 불필요한 메모리 복사가 발생한다는... 정도...^^-
2009/09/28 13:28 [Edit/Del]^^ 자주 등장하는 String 객체생성.
말씀해주셨다시피 String s = "abc"도 결국 내부적으론 new String 을 하는거니 성능상의 문제는 비슷하죠.
불필요한 작업을 피하자는 것~ ^^
-
-
[Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자
Posted at 2009/09/17 10:23// Posted in 나만의 작업/Java//이 클래스는 인스턴스 생성이 불가능하다라는 주석을 다는게 좋겠다.
private UtilityClass(){
throw new AssertionError(
}
'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 11. clone 메소드는 신중하게 오버라이드 하자. (2) | 2009/10/15 |
|---|---|
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
| [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) | 2009/07/31 |
| [Java] 자바 코딩하다가 실수하는 부분들 (8) | 2008/03/03 |
Eclipse Galileo에 어떤 프로젝트가 있을까?
Posted at 2009/08/26 14:06// Posted in 나만의 작업/JavaEclipse Galileo 살펴보기
최신 버전의 오픈 소스 다목적 IDE 및 애플리케이션 플랫폼의 새로운 기능
|
'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
|---|---|
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
| [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) | 2009/07/31 |
| [Java] 자바 코딩하다가 실수하는 부분들 (8) | 2008/03/03 |
| [java] java.util.Properties 클래스 (4) | 2007/05/10 |
[Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자.
Posted at 2009/08/26 11:07// Posted in 나만의 작업/Java'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
|---|---|
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
| [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) | 2009/07/31 |
| [Java] 자바 코딩하다가 실수하는 부분들 (8) | 2008/03/03 |
| [java] java.util.Properties 클래스 (4) | 2007/05/10 |
-
2009/08/30 17:07 [Edit/Del] [Reply]오... enum 으로 싱글턴을... 신기하네요~
INSTANCE; 구문도 첨 본거고...
자바도 아직 공부할 게 많이 남았네요 ^^;;-
버리2009/09/01 12:17 [Edit/Del]Heart님 올만이에요~^^
저도 이번에 effective java 2nd 책 보면서 싱글턴으로 하는거 알아서..^^
메소드에 접근하고 싶다면,
Elvis.INSTACE.leaveTheBuilding();
이렇게 접근하면 된답니다.^^
-
[Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자.
Posted at 2009/07/31 11:05// Posted in 나만의 작업/JavaEffective Java Reloaded : http://developers.sun.com/learning/javaoneonline/2006/coreplatform/TS-1512.pdf?
'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
|---|---|
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
| [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) | 2009/07/31 |
| [Java] 자바 코딩하다가 실수하는 부분들 (8) | 2008/03/03 |
| [java] java.util.Properties 클래스 (4) | 2007/05/10 |
-
-
sebah2010/08/03 15:21 [Edit/Del] [Reply]좋은 책이죠. 저도 잘 보고 있습니다. 한가지.. public class Builder -> public static class Builder 로 변경해야 겠죠? ^^
[Java] 자바 코딩하다가 실수하는 부분들
Posted at 2008/03/03 10:12// Posted in 나만의 작업/Java알고보면 당연한 내용인데 코딩하다가 자주 하는 실수, Java Code Conventions 내용중에 있군요.
써놓고나면 덜 실수하려나...
출처 : http://java.sun.com/docs/codeconv/
Miscellaneous Practices
10.5.1 Parentheses
It is generally a good idea to use parentheses liberally in expressions involving mixed operators to avoid operator precedence problems. Even if the operator precedence seems clear to you, it might not be to others-you shouldn't assume that other programmers know precedence as well as you do.
if (a == b && c == d) // AVOID!
if ((a == b) && (c == d)) // RIGHT
10.5.2 Returning Values
Try to make the structure of your program match the intent. Example:
if (booleanExpression) {
return true;
} else {
return false;
}
return booleanExpression;
if (condition) {
return x;
}
return y;
return (condition ? x : y);
10.5.3 Expressions before `?' in the Conditional Operator
If an expression containing a binary operator appears before the ? in the ternary ?: operator, it should be parenthesized. Example:
(x >= 0) ? x : -x;
10.5.4 Special Comments
Use XXX in a comment to flag something that is bogus but works. Use FIXME to flag something that is bogus and broken.
'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
|---|---|
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
| [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) | 2009/07/31 |
| [Java] 자바 코딩하다가 실수하는 부분들 (8) | 2008/03/03 |
| [java] java.util.Properties 클래스 (4) | 2007/05/10 |
-
-
-
2008/03/04 18:19 [Edit/Del] [Reply]10.5.2 보고 '3항 연산자는 condition 구하는 수식이 복잡하면 코드가 더 난잡해지는데...' 라고 생각하고 적을라치니까 10.5.3에 괄호로 묶으라고 나오네요. ㅎㅎ;;
축약해서 라인 수를 줄이는 게 가독성에 나쁜 경우도 있는 거니까... 상황 따라 판단해야 할 것들도 있을 것 같아요. ^^
잘 봤어요~ -
iolo2008/03/05 10:31 [Edit/Del] [Reply]대부분의 return 문에선 장황한 if else 보다 ? : 가 더 눈에 잘 들어오죠~
아님 말구=3=3=3=33
[java] java.util.Properties 클래스
Posted at 2007/05/10 03:15// Posted in 나만의 작업/Javajava.util.Properties 클래스
* 환경설정 정보를 하드코딩하지 않고 외부파일을 이용하여 설정할때 사용한다.
InputStream is = ...
Properties props = new Properties();
try {
props.load(is);
}
....이와 같이 사용한다.
* 좀더 효율적인 방안
org.apache.commons.configuration.AbstractFileConfiguration.FileChangedReloadingStrategy
org.apache.commons.configuration.reloading.FileChangedReloadingStrategy
props = new PropertiesConfiguration(CONFIG_NAME);
props.setReloadingStrategy(new FileChangedReloadingStrategy());
출처 : 리눅스를 향하여(http://blog.naver.com/hq606fas?Redirect=Log&logNo=90011099513)
이것 덕분에 삽질한 밤...
'나만의 작업 > Java' 카테고리의 다른 글
| [Effective Java] 9. equals 메소드를 오버라이드 할 땐 hashCode 메소드도 항상 오버라이드 하자. (0) | 2009/09/28 |
|---|---|
| [Effective Java] 8. equals 메소드를 오버라이딩 할 때는 보편적 계약을 따르자. (3) | 2009/09/24 |
| [Effective Java] 5. 불필요한 객체 생성을 피하자 (4) | 2009/09/23 |
| [Effective Java] 4. private 생성자를 사용해서 인스턴스 생성을 못하게 하자 (0) | 2009/09/17 |
| Eclipse Galileo에 어떤 프로젝트가 있을까? (2) | 2009/08/26 |
| [Effective Java] 3. private 생성자나 enum 타입을 사용해서 싱글톤의 특성을 유지하자. (3) | 2009/08/26 |
| [Effective Java] 생성자의 매개변수가 많을 때는 빌더(builder)를 고려하자. (3) | 2009/07/31 |
| [Java] 자바 코딩하다가 실수하는 부분들 (8) | 2008/03/03 |
| [java] java.util.Properties 클래스 (4) | 2007/05/10 |
-
2007/05/10 09:11 [Edit/Del] [Reply]아파치 COMMON을 사용하면 파일 변경 시에 자동으로 프로퍼티를 다시 읽을 수 있나보군요... 알아두면 좋은 팁이네요 ^^
-
2007/05/11 00:53 [Edit/Del]apache commons엔 참 좋은 것들이 많이 있는것 같아요
모르면,, 손발 머리가 고생하니 열심히 공부해야할것 같아요..^^
-
-



이클립스.. 오랫만에 본다+_+
잘 지내고 있지? 환절기 감기 조심하구~ (신종플루보다 독감이 더 무서워...^^)
행복한 11월 맞이하렴~
밋첼님두 감기 조심하세요~~~ㅋㅋㅋㅋ