bugjava
1. 發現一個java日期的 bug
sql2000默認時間是1900-1-1 0:00:00
1928年元旦前幾分鍾,國民政府北伐成功,民國變了時制,從地方時間開始接軌國際時間,一下跳了5分鍾。導致今天的java時區上反映了這一變化?正解么
2. 面試中被問到你遇到的java編程中的bug你如何解決的
首先,要認識 bug。
如果一個程序做了它不應該做的事,或者沒有做它應該做的事,那就是 bug。bug 很難避免,尤其在規模化的編程過程中。
我們知道從面向過程的角度來說,一個程序是由數據結構和演算法構成的,從面向對象的角度來說,程序可以是由類和對象組成的。因此 bug 我這里分成兩類:
在一個 Java 程序中,類和對象的關系可能會造成 bug。這是設計時的問題,例如多實例的同步問題、線程沖突和死鎖問題,這是常見的兩個潛在的 bug。要盡量避免這類 bug,只能在設計時下功夫。思路一定要清晰,一定要清楚每個類要做些什麼,什麼時候該做些什麼。這類 bug 比較容易發現,但是不易修補,因為牽扯到程序的不同部分,有時候相當麻煩,因此最好一開始就不要讓它出現。
然後一些細節上的 bug,屬於邏輯漏洞,可能是演算法上的漏洞。Java 其實這方面要比 C/C++ 安全,因為後者的某些漏洞是致命的,例如內存泄露、指針沖突、野指針等一系列問題,可能直接導致程序崩潰,但是 Java 絕對不會出現指針問題,內存相對安全。但是 Java 也可能導致內存不斷消耗,最終崩潰的情況也是有的。這個問題我也碰到過幾次了,如何解決?需要你對你大量使用的類非常熟悉,最好事先仔細看看文檔,有的類需要你最後 dispose 的,有的類 add 過後需要 remove 的,有的類的某些方法會間接地創造一些對象。這種 bug 不大容易發現,尤其是我們有時候對 JVM 的絕對信任而忽略了這些細節,甚至造成了不好的習慣。要麼不礙事,要麼很嚴重,一但出現問題可能會發現同樣的問題幾乎出現在所有的地方。所以避免這類 bug 只有謹慎,並且要養長良好的習慣。
順便說一句,Java 內存溢出後程序就直接退出,可能會導致數據丟失之類的,這個責任擔當不起的。
然後邏輯漏洞還沒講完,還有一些和內存無關,但是也是邏輯上的疏忽造成的,例如數組越界、空棧、格式不兼容等等。這些相當難發現,有時候是正常的,有時候就報錯了。這個可以說是最普遍的漏洞,也是最難發現的漏洞。這類漏洞要看程序員的水平,經驗豐富、思維清晰、反應敏捷、習慣良好的程序員會好一點,但是不是所有的程序員都是這樣的,再說人無完人,再怎麼水平高也難免犯點小錯嘛。這種漏洞基本都是在後期測試(傳說中的內測)和已發布的測試版中逐漸被發現。為了盡量早發現,內部的測試要做的好,不過首先負責各個部分的程序員之間要定下默契,程序要符合規范,類和方法盡量簡單化,不要一個方法出現 4 個以上的參數,因為那樣會巨大的增加測試的麻煩。要寫好注釋,變數名寫完整,等等規范就不一一列舉了。然後對測試人員的要求也是比較高的,測試人員必須熟練掌握測試技巧,有的團隊這些小 bug 的修復也是測試人員做的,那測試人員也要良好掌握調試技巧,團隊內人員要保持良好的溝通。
3. 如何看待Python/Java的排序演算法被發現有潛在的bug
java和Python的默認排序演算法(TimSort)雖然在日常情況中運行良好,但在極端情況下會出現越界異常導致崩潰.這說明:
1.以結果為導向的測試方法,雖然在普通情況下能夠方便,快速的測試程序。但是也存在特殊的情況,並且這些極端情況還很容易被忽視掉,然後造成一些bug和異常。
2.形式化分析方法是有效的,可行的。在重點項目或者安全性要求高的項目中,盡可能的使用形式化分析方法。降低風險。
4. java,這個bug怎麼解決
這邊更多想見你對於詢問開發相關的問題類型,請盡量的把截圖甚至是部分重要的一個報錯代碼,有一個異常的情況解除下來,和一定程度相關的類方法函數之類,以及程序運行所經過的代碼的異常處部分。如果覺得可以的話,請給個採納,謝謝。要是不行的話可以繼續追問。
5. Java代碼bug求助,實際參數列表與形式參數列表長度不同
你好,很高興回答你的問題。其實你問題描述中已經說明了原因了。
實際參數列表必須和形式參數列表保持一致。
第三張圖中定義的get方法是不需要參數的,所以調用是不可以傳參數。
如果有幫助到你,請點擊採納。
6. Java程序員怎樣調試bug
前端調試技巧:瀏覽器按F12 可以觀察控制台輸出的變數,可以看請求的情況(請求路徑、參數等) ,這些都是常用的,每個瀏覽器不同。一般都是火狐的firebug 和谷歌瀏覽器<br>console.log(var tem); //控制台列印變數<br>alert("tem"); //彈出框彈出變數後台調試:eclipse IDE就是在相對應的java代碼處打斷點,看變數值等
7. java如何修改bug
導致bug的因素很多,可能是功能問題,可能是業務邏輯問題,可能是瀏覽器兼容問題,還有可能是代碼質量問題,你要先定位,然後才能對應的修改。否則不是無從改起,就是改了一個bug,又引入了新的bug!
8. java 如何運用 bug 查找錯誤
用MyEclipse或Eclipse的話可以在出錯的代碼出打斷點,然後用調試模式啟動就可以調試代碼了。如圖:
9. java 程序中 Bug 的具體含義
錯誤,分為編碼錯誤,運行錯誤,jvm內部錯誤。
編碼錯誤在eclipse等開發工具 中可以直觀的看到,這種錯誤比較少見。
運行錯誤,又稱運行時異常,這是代碼邏輯錯誤導致的,發生這種錯誤時一定要靜下心,從程序入口處尋找錯誤誘因。
jvm內部錯誤屬於Java虛擬機內部錯誤,比較少見,發生這種錯誤時,建議重啟計算機。
10. java隨機函數數bug
java中的Math.random()函數產生一個double的返回,返回的范圍是0-1,如果出現是0.00.。。的時候就會出現0,所以你應該這樣做
double seed = Math.random();
if(seed >= 0.1)
{
int s = (int)(seed * (num2 - num1));
if(s%0 == 0)
{
return s;
}
else
{
return s+1;
}
}