سؤال

وإما لإجراء مقارنات أو تهيئة متغير جديد، وأنها لا تحدث فرقا أي واحد من هذه تستخدمها؟

وأنا أعلم أن BigDecimal.ZERO هي ميزة 1.5، بحيث مصدر قلق، ولكن على افتراض أنا باستخدام 1.5 يهم؟

وشكرا.

هل كانت مفيدة؟

المحلول

وBigDecimal.ZERO هو ثابت محدد مسبقا، وبالتالي لا بد من تقييمها من سلسلة في وقت التشغيل كما BigDecimal("0") سيكون. وسوف يكون أسرع ولن تتطلب إنشاء كائن جديد.

إذا التعليمات البرمجية يحتاج إلى تشغيل ما قبل 1.5، ثم يمكنك استخدام (المفترى عليه من ذلك بكثير) نمط سينغلتون لخلق ما يعادل الكائن إلى BigDecimal.ZERO. لأول مرة يتم استخدامه، فإنه يدعو BigDecimal("0") لإنشاء كائن الصفر، ويعود هذا الكائن على المكالمات اللاحقة. خلاف ذلك، إذا كان رمز الخاص بك يعمل على نظام 1.5، يمكن الكائن المفرد عودتك فقط BigDecimal.ZERO مع أي عقوبة التشغيل.

نصائح أخرى

وعن طريق ZERO لا إنشاء كائن جديد أو يتطلب أي تحليل. بالتأكيد وسيلة للذهاب.

وقبل الحديث عن عقوبات وقت التشغيل، تأكد من أن هذه القطعة من المسائل التعليمات البرمجية. إعداد التنميط وقياس حالة استخدام كاملة.

وعلى الرغم من ذلك، يفضل Bigdecimal.ZERO كما انها تأكدت منه في وقت الترجمة بينما يمكنك كتابة قصد new BigDecimal("9")، الذي لن يقبل المترجم، ولكن الذي يؤدي الخلل في التطبيق الخاص بك.

وبدافع الفضول راجعت لمنشئ لBigDecimal وأنه ليس لديه أي تحسينات عن السلسلة "0". لذلك بالتأكيد نعم، هناك فرق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top