bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Java面試官:兄弟,你確定double精度比float低嗎?-創新互聯

我有一個朋友,叫老劉,戴著度數比我還高的近視鏡,顯得格外的“程序員”;穿著也非?!安痪幸桓瘛?,上半身是襯衣西服,下半身是牛仔褲運動鞋。

成都創新互聯公司10多年企業網站設計服務;為您提供網站建設,網站制作,網頁設計及高端網站定制服務,企業網站設計及推廣,對加固等多個方面擁有豐富的網站制作經驗的網站建設公司。

我和老劉的感情非常好,每周末我們都要在一起吃頓飯。這周,我們吃的是洛陽有名的吳家刀削面,席間他聊了一件蠻有趣的面試經歷;我聽得津津有味。

散席的時候,老劉特意叮囑我把他和面試者的對話整理一下發出來,因為他覺得這段對話非常的精彩,值得推薦給更多初學Java的年輕人。

注:以下是老劉和面試者東豐的真實對話。如有雷同,請勿對號入座

老劉:“東豐,你長期從事金融軟件的開發,記錄存款和金額之類的有關數據用哪種數據類型???”

東豐:“當然用float啊,精確度比double高嘛?!?/p>

老劉:“東豐,你確定double精度比float低嗎?”

東豐:“那當然啊,double只精確到小數點后兩位,double這個單詞的意思不就是二的意思嗎?”

老劉:“東豐,你右手邊剛好有一本《Java核心技術卷1》,你翻到第35頁,看一下?!?/p>

東豐:“......哦,劉經理,不用了。不好意思,剛剛開個玩笑,為了緩和一下面試的緊張氣氛??茨窈竦难坨R片下藏著一雙深邃的眼睛,我覺得您一定大有學問。在金融計算中,必須要使用BigDecimal,double和float都不適合。因為單單一個精度問題就能把人整暈了?!?/p>

“我記得有一次,我碰巧要計算一個表達式a - b,a的值為2,b的值為1.1,我侄女五歲半都知道答案應該是0.9,結果程序算出來的結果竟然是0.89999...,我當時又氣又激動,氣的是計算機還沒有我侄女靠譜,激動的是我竟然第一次找到了Java的bug?!?/p>

“我趕緊把這個bug反饋到了沉默王二的青銅時代群,以為我要被大家點贊表揚了。結果收到了大佬們一致的無情的嘲笑!”

“好在,群主二哥及時地安慰了我。他發我私信說:‘首先,計算機進行的是二進制運算,我們輸入的十進制數字會先轉換成二進制,進行運算后再轉換為十進制輸出。double和float提供了快速的運算,然而問題在于轉換為二進制的時候,有些數字不能完全轉換,只能無限接近于原本的值,這就導致了你看到的不正確的結果。’”

“看到二哥的信息后,我沮喪的心情得到了很大的安慰。我于是就對使用浮點數和小數中的問題進行了深入地研究。”

“BigDecimal可以表示任意精度的小數,并對它們進行計算。但要小心使用 BigDecimal(double) 構造函數,因為它會在計算的過程中產生舍入誤差。最好要使用基于整數或 String 的構造函數來創建BigDecimal對象。”

老劉:“哇,你回答得很好。那我們來看下一個問題。你應該知道2 / 0的時候程序會報java.lang.ArithmeticException的錯誤,那么你知道2.0 / 0的結果嗎?”

東豐:“劉經理,您這個問題難不倒我。結果是Infinity(英菲尼迪),不好意思,我的英語口語能力有限啊。其實就是無窮的意思。不僅有正無窮大,還有負無窮大,甚至還有一個叫做NaN的特殊值。NaN代表‘不是一個數字’。這些值的存在是為了在出現錯誤條件時,程序還可以用特定的值來表示所產生的結果。這些錯誤的情況包括算術溢出、給負數開平方根,還有您說的除以 0 等?!?/p>

老劉:“東豐啊,你的發音比我好啊,挺準確的。”

東豐:“劉經理您見笑了?!?/p>

老劉:“我這還有一道關于數組的問題,你稍等一下,我在紙上寫一下?!?/p>

int[] a = {1, 2, 3, 4}
int[] b = {2, 4}
int[] c = {1, 3}
int[] d = {2}

“有這樣四個數組,要求每個數組只留一個唯一的元素。也就是說,a、b、c、d四個數組之間的元素不能相同,你打算怎么做呢?”

東豐:“劉經理,我能用一下您的凌美鋼筆嗎?”

老劉:“可以啊,你請用?!?/p>

東豐:“我大致演算了一下。說一下我的思路。d只能是2,b只能是4,a是1或者3,c是3或者1。遍歷長數組,剔除長數組中含有的最短數組的元素。b中剔除d中的2還剩下4,a中剔除d中的2還剩下1、3、4,c中不含d中元素,所以不用剔除。剔除后b中還剩下一個4,d中是一個2。再次遍歷剔除a中的4。最后a和c中只剩下1和3了,再分別剔除互異的數就行了?!?/p>

“我覺得比較笨的作法,劉經理您覺得可行嗎?”

老劉:“可行,沒有問題。那,你對變量和方法的命名有什么看法呢?請隨意發揮啊。”

東豐:“我在博客園上曾看到一個有意思的投票統計——選出平常工作時自己認為最難的事情,選項大致有:”

  • 寫各種文檔
  • 與客戶溝通
  • 預估工作量
  • 給變量命名

“投票結果完全出乎我的意料,排在第一的竟然是‘給變量命名’!變量命名實在是軟件開發中最常見的一件事了,但這件事要想做好,還真是不容易啊?!?/p>

“阿里巴巴Java開發手冊中「強制」規定,方法名、參數名、成員變量、局部變量要統一使用lowerCamelCase風格,必須遵從駝峰形式?!?/p>

localValue // 變量
getHttpMessage() // 方法

“有很長一段時間,我總是在糾結究竟是用拼音好還是用英語單詞好的問題。后來我下定了決心:要么用拼音要么用英語單詞,只要看到名字就能知道這個變量或者方法的用意就行了?!?/p>

“有時候,確實很難給變量取一個好名字。這時候,我就會選擇一種省時省力省心的做法——將變量名命名為類型名。比如說:”

Map map;
List list;

“最好,變量聲明的地方要離第一次使用的地方近。否則的話,代碼閱讀起來會很困難,因為人眼睛接受的屏幕高度是有限的?!?/p>

老劉:“東豐啊,你非常的優秀。恭喜你,你的面試過了。你回去準備一下,下周一就可以來上班了。”

再注:以上是老劉和面試者東豐的真實對話。如有雷同,請勿對號入座


上一篇:對《Java核心技術卷一》讀者的一些建議

下一篇:請用面向對象的思想,談一談這次面試的過程

謝謝大家的閱讀,原創不易,喜歡就隨手點個贊

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

文章標題:Java面試官:兄弟,你確定double精度比float低嗎?-創新互聯
網頁URL:http://vcdvsql.cn/article0/epoio.html

成都網站建設公司_創新互聯,為您提供搜索引擎優化、網站制作域名注冊動態網站、品牌網站制作、用戶體驗

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

網站建設網站維護公司