Ctrl+Shift+F 格式化當前代碼
創(chuàng)新互聯(lián)建站致力于成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、外貿(mào)營銷網(wǎng)站建設(shè),成都網(wǎng)站設(shè)計,集團網(wǎng)站建設(shè)等服務(wù)標準化,推過標準化降低中小企業(yè)的建站的成本,并持續(xù)提升建站的定制化服務(wù)水平進行質(zhì)量交付,讓企業(yè)網(wǎng)站從市場競爭中脫穎而出。 選擇創(chuàng)新互聯(lián)建站,就選擇了安全、穩(wěn)定、美觀的網(wǎng)站建設(shè)服務(wù)!
其他快捷鍵:
Ctrl+1 快速修復(fù)(最經(jīng)典的快捷鍵,就不用多說了)
Ctrl+D: 刪除當前行
Ctrl+Alt+↓ 復(fù)制當前行到下一行(復(fù)制增加)
Ctrl+Alt+↑ 復(fù)制當前行到上一行(復(fù)制增加)
Alt+↓ 當前行和下面一行交互位置(特別實用,可以省去先剪切,再粘貼了)
Alt+↑ 當前行和上面一行交互位置(同上)
Alt+← 前一個編輯的頁面
Alt+→ 下一個編輯的頁面(當然是針對上面那條來說了)
Alt+Enter 顯示當前選擇資源(工程,or 文件 or文件)的屬性
Shift+Enter 在當前行的下一行插入空行(這時鼠標可以在當前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在當前行插入空行(原理同上條)
Ctrl+Q 定位到最后編輯的地方
Ctrl+L 定位在某行 (對于程序超過100的人就有福音了)
Ctrl+M 最大化當前的Edit或View (再按則反之)
Ctrl+/ 注釋當前行,再按則取消注釋
Ctrl+O 快速顯示 OutLine
Ctrl+T 快速顯示當前類的繼承結(jié)構(gòu)
Ctrl+W 關(guān)閉當前Editer
Ctrl+K 參照選中的Word快速定位到下一個
Ctrl+E 快速顯示當前Editer的下拉列表(如果當前頁面沒有顯示的用黑體表示)
Ctrl+/(小鍵盤) 折疊當前類中的所有代碼
Ctrl+×(小鍵盤) 展開當前類中的所有代碼
Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)
Ctrl+Shift+E 顯示管理當前打開的所有的View的管理器(可以選擇關(guān)閉,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所輸入的每個字母編輯器都提供快速匹配定位到某個單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個單詞時,特別實用,這個功能Idea兩年前就有了)
Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從后往前查)
Ctrl+Shift+F4 關(guān)閉所有打開的Editer
Ctrl+Shift+X 把當前選中的文本全部變味小寫
Ctrl+Shift+Y 把當前選中的文本全部變?yōu)樾?/p>
Ctrl+Shift+F 格式化當前代碼
Ctrl+Shift+P 定位到對于的匹配符(譬如{}) (從前面定位后面時,光標要在匹配符里面,后面到前面,則反之)
下面的快捷鍵是重構(gòu)里面常用的,本人就自己喜歡且常用的整理一下(注:一般重構(gòu)的快捷鍵都是Alt+Shift開頭的了)
Alt+Shift+R 重命名 (是我自己最愛用的一個了,尤其是變量和類的Rename,比手工方法能節(jié)省很多勞動力)
Alt+Shift+M 抽取方法 (這是重構(gòu)里面最常用的方法之一了,尤其是對一大堆泥團代碼有用)
Alt+Shift+C 修改函數(shù)結(jié)構(gòu)(比較實用,有N個函數(shù)調(diào)用了這個方法,修改一次搞定)
Alt+Shift+L 抽取本地變量( 可以直接把一些魔法數(shù)字和字符串抽取成一個變量,尤其是多處調(diào)用的時候)
Alt+Shift+F 把Class中的local變量變?yōu)閒ield變量 (比較實用的功能)
Alt+Shift+I 合并變量(可能這樣說有點不妥Inline)
Alt+Shift+V 移動函數(shù)和變量(不怎么常用)
Alt+Shift+Z 重構(gòu)的后悔藥(Undo)
編輯
作用域 功能 快捷鍵
全局 查找并替換 Ctrl+F
文本編輯器 查找上一個 Ctrl+Shift+K
文本編輯器 查找下一個 Ctrl+K
全局 撤銷 Ctrl+Z
全局 復(fù)制 Ctrl+C
全局 恢復(fù)上一個選擇 Alt+Shift+↓
全局 剪切 Ctrl+X
全局 快速修正 Ctrl1+1
全局 內(nèi)容輔助 Alt+/
全局 全部選中 Ctrl+A
全局 刪除 Delete
全局 上下文信息 Alt+?
Alt+Shift+?
Ctrl+Shift+Space
Java編輯器 顯示工具提示描述 F2
Java編輯器 選擇封裝元素 Alt+Shift+↑
Java編輯器 選擇上一個元素 Alt+Shift+←
Java編輯器 選擇下一個元素 Alt+Shift+→
文本編輯器 增量查找 Ctrl+J
文本編輯器 增量逆向查找 Ctrl+Shift+J
全局 粘貼 Ctrl+V
全局 重做 Ctrl+Y
查看
作用域 功能 快捷鍵
全局 放大 Ctrl+=
全局 縮小 Ctrl+-
窗口
作用域 功能 快捷鍵
全局 激活編輯器 F12
全局 切換編輯器 Ctrl+Shift+W
全局 上一個編輯器 Ctrl+Shift+F6
全局 上一個視圖 Ctrl+Shift+F7
全局 上一個透視圖 Ctrl+Shift+F8
全局 下一個編輯器 Ctrl+F6
全局 下一個視圖 Ctrl+F7
全局 下一個透視圖 Ctrl+F8
文本編輯器 顯示標尺上下文菜單 Ctrl+W
全局 顯示視圖菜單 Ctrl+F10
全局 顯示系統(tǒng)菜單 Alt+-
導航
作用域 功能 快捷鍵
Java編輯器 打開結(jié)構(gòu) Ctrl+F3
全局 打開類型 Ctrl+Shift+T
全局 打開類型層次結(jié)構(gòu) F4
全局 打開聲明 F3
全局 打開外部javadoc Shift+F2
全局 打開資源 Ctrl+Shift+R
全局 后退歷史記錄 Alt+←
全局 前進歷史記錄 Alt+→
全局 上一個 Ctrl+,
全局 下一個 Ctrl+.
Java編輯器 顯示大綱 Ctrl+O
全局 在層次結(jié)構(gòu)中打開類型 Ctrl+Shift+H
全局 轉(zhuǎn)至匹配的括號 Ctrl+Shift+P
全局 轉(zhuǎn)至上一個編輯位置 Ctrl+Q
Java編輯器 轉(zhuǎn)至上一個成員 Ctrl+Shift+↑
Java編輯器 轉(zhuǎn)至下一個成員 Ctrl+Shift+↓
文本編輯器 轉(zhuǎn)至行 Ctrl+L
搜索
作用域 功能 快捷鍵
全局 出現(xiàn)在文件中 Ctrl+Shift+U
全局 打開搜索對話框 Ctrl+H
全局 工作區(qū)中的聲明 Ctrl+G
全局 工作區(qū)中的引用 Ctrl+Shift+G
文本編輯
作用域 功能 快捷鍵
文本編輯器 改寫切換 Insert
文本編輯器 上滾行 Ctrl+↑
文本編輯器 下滾行 Ctrl+↓
文件
作用域 功能 快捷鍵
全局 保存 Ctrl+X
Ctrl+S
全局 打印 Ctrl+P
全局 關(guān)閉 Ctrl+F4
全局 全部保存 Ctrl+Shift+S
全局 全部關(guān)閉 Ctrl+Shift+F4
全局 屬性 Alt+Enter
全局 新建 Ctrl+N
項目
作用域 功能 快捷鍵
全局 全部構(gòu)建 Ctrl+B
源代碼
作用域 功能 快捷鍵
Java編輯器 格式化 Ctrl+Shift+F
Java編輯器 取消注釋 Ctrl+\
Java編輯器 注釋 Ctrl+/
Java編輯器 添加導入 Ctrl+Shift+M
Java編輯器 組織導入 Ctrl+Shift+O
Java編輯器 使用try/catch塊來包圍 未設(shè)置,太常用了,所以在這里列出,建議自己設(shè)置。
也可以使用Ctrl+1自動修正。
運行
作用域 功能 快捷鍵
全局 單步返回 F7
全局 單步跳過 F6
全局 單步跳入 F5
全局 單步跳入選擇 Ctrl+F5
全局 調(diào)試上次啟動 F11
全局 繼續(xù) F8
全局 使用過濾器單步執(zhí)行 Shift+F5
全局 添加/去除斷點 Ctrl+Shift+B
全局 顯示 Ctrl+D
全局 運行上次啟動 Ctrl+F11
全局 運行至行 Ctrl+R
全局 執(zhí)行 Ctrl+U
重構(gòu)
作用域 功能 快捷鍵
全局 撤銷重構(gòu) Alt+Shift+Z
全局 抽取方法 Alt+Shift+M
全局 抽取局部變量 Alt+Shift+L
全局 內(nèi)聯(lián) Alt+Shift+I
全局 移動 Alt+Shift+V
全局 重命名 Alt+Shift+R
全局 重做 Alt+Shift+Y
右擊就有啊!沒記錯的話應(yīng)該是Format,你右擊選中它就可以自動對齊咯!快捷鍵是:ctrl
+
shift
+
f
1、單行(single-line)--短注釋://……
單獨行注釋:在代碼中單起一行注釋,
注釋前最好有一行空行,并與其后的代碼具有一樣的縮進層級。如果單行無法完成,則應(yīng)采用塊注釋。
注釋格式:/*
注釋內(nèi)容
*/
行頭注釋:在代碼行的開頭進行注釋。主要為了使該行代碼失去意義。
注釋格式://
注釋內(nèi)容
行尾注釋:尾端(trailing)--極短的注釋,在代碼行的行尾進行注釋。一般與代碼行后空8(至少4)個格,所有注釋必須對齊。
注釋格式:代碼
+
8(至少4)個空格
+
//
注釋內(nèi)容
2、塊(block)--塊注釋:/*……*/
注釋若干行,通常用于提供文件、方法、數(shù)據(jù)結(jié)構(gòu)等的意義與用途的說明,或者算法的描述。一般位于一個文件或者一個方法的前面,起到引導的作用,也可以根據(jù)需要放在合適的位置。這種域注釋不會出現(xiàn)在HTML報告中。注釋格式通常寫成:
/*
*
注釋內(nèi)容
*/
3、文檔注釋:/**……*/
注釋若干行,并寫入javadoc文檔。每個文檔注釋都會被置于注釋定界符
/**......*/
...
一些企業(yè)在招聘程序員的時候,總會特意提出一個要求,即要求具有良好的編碼規(guī)范。確實現(xiàn)在程序開發(fā)人員已經(jīng)不在是單槍匹馬的單干,而是講究團體作戰(zhàn)。此時就要求團隊內(nèi)的乘員都可能夠恪守代碼的編寫規(guī)范,這對于乘員之間共享代碼、排錯等作業(yè)都具有非?,F(xiàn)實的意義。這在Java語言中當然也不例外。筆者借這次機會,就跟大家分享一下Java源代碼的折行規(guī)則。雖然這基本不涉及到功能層面的內(nèi)容,但是對于提高代碼的閱讀性卻有不可替代的作用。
一、代碼的最大長度。
雖然在Java的編譯器中對于代碼的最大長度沒有硬性的規(guī)定。但是如果代碼的長度太長,超過了編譯器的最當行寬,顯然閱讀起來比較麻煩。為此根據(jù)筆者的經(jīng)驗,通常情況下Java源代碼的行長度不應(yīng)該大于80個字符。如果超過這個長度的話,在一些開發(fā)工具和編輯器上就無法很好的顯示。如需要通過滾動條來顯示后面部分的代碼。當其他項目成員閱讀這超長的代碼時,就會看得眼花繚亂。當人的溫飽問題解決了之后,就需要開始注意美觀方面的問題。所以程序開發(fā)人員在開發(fā)應(yīng)用程序的時候,要盡量避免書寫長的代碼。如果代碼的每行長度確實需要超過80個字符的話(最好將每行代碼的長度控制在70個字符左右),那么就需要對代碼進行分行。
二、在恰當?shù)牡胤綄Υa進行分行。
筆者建議將Java源代碼每行的長度控制在70個字符、最大不超過80個字符。當超過這個字符長度的時候,開發(fā)人員就需要考慮在恰當?shù)牡胤綄λ麄冞M行分行處理。不過這個分行也不是說開發(fā)人員想在哪里進行分行就在哪里進行分行。這個分行是有一定技巧的。雖然這些技巧大部分并不是強制性的規(guī)定,但是都是一些專家們的經(jīng)驗總結(jié),可以提高代碼的閱讀性。為此筆者希望各位程序開發(fā)能夠嚴格的遵守。
技巧一:高層折行優(yōu)于低層折行。
這個技巧是說,在考慮對代碼進行折行處理的時候,需要注意代碼的層次性。如某段代碼涉及到混合四則運算,而四則運算又有明顯的運算順序,此時對代碼進行折行時就最好能夠在四則運算的關(guān)鍵順序上進行折行處理。如現(xiàn)在有如下的一段代碼:
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)+8*mynum5
如果要對這段代碼進行折行的話,該在哪個地方加入一個折行符號呢?如果是筆者處理的話,筆者會按如下的格式對代碼進行折行處理。
Mynum=mynum1*(mynum1+mynue2+mynum3-mynum4)
+8*mynum5
這主要是根據(jù)四則運算的運算層次來進行折行的。顯然,*符號的優(yōu)先級要比+符號要高。所以在+號前面對其進行折行處理,那么就可以一目了然的反應(yīng)出代碼的運算層次??梢源蠓鹊奶岣叽a的閱讀性。所以代碼折行的第一個技巧就是高層折行優(yōu)于低層折行。如此的話,可以使得應(yīng)用程序的結(jié)構(gòu)代碼更加的清晰,更容易被團隊成員所理解。
技巧二:在運算符前面進行折行處理。
其實在如上的折行技巧中,還隱藏著一個規(guī)則,即在運算符之前進行折行。如上例所示,筆者就是在+號前面進行折行,而不是在+號后面進行折行處理。這主要也是考慮到代碼的可讀性。如上面這個例子中,如果在+號后面進行折行處理的話,則下一行就會給人一種憑空多出來的感覺,顯得代碼很不連貫。跟這個規(guī)則類似,如果在折行處理的時候遇到逗號時,那么最好能夠在逗號后面進行折行。如在一個方法中,需要傳入5個參數(shù)。此時如果代碼行比較長,那么就需要在幾個參數(shù)之間進行折行處理。此時最理想的折行位置,就是在某個參數(shù)的逗號后面。注意,使在逗號后面進行折行,而不是在逗號前面。因為一個參數(shù)一個逗號是匹對的。而如果一個逗號加一個參數(shù),則讓人看起來很不舒服。
技巧三:這行代碼的對起方式。
當不得已對代碼進行折行處理時,下一行的代碼應(yīng)該與其同等級的代碼行左對齊。如上例所示,在+號前面將某一段四則運算公式進行折行處理的時候,其+號符號已經(jīng)采取縮進處理。其縮進后的效果就是要與其同等級的代碼行左對齊。如此的話,明眼人一看就知道這段代碼采取過折行處理;而且跟上一行代碼的層次關(guān)系。當一段代碼被分割成三行甚至跟更多行數(shù)的時候,這個規(guī)則會非常的有用。如果能夠嚴格遵守這個規(guī)則,即使將代碼分割成多行,看起來也不會覺得那么混亂。反而給人一種比較有層次的感覺。
另外在采取縮進處理的時候,可以利用Tab鍵來提高縮進處理的效率。因為直接按空格的話,有可能空格字符數(shù)量不一致,會讓人覺得層次不起,產(chǎn)生比較大的混亂。一般情況下,當代碼行兩側(cè)距離頁邊的距離比較大,看其來不怎么舒服時,可以在代碼行中通過插入TAB鍵(會在代碼行中連續(xù)插入8個字符)來提高代碼的閱讀性,讓代碼的縮進實現(xiàn)統(tǒng)一。
技巧四:為變量尋找一個合適的位置。
在編寫應(yīng)用程序時,盡量將變量聲明放置在一個代碼塊的開始處,也就是說{}花括號的開始位置。雖然說可以在需要使用變量的時候再對其進行聲明。但是筆者不同義如此操作。因為如果在的呢感到使用變量的時候再來聲明變量時,會降低代碼的可讀性。同理,也需要避免低層聲明與高層聲明重復(fù),這樣會引起代碼混亂并可能引發(fā)程序功能性錯誤。而且這種錯誤在后續(xù)的排錯中很難被發(fā)現(xiàn)。為此要在應(yīng)用程序開發(fā)的時候就要盡量避免這種錯誤。
在聲明變量的時候,有時候可能代碼很簡單,生命變量的行總共加起來也不會超過十個字符。此時能否把多個變量的聲明寫在同一行呢?從就技術(shù)上來說,這是可行的。也就是說,Java編譯器允許將多個變量定義在同一行上。但是從閱讀性上來說,這并不是很好的做法。筆者的建議是,即使變量定義再簡單,或者變量比較多,也最好分行進行變量的聲明。也就是說,一行聲明一個變量。這可以提高代碼的可閱讀性。而且有時候往往需要對變量加一個注釋說明變量的用途,如果以行定義一個變量,添加行注釋也相對簡單許多。
總之,以上的這些折行的規(guī)則基本上不會影響到代碼的運行。但是,對于代碼的維護與后續(xù)的排錯、升級、二次開發(fā)等等具有不可忽視的作用。而且現(xiàn)在基本上應(yīng)用程序開發(fā)式團隊開發(fā),故大家都遵守同樣的代碼編寫規(guī)范是非常重要的。筆者在開發(fā)一個應(yīng)用程序的時候,事先都會花一定的時間,跟項目成員強調(diào)這些折行的規(guī)則。目的只有一個,就是提高代碼的可讀性,便于后續(xù)代碼的共享與維護。畢竟后續(xù)面對這些代碼的,并不是客戶,而是我們自己。我們程序員在編寫代碼的時候,不能夠搬起石頭砸自己的腳。筆者認為,現(xiàn)在一個合格的程序人員,不僅技術(shù)功底上要過得硬,而且還必須要遵守這些無形規(guī)則的約束。難怪現(xiàn)在這么多企業(yè)在挑選程序開發(fā)人員的時候,都會注明良好的編碼規(guī)范?,F(xiàn)在對于這些無形中的條條框框,項目經(jīng)理已經(jīng)開始重視起來。
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class GradeStatistic {
public static void main(String[] args) {
GradeStatistic gs = new GradeStatistic();
ListMark list = new ArrayListMark();
float sum = 0;
while(true){
Scanner sc = new Scanner(System.in);
System.out.print("Please input student name: ");
String name = sc.nextLine();
if(name.equals("end")){
break;
}
System.out.print("Please input student score: ");
float score = sc.nextFloat();
sum += score;
list.add(gs.new Mark(name, score));
}
float max = list.get(0).getScore();
float min = list.get(0).getScore();
for(Mark mark: list){
if(max mark.getScore()){
max = mark.getScore();
}
if(min mark.getScore()){
min = mark.getScore();
}
}
float average = sum / list.size();
System.out.println("Average is: " + average);
System.out.println("Max is: " + max);
System.out.println("Min is: " + min);
}
private class Mark{
private String name;
private float score;
public Mark(String name, float score){
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public float getScore() {
return score;
}
}
}
----------------------
Please input student name: Zhang san
Please input student score: 100
Please input student name: Li Si
Please input student score: 91
Please input student name: Ec
Please input student score: 35
Please input student name: ma qi
Please input student score: 67
Please input student name: end
Average is: 73.25
Max is: 100.0
Min is: 35.0
你說的java源代碼是指編譯成的class文件前的java文件。
當我們運行.java文件時,它會被系統(tǒng)編譯成.class文件,例如Test.java編譯之后就是Test.class,
源文件就是指Test.java文件,
一般部署項目時,有.class文件就可以發(fā)布運行了,但是如果想修改這個系統(tǒng),.class是不能修改的,要有.java文件才能修改
也可以上網(wǎng)去下反編譯軟件,就是能把.class文件大部分還原成.java文件的工具,但不是100%還原,而且如果不是正版的,小心有毒啊,什么的。