本文目錄一覽:
- 1、在用java編寫的時候,常出錯的地方在哪裡?如何解決呢?
- 2、為什麼我在編寫java程序時,電腦老死機?
- 3、用idea編寫java代碼時突然出現的問題求大佬指點
- 4、怎樣使用eclipse在編寫java文件時自動引入相關類庫?
- 5、你們在編寫java的代碼的時候一般用什麼樣的字體
在用java編寫的時候,常出錯的地方在哪裡?如何解決呢?
1. java.lang.nullpointerexception
這個異常大家肯定都經常遇到,異常的解釋是”程序遇上了空指針”,簡單地說就是調用了未經初始化的對象或者是不存在的對象,這個錯誤經常出現在創建圖片,調用數組這些操作中,比如圖片未經初始化,或者圖片創建時的路徑錯誤等等。對數組操作中出現空指針,很多情況下是一些剛開始學習編程的朋友常犯的錯誤,即把數組的初始化和數組元素的初始化混淆起來了。數組的初始化是對數組分配需要的空間,而初始化後的數組,其中的元素並沒有實例化,依然是空的,所以還需要對每個元素都進行初始化(如果要調用的話)
2. java.lang.classnotfoundexception
這個異常是很多原本在jb等開發環境中開發的程序員,把jb下的程序包放在wtk下編譯經常出現的問題,異常的解釋是”指定的類不存在”,這裡主要考慮一下類的名稱和路徑是否正確即可,如果是在jb下做的程序包,一般都是默認加上package的,所以轉到wtk下後要注意把package的路徑加上。
3. java.lang.arithmeticexception
這個異常的解釋是”數學運算異常”,比如程序中出現了除以零這樣的運算就會出這樣的異常,對這種異常,大家就要好好檢查一下自己程序中涉及到數學運算的地方,公式是不是有不妥了。
4. java.lang.arrayindexoutofboundsexception
這個異常相信很多朋友也經常遇到過,異常的解釋是”數組下標越界”,現在程序中大多都有對數組的操作,因此在調用數組的時候一定要認真檢查,看自己調用的下標是不是超出了數組的範圍,一般來說,顯示(即直接用常數當下標)調用不太容易出這樣的錯,但隱式(即用變數表示下標)調用就經常出錯了,還有一種情況,是程序中定義的數組的長度是通過某些特定方法決定的,不是事先聲明的,這個時候,最好先查看一下數組的length,以免出現這個異常。
5. java.lang.illegalargumentexception
這個異常的解釋是”方法的參數錯誤”,很多j2me的類庫中的方法在一些情況下都會引發這樣的錯誤,比如音量調節方法中的音量參數如果寫成負數就會出現這個異常,再比如g.setcolor(int red,int green,int blue)這個方法中的三個值,如果有超過255的也會出現這個異常,因此一旦發現這個異常,我們要做的,就是趕緊去檢查一下方法調用中的參數傳遞是不是出現了錯誤。
6. java.lang.illegalaccessexception
這個異常的解釋是”沒有訪問許可權”,當應用程序要調用一個類,但當前的方法即沒有對該類的訪問許可權便會出現這個異常。對程序中用了package的情況下要注意這個異常。
為什麼我在編寫java程序時,電腦老死機?
如果是用軟體編寫java代碼的時候會出現死機的情況就是電腦配置太差了
用idea編寫java代碼時突然出現的問題求大佬指點
Java8在2014年三月發布了。我們打算將Pondus的所有生產伺服器升級到這一新版本。從那時起,我們將大部分代碼庫遷移到lambda表達式、數據流和新的日期API上。我們也會使用Nashorn來把我們的應用中運行時發生改變的部分變成動態腳本。
除了lambda,最實用的特性是新的數據流API。集合操作在任何我見過的代碼庫中都隨處可見。而且對於那些集合操作,數據流是提升代碼可讀性的好方法。
但是一件關於數據流的事情十分令我困擾:數據流只提供了幾個終端操作,例如reduce和findFirst屬於直接操作,其它的只能通過collect來訪問。工具類Collctors提供了一些便利的收集器,例如toList、toSet、joining和groupingBy。
例如,下面的代碼對一個字元串集合進行過濾,並創建新的列表:
stringCollection
.stream()
.filter(e – e.startsWith( “a”))
.collect(Collectors.toList());
在遷移了300k行代碼到數據流之後,我可以說,toList、toSet、和groupingBy是你的項目中最常用的終止操作。所以我不能理解為什麼不把這些方法直接集成到Stream介面上面,這樣你就可以直接編寫:
stringCollection
.stream()
.filter(e – e.startsWith( “a”))
.toList();
這在開始看起來是個小缺陷,但是如果你需要一遍又一遍地編寫這些代碼,它會非常煩人。
有toArray()方法但是沒有toList(),所以我真心希望一些便利的收集器可以在Java9中這樣添加到Stream介面中。是吧,Brian?ಠ_ಠ
註:Stream.js是瀏覽器上的Java 8 數據流API的JavaScript介面,並解決了上述問題。所有重要的終止操作都可以直接在流上訪問,十分方便。詳情請見API文檔。
無論如何,IntelliJ IDEA聲稱它是最智能的Java IDE。所以讓我們看看如何使用IDEA來解決這一問題。
使用 IntelliJ IDEA 來幫忙
IntelliJ IDEA自帶了一個便利的特性,叫做實時模板(Live Template)。如果你還不知道它是什麼:實時模板是一些常用代碼段的快捷方式。例如,你鍵入sout並按下TAB鍵,IDEA就會插入代碼段System.out.println()。更多信息請見這裡。
如何用實時模板來解決上述問題?實際上我們只需要為所有普遍使用的默認數據流收集器創建我們自己的實時模板。例如,我們可以創建.toList縮寫的實時模板,來自動插入適當的收集器.collect(Collectors.toList())。
下面是它在實際工作中的樣子:
讓我們看看如何自己構建它。首先訪問設置(Settings)並在左側的菜單中選擇實時模板。你也可以使用對話框左上角的便利的輸入過濾。
下面我們可以通過右側的+圖標創建一個新的組,叫做Stream。接下來我們向組中添加所有數據流相關的實時模板。我經常使用默認的收集器toList、toSet、groupingBy 和 join,所以我為每個這些方法都創建了新的實時模板。
這一步非常重要。在添加新的實時模板之後,你需要在對話框底部指定合適的上下文。你需要選擇Java → Other,然後定義縮寫、描述和實際的模板代碼。
// Abbreviation: .toList
.collect(Collectors.toList())
// Abbreviation: .toSet
.collect(Collectors.toSet())
// Abbreviation: .join
.collect(Collectors.joining( “$END$”))
// Abbreviation: .groupBy
.collect(Collectors.groupingBy(e – $END$))
特殊的變數$END$指定在使用模板之後的游標位置,所以你可以直接在這個位置上打字,例如,定義連接分隔符。
提示:你應該開啟”Add unambiguous imports on the fly”(自動添加明確的導入)選項,便於讓IDEA自動添加 java.util.stream.Collectors的導入語句。選項在 Editor → General → Auto Import中。
讓我們在實際工作中看看這兩個模板:
連接分組
Intellij IDEA中的實時模板非常靈活且強大。你可以用它來極大提升代碼的生產力。你知道實時模板可以拯救生活的其它例子嗎?請讓我知道!
作者:布客飛龍 segmentfault.com/a/1190000006033999
怎樣使用eclipse在編寫java文件時自動引入相關類庫?
eclipse自動import步驟如下:
1.打開編輯好的java代碼頁面,可以看到ArrayList,File類由於沒有import相應的包而報錯。
2.在編輯區域點擊滑鼠右鍵,選擇【Source】,然後選擇【Organized Imports】選項
3.查看代碼可以看到,已經自動import了兩個類。
註:同時此方法也會刪除無用的import
你們在編寫java的代碼的時候一般用什麼樣的字體
一般適合用作程序代碼顯示的字體,有下列幾個:
(1):Courier New 9pt, Verdana, Lucida Console (宋體,新宋體等不在討論之列)
首先說說Courier New, 這個字體雖說經典,但總體感覺其實不好。因為是等寬字體,所以對編程而言,其優點是每個字元區分的十分清楚,方便查找程序中的輸入錯誤。不好的地方在於,因為是等寬字體,特別浪費顯示空間,在看代碼的時候恨不得顯示器變成 21寸的才好。總之就是感覺用來看那種大的框架的源代碼的時候,非常不適合。一屏只能看到很少的幾句代碼,有隻見樹木,不見森林之感,不利於從宏觀角度理解代碼的邏輯。另外在 VS.NET 2003 裡面該字體顯示的中文特別大,而且很醜陋 -_-!
(2):Verdana: 非等寬字體。總體可讀性好些,但是小的錯誤,比如多一個少一個空格之類的,很難排查。
Lucida Console 是等寬字體。可讀性也不錯,但是 vs.Net 顯示出來有鋸齒。
serif 字體通常不同筆順的粗細有別,且起筆落筆處有多餘的小折線。
sans-serif 字體筆畫不論方向粗細相同,且起筆落筆沒有多餘折線。
中文字體中,可以與此類比:宋體相當於 serif 字體,黑體相當於 sans-serif 字體。
正文中應該用 serif 字體以提高可讀性,標題可以用 sans serif 字體以示強調。
(3):serif 字體在視覺上強調單詞的整體,因此作為正文更可讀;而 sans serif 強調單個的字母。
研究顯示,在 web 中 sans-serif 字體更易閱讀。正文字體比較好的選擇:Arial 9.75 或 MS Sans Serif 9.75。為了提高閱讀準確性和速度,最好的字體大小是 8.25, 9.0, 或 9.75(”MS Serif 8.25″ 除外)。
(4)養眼的編輯器配色
環境:VS2005
字體:Verdana, 10pt
普通文本背景色:238,239,230 (#E6EFEE)
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/189128.html