Java의 BigInteger에 TEN과 ONE이 상수로있는 이유는 무엇입니까? 실용적인 용도?
BigInteger 클래스에 상수 TEN과 ONE이있는 이유는 무엇입니까? 그것들을 상수로 사용하는 실용적인 용도는 무엇입니까? ZERO의 일부 사용 사례를 이해할 수 있습니다.
BigInteger
계산과 db 연산 후에 반환되는 함수를 작성했다고 가정 해 보겠습니다 . 종종 null, 0, 1과 같은 값을 반환해야 할 수 있습니다 BigInteger.ZERO
.를 쉽게 반환 할 수 있습니다. 이 값은 일반적으로 필요하므로 공개 됩니다.
public BigInteger findMyLovelyBigInteger(Integer secretNumber) {
if (secretNumber == null) {
return BigInteger.ZERO; // better than BigInteger.valueOf(0);
} else {
// some db operations
}
}
또한 BigInteger.TEN
일반적으로 power / divide / mod 작업에 사용됩니다.
BigInteger
공개 방법을 체크 아웃 합니다. 일반적인 사용 사례를 쉽게 볼 수 있습니다.
1 은 아마도 수학에서 가장 기본적인 숫자 일 것입니다 (0과 함께). 그것만으로도 그 자체의 상수를받을 자격이있는 것 같습니다. 실제로 많은 알고리즘에서 상수로 사용하는 것이 유용한 숫자입니다.
10 은 10 진수 시스템의 밑이기 때문에 BigInteger 컨텍스트에서 중요합니다. 이것은 여러 BigInteger 함수가 기수를 필요로하기 때문에 중요합니다 (예 : BigInteger.toString(int radix)
. 따라서 매우 유용한 상수입니다.
IMHO는 1과 10이 Java API 코드베이스의 다른 부분에서 사용되기 때문에 설계 결정이었습니다. Big *을 생성하는 것은 비용이 많이 드는 작업이며 상수를 사용하여 새로운 객체 생성을 피하고 (Big *는 어쨌든 불변) 코드를 더 읽기 쉽습니다.
아마도 나머지 API에는 다른 상수가 필요하지 않았을 것입니다.
그들을 공개하는 것은 아마도 잘못 일 것입니다. (Java API는 "나쁜"디자인 결정으로 가득 차 있습니다)
실제로는 모르지만 아마도 :
아마도 그들은 내부적으로이 constans를 많이 사용했을까요? (나는 소스 코드를 확인하지 않았지만 오픈 소스입니다).
편집하다:
예 :
코드를 살펴본 이유는 내부적으로 ZERO와 ONE을 많이 사용하기 때문이라고 생각합니다. 아마도 위의 이유를 고려할 때 다른 사람들이 이러한 상수로부터 이익을 얻을 수 있다고 생각했을 것입니다. 또는 다른 클래스에서도 이러한 상수를 사용합니다.
TEN은 v1.5에 추가되었습니다. 내부적으로 사용되지 않는 것 같지만 다른 클래스에서 사용할 수 있습니까?
10, 0, 1은 거의 모든 것에 답할 수 있습니다. 예를 들어 42에 도착하고 싶다면 (10 + 10 + 10 + 10 + 1 + 1) :)
'Program Tip' 카테고리의 다른 글
비동기 / 대기 아키텍처 (0) | 2020.12.12 |
---|---|
C ++ 11 shared_ptr을 지울 때 reset을 사용하거나 nullptr로 설정해야합니까? (0) | 2020.12.12 |
Visual Studio 2015에서 DNX / DNVM을 수정하는 방법은 무엇입니까? (0) | 2020.12.12 |
고온 및 저온 관측 가능 : '고온'및 '저온'연산자가 있습니까? (0) | 2020.12.12 |
Java에서 @Override는 무엇입니까? (0) | 2020.12.12 |