最近因為公司項目要由.net平台轉到java平台的原因,之前一直用.net的我不得不開始學習java了,剛開始聽到說要轉java的時候很抗拒,因為我想專注在.net平台上,不過這樣也並不完全是壞事,通過接觸java開發也許能拓展我的開發思想和知識面,所以這也許是個學習java的機會。
因為之前從來沒有做過java開發,所以現在不得不從最基礎的開始,而且因為做.net已經有幾年了,習慣了VS的良好的操作體驗,所以剛開始接觸Eclipse有很多的不適應。這個系列我想通過與.net比較的方式來學習,一來分清java與c#的區別,二來也許能加深對.net的理解,第三是希望想轉java的朋友能通過這個系列少走彎路。
工欲善其事,必先利其器。所以這個系列的第一篇我想總結的是它們開發環境以及常用的調試技巧的比較。我想從以下幾點來進行總結。
1,開發工具
2,常用操作快捷鍵
3,常用調試技巧
一,開發工具
.net的開發IDE工具就不用我多說了,就是“全球最牛的IDE” Visual Studio(下稱VS),而java開發一般選擇Eclipse,當然Eclipse是免費的。下面通過一張圖來說明它們之間界面和布局上的差異。
VS:
Eclipse:
我們可以看到,從界面布局上,兩者沒有太多差異,只是VS的項目管理在右邊,而Eclipse的項目管理在左邊,當然,這些窗口也是可以拖拽的,依據自己的操作習慣來。
二,常用操作快捷鍵
為了對比更加清晰,下面我用一張表格來分別列出VS和Eclipse常用操作的快捷鍵。
注:我這里用的VS版本是2010,Eclipse版本是Juno SR2
這份表格是基於我之前寫的一篇博客進行提煉修改的,原文章地址:提高vs操作效率,vs 2008與vs 2010快捷鍵總結。各位朋友如果有一些好的操作技巧也歡迎提出。
Visual Studio | Eclipse | 操作 | |
編輯 | |||
CTRL+E+C | CTRL+/ | 注釋,注釋選中的代碼(如果沒有選中任何行,則默認注釋當前行代碼) | |
CTRL+E+U | CTRL+/(再按) | 取消注釋,取消注釋選中的代碼 | |
CTRL+E+D | CTRL+SHIFT+F | 格式化整個文檔 | |
CTRL+E+F | 格化式選中代碼 | ||
CTRL+J | ALT+/ | 列出成員 | |
CTRL + SHIFT + 空格 | ALT+/ | 提示鼠標所在方法的參數類型和個數 | |
CTRL+M+L | CTRL+O | 快速OutLine | |
CTRL+M+O | |||
CTRL+. | 不適用 | 自動using命名空間 | |
SHIFT+ALT+ENTER | 全屏顯示 | ||
CTRL+K+S | 外側代碼,可以加region預處理或者try...catch...等 | ||
導航 | |||
F12 | F3 | 轉到定義 | |
CTRL + TAB | CTRL+E | 快速切換活動窗口 | |
CTRL + SHIFT + F | CTRL+F | 顯示在文件中查找和替換對話框 | |
SHIFT+ALT+ENTER | CTRL+M | 全屏無干擾模式 | |
CTRL+(→或←) | 同VS | 以單詞為單位進行左,右跳轉 | |
SHIFT+CTRL+(↑或↓) | 暫無 | 跳轉到該單詞上次或下次出現的地方 | |
CTRL+[SHIFT]+] | CTRL+SHIFT+P | 匹配括號移動(包括(),{},[],””) | |
SHIFT+F12(查找所有引用) | CTRL+T | 轉到接口的實現類 | |
CTRL+- | 返回到上次編輯的位置 | ||
CTRL+, | 定位到 | ||
調試 | |||
F5 | F11 | 調試運行 | |
CTRL+F5 | CTRL+F11 | 非調試運行 | |
F6 | 不適用 | 編譯整個解決方案 | |
SHIFT+F6 | 不適用 | 編譯當前選擇的工程 | |
SHIFT+F5 | CTRL+F2 | 停止調試 | |
F9 | CTRL+SHIFT+B(break) | 插入或取消斷點 | |
CTRL+SHIFT+F9 | 暫無 | 取消所有斷點 | |
F10 | F6 | 單步執行,但直接執行函數中調用部分而不分步 | |
F11 | F5 | 單步執行,並且單步執行函數中調用部分 | |
SHIFT+F11 | F7(繼續運行為F8) | 執行當前函數剩余部分代碼 | |
CTRL+F10 | CTRL+R | 運行到光標處 |
另外,Eclipse有一些自己獨特的快捷鍵,也非常好用,如下:
CTRL+SHIFT+R(resource):快速打開資源
ALT+SHIFT+R(rename):快速重命名方法和屬性
CTRL+.和CTRL+1:定位到錯誤及快速修改
三,常用調試技巧
之所以把調試技巧單獨列出來總結,是因為調試技巧對於我們程序員來說非常重要,運用得好的話可以大大提高我們的開發效率。其實對於VS的調試技巧,我相信我們做.net開發的大部分都已經很熟悉了,下面我把VS中非常常用的幾個調試技巧拿出來與Eclipse進行比較,看看Eclipse有沒有相應的解決方法。
1,斷點
說起調試,首先肯定是設置斷點了,所以斷點是所有調試的基礎。當然斷點又分很多種不同的類型,比較常用的就是條件斷點和斷點過濾器了。首先來看普通斷點吧。
1)普通斷點
設置斷點,VS為F9,而Eclipse為CTRL+SHIFT+B(break)
命中斷點后,接下來我們可以選擇F10單步運行,F11進入調用函數內部,或Shift+F11從調用函數返回到函數調用處。而對於Eclipse,單步運行是F6,進入調用函數內部是F5,返回到函數調用處是F7。
2)條件斷點
條件斷點一般用在for循環中,如下圖:
3) 斷點過濾器
斷點過濾一般用在調試多線程程序的時候,能過斷點過濾我們可以指定調試哪個線程,如下圖:
2,運行到指針
這個調試技巧也非常有用,當我們在調試一個很長的方法,我們不關心中間的邏輯,我希望斷點直接運行到某一行的時候,這個技巧就派上用場了。如下圖。
注意,這個技巧在VS中是快捷鍵CTRL+F10,而在Eclipse中我還沒有發現怎么去實現這個技巧,希望知道的朋友可以補充一下。
3,即時窗口
這個也用得非常多,它即可以查看變量的值,也可以直接在里邊寫代碼執行。如下圖。
不過,Eclipse里的即時窗口沒有VS的好用。
4,附加進程
附加進程有兩個好處,第一,提高調試效率,我一般習慣先以非調試模式運行(VS中快捷鍵是CTRL+F5),此時頁面已經打開,等到想調試的時候就選擇附加進程進行調試,不想調試的時候我停止調試就行了,這樣比按F5要快很多。第二個好處是,當程序已經發布了,本地也有源代碼的情況下,那么就可以直接附加到進程就可以調試了。下面是圖示。
注:Eclipse中我還不知道怎么實現這個功能,希望知道的朋友補充一下。
5,數據提示
當我們在調式一段程序,需要反復查看某個變量的值的時候,我們可以把這個變量釘在屏幕上,而且,我們還可以臨時去修改變量的值,這對我們去模擬一些BUG的時候非常有用。
注:Eclipse中還不知道怎么弄,好像在變量聲明的地方無法設置斷點,希望熟悉的朋友補充一下。
另外,這篇文章參考了以下文章:
更新歷史:
2014.9.12 增加CTRL+,定位到快捷鍵for VS