一坑律、用戶界面(User interface)
相比于很多同類型的 IDE猪半,IntelliJ IDEA 在很多方面都顯得更加優(yōu)秀蜒车,IDEA 最吸引開發(fā)者的一個(gè)特性可能是它的沉浸式編程理念:在不離開 IDE 的情況下续室,可以調(diào)用 IDEA 的幾乎所有特性勃刨。同時(shí)波材,IDEA 可以完全定制界面的布局,比如隱藏部分暫時(shí)不使用的工具欄和窗口身隐,這樣就可以獲得更多的界面布局控制權(quán)廷区。
通常而言,IntelliJ IDEA 的界面上除了最主要的 Editor抡医,還會(huì)有一些 Tool Windows躲因,而且在編程的過程中需要在 Editor 和 Tool Windows 之間進(jìn)行切換,對(duì)此忌傻,IntelliJ IDEA 提供了很多的快捷鍵大脉,使得開發(fā)者在不厲害鍵盤的情況下就可以完成它們之間的快速切換。我們看幾個(gè)最常用的快捷鍵水孩,如下表:
Tool Window | Shortcut | Tool Window | Shortcut |
---|---|---|---|
Project | Alt+1 | Version Control | Alt+9 |
Run | Alt+4 | Debug | Alt+5 |
Terminal | Alt+F12 | Editor | Esc |
此外镰矿,當(dāng)讀者需要專注于編碼時(shí),IntelliJ IDEA 還提供了 Distraction Free Mode俘种,在該模式下秤标,IDEA 會(huì)移除所有的工具欄绝淡、工具窗口和編輯標(biāo)簽等。讀者可以利用主菜單中的 View菜單進(jìn)入:View -> Enter Distraction Free Mode苍姜。當(dāng)然牢酵,也可以直接利用快捷鍵:Ctrl+Shift+F12 在默認(rèn)布局模式和 Distraction Free Mode 之間進(jìn)行切換。
編程經(jīng)驗(yàn)表明衙猪,任何 IDE 在處理一個(gè)文件或者目錄眾多馍乙、層次嵌套很深的項(xiàng)目結(jié)構(gòu)時(shí),開發(fā)者都可能會(huì)迷失其中垫释。為了解決此問題丝格,IntelliJ IDEA 提供了一個(gè) 導(dǎo)航欄(Navigation Bar),該導(dǎo)航欄其實(shí)就是 項(xiàng)目工具窗口(Project tool Window) 的另一個(gè)緊湊視圖棵譬,非常清晰地展示開發(fā)者所操作的文件所處的位置細(xì)節(jié)和層次显蝌。導(dǎo)航欄的快捷鍵是 Alt+Home。
為了提升開發(fā)者的效率订咸,IntelliJ IDEA 中的很多組件(工具窗口和彈出框)都提供了快速搜索(speed search)曼尊。利用這個(gè)快速搜索,開發(fā)者可以過濾一個(gè)列表和導(dǎo)航到一個(gè)特定的元素算谈。
當(dāng)不知道某個(gè)操作的快捷鍵時(shí)涩禀,可以利用查找操作(Find action)來查找。只需記住查找操作的快捷鍵是 Ctrl+Shift+A然眼。在查找操作的搜索框中輸入操作名稱艾船,就可以看到對(duì)應(yīng)的快捷鍵或者直接調(diào)用。
二高每、編輯技能(Editor basics)
在 IntelliJ IDEA 中屿岂,引入了一個(gè) 本地操作歷史記錄(Local History) 的工具,利用該工具可以完成撤銷重構(gòu)操作和恢復(fù)修改操作的需求鲸匿,這樣以后爷怀,完全不需要開發(fā)者去關(guān)心保存每次的修改內(nèi)容。換一種說法就是 IntelliJ IDEA 是一個(gè)不需要主動(dòng)進(jìn)行保存操作的 IDE〈叮現(xiàn)在运授,我們看幾個(gè)最常用的快捷鍵,如下表:
功能 快捷鍵
移動(dòng)整行代碼 Ctrl+Shift+Up/Down
移除整行代碼 Ctrl+Y
添加代碼塊的注釋 Ctrl+Shift+/
在當(dāng)前文件中查找和替換 Ctrl+R
上一個(gè)查找結(jié)果 Shift+F3
下一個(gè)查找結(jié)果 F3
在訪問歷史中進(jìn)行導(dǎo)航 Ctrl+Alt+Left/Right
創(chuàng)建 Alt+Insert
復(fù)制整行代碼到下一行 Ctrl+D
添加/移除整行代碼的注釋 Ctrl+/
在當(dāng)前文件中查找 Ctrl+F
在打開的標(biāo)簽頁之間切換 Alt+Right/Left
高亮顯示 Ctrl+F7
代碼圍繞 Ctrl+Alt+T
針對(duì)實(shí)際編輯中的選取字符串操作乔煞,IntelliJ IDEA 提供了快捷鍵:Ctrl+W 會(huì)基于語法擴(kuò)展已選取的字符串吁朦;Ctrl+Shift+W 會(huì)基于語法收縮已選取的字符串。
針對(duì)實(shí)際編輯中的同時(shí)選擇多個(gè)代碼塊渡贾,IntelliJ IDEA 提供了快捷鍵逗宜;Alt+J 會(huì)選擇/取消某個(gè)代碼塊,Alt+Shift+J 也具有同樣的功能。
三纺讲、代碼助手(Code completion)
首先擂仍,最基本最常用的代碼助手是 Ctrl+Space(空格),利用這個(gè)基本助手(Basic completion)可以完成變量熬甚、類型逢渔、方法、表達(dá)式等的最基本完成建議乡括。而且复局,如果連續(xù)兩次按下 Ctrl+Space,它會(huì)提供出更多的選擇粟判,包括私有成員和一些還未引入當(dāng)前文件的靜態(tài)成員等。
在 IntelliJ IDEA 中峦剔,除了基本助手之外档礁,還提供了一個(gè)更加聰明的智能助手(Smart completion),這個(gè)智能助手更加明白開發(fā)者在當(dāng)前上下文環(huán)境中需要的類型吝沫、數(shù)據(jù)流等呻澜,并提供更加準(zhǔn)確的選項(xiàng)。調(diào)用智能助手的快捷鍵是 Ctrl+Shift+Space(空格)惨险。而且羹幸,如果連續(xù)兩次按下 Ctrl+Shift+Space,它會(huì)提供出更多的選擇辫愉,包括調(diào)用鏈栅受。
在修改鼠標(biāo)插入符所在的字符串時(shí),按下 Enter 鍵后會(huì)插入選擇的字符串恭朗,但很多時(shí)候我們需要的是復(fù)寫舊字符串屏镊,而不是插入字符串并獲得一個(gè)有冗余字符的字符串。所以痰腮,對(duì)于復(fù)寫/替換舊字符串而芥,應(yīng)該使用 Tab 鍵。
實(shí)際上膀值,IntelliJ IDEA 還提供了一個(gè)語句自動(dòng)完成(Statement completion)的功能棍丐,快捷鍵是 Ctrl+Shift+Enter。語句自動(dòng)完成 會(huì)自動(dòng)地添加缺失的 括號(hào)沧踏、中括號(hào)和必須的格式歌逢。
對(duì)于給方法或者構(gòu)造方法提供建議參數(shù)的功能,IntelliJ IDEA 也提供了快捷鍵:Ctrl+P悦冀。IntelliJ IDEA 會(huì)顯示每一個(gè)重載方法或重載構(gòu)造方法的參數(shù)信息趋翻,并且會(huì)高亮與方法已有參數(shù)最匹配的那個(gè)。此外,IntelliJ IDEA 中的 后綴助手(Postfix completion) 會(huì)基于 . 符號(hào)之后的輸入轉(zhuǎn)換一個(gè)已存在的表達(dá)式為另一個(gè)表達(dá)式踏烙。
四师骗、導(dǎo)航(Navigation)
當(dāng)前文件(Recent Files)
很多時(shí)候,開發(fā)者都需要面對(duì)項(xiàng)目的復(fù)雜目錄與文件讨惩,而且需要快速地在它們之間進(jìn)行切換辟癌。對(duì)此,IntelliJ IDEA 提供一個(gè)非常節(jié)省時(shí)間的功能荐捻,名為 當(dāng)前文件(Recent Files)黍少,可以利用快捷鍵 Ctrl+E 啟動(dòng)此功能。默認(rèn)情況下处面,焦點(diǎn)位于最近被訪問的文件上厂置。而且,利用此功能還可以快速定位和切換到其他的工具窗口(Tool Window)魂角。
對(duì)于實(shí)際編碼實(shí)踐中的快速定位到某個(gè)類昵济,IntelliJ IDEA 同樣提供了快捷方式:Ctrl+N。在彈出的搜索框中野揪,支持復(fù)雜的表達(dá)式访忿,比如駝峰形式、路徑斯稳、定位到行海铆、中間名匹配等,甚至支持簡(jiǎn)單的通配查找挣惰。如果連續(xù)兩次按下 Ctrl+N卧斟,還可以查找和導(dǎo)航到項(xiàng)目之外的類。此外憎茂,對(duì)于文件和目錄導(dǎo)航唆涝,IntelliJ IDEA 提供的快捷鍵是 Ctrl+Shift+N。當(dāng)然唇辨,導(dǎo)航到目錄時(shí)廊酣,需要在查找表達(dá)式的最后加上 “/” 字符。對(duì)于符號(hào)(Symbol)導(dǎo)航赏枚,IntelliJ IDEA 的快捷鍵是 Ctrl+Shift+Alt+N亡驰,這個(gè)功能常用于查找方法和屬性。
結(jié)構(gòu)(Structure)
除了在多個(gè)文件之間進(jìn)行切換之外饿幅,開發(fā)者經(jīng)常還需要在一個(gè)文件之內(nèi)進(jìn)行導(dǎo)航凡辱。完成文件內(nèi)導(dǎo)航的最簡(jiǎn)單方式就是使用 Ctrl+F12 快捷鍵,在彈出窗口(pop-up)中會(huì)展示當(dāng)前文件的結(jié)構(gòu)栗恩,這樣就可以快速地進(jìn)行定位導(dǎo)航了透乾。
選擇進(jìn)入(Select in)
當(dāng)我們需要在某個(gè)特定的工具窗口(Tool window)中定位當(dāng)前的文件時(shí),我們可以利用 IntelliJ IDEA 提供的 選擇進(jìn)入(Select in) 功能,該功能的快捷鍵是:Alt+F1乳乌。
最后捧韵,我們需要總結(jié)一下關(guān)于導(dǎo)航(Navigation)的功能與快捷鍵。如下表:
功能 快捷鍵
全項(xiàng)目搜索 Double Shift
類導(dǎo)航 Ctrl+N
文件/目錄導(dǎo)航 Ctrl+Shift+N
符號(hào)導(dǎo)航 Ctrl+Shift+Alt+N
當(dāng)前文件 Ctrl+E
文件結(jié)構(gòu) Ctrl+F12
選擇進(jìn)入 Alt+F1
定義處導(dǎo)航 Ctrl+B
類層次導(dǎo)航 Ctrl+H
UML導(dǎo)航 Ctrl+Alt+U
五汉操、快速提示(Quick pop-ups)
實(shí)際編碼中再来,對(duì)于某些不熟悉的類或者方法,開發(fā)者可能需要停下來查找資料磷瘤。為此芒篷,IntelliJ IDEA 提供了更加便利的工具來協(xié)助開發(fā)者。其中 快速提示(Quick pop-ups)就是提供與鼠標(biāo)定位處符號(hào)相關(guān)的有效的信息采缚,減少開發(fā)者的停頓時(shí)間针炉。下面,我們總結(jié)一些關(guān)于 pop-ups 的快捷鍵扳抽,幫助開發(fā)者提高效率:
功能 快捷鍵
文檔 Ctrl+Q
用法 Ctrl+Alt+F7
定義 Ctrl+Shift+I
實(shí)現(xiàn) Ctrl+Alt+B
實(shí)際上糊识,快速提示不僅僅在 Eidtor 中有效,這些快捷鍵在其他的窗口中同樣是有效的摔蓝。
六、重構(gòu)技能(Refactoring basics)
作為一名現(xiàn)在的程序員愉耙,重構(gòu)已經(jīng)是一個(gè)必備技能贮尉。為此,IntelliJ IDEA 提供了一系列復(fù)雜的自動(dòng)重構(gòu)代碼工具朴沿,這樣就可以快速提供開發(fā)者的重構(gòu)效率猜谚。而且,IDEA 提供的重構(gòu)技能非常智能赌渣。首先魏铅,在應(yīng)用任何重構(gòu)技能之前,不需要開發(fā)者必須選擇重構(gòu)的對(duì)象坚芜,IntelliJ IDEA 足夠智能览芳,可以發(fā)現(xiàn)開發(fā)者希望重構(gòu)的代碼。當(dāng)然鸿竖,在具有多個(gè)選擇的情況下沧竟,會(huì)提醒開發(fā)者進(jìn)行確認(rèn)。下面缚忧,我們總結(jié)一些關(guān)于 重構(gòu) 的快捷鍵悟泵,幫助開發(fā)者提高效率:
功能 快捷鍵
重命名 Shift+F6
抽取屬性 Ctrl+Alt+F
抽取方法 Ctrl+Alt+M
內(nèi)聯(lián) Ctrl+Alt+N
移動(dòng) F6
抽取變量 Ctrl+Alt+V
抽取常量 Ctrl+Alt+C
抽取參數(shù) Ctrl+Alt+P
拷貝 F5
重構(gòu)this Ctrl+Shift+Alt+T
如果需要撤銷最新的重構(gòu)操作,把焦點(diǎn)切換到 Project tool Window 之后闪水,按 Ctrl+Z 糕非。
通過使用重構(gòu)中的抽取功能,可以非常快速地實(shí)現(xiàn)替換指定字符串的操作朽肥。
查找用法(Finding usages)
實(shí)際編程中禁筏,開發(fā)者經(jīng)常需要查找和定位引用了鼠標(biāo)焦點(diǎn)所在位置符號(hào)的所有代碼片段,為此鞠呈,IntelliJ IDEA 提供了查找用法(Finding usages)功能融师。無論需要查找的符號(hào)是類及穗、方法珊膜、熟悉阴绢、參數(shù)還是其他語句等贸营,查找用法功能都可以實(shí)現(xiàn)淳地。按下 Alt+F7 就會(huì)獲得一個(gè)按照用法類型瞪醋、模塊和文件分組的引用列表柳琢。
當(dāng)然凡恍,如果開發(fā)者有定制查找用法功能所使用的算法的需求山林,按下 Ctrl+Shift+Alt+F7 就可以房待。此外,如果開發(fā)者需要查找的僅僅是普通的文本驼抹,那么可以使用 Find in Path 功能桑孩,該功能的快捷鍵是 Ctrl+Shift+F。
七框冀、檢查(Inspections)
檢查(Inspections)內(nèi)建于 IntelliJ IDEA 中的靜態(tài)代碼檢查工具中流椒,用于幫助開發(fā)者發(fā)現(xiàn)可能存在的bug、定位毫無用處的代碼明也、發(fā)現(xiàn)性能低效的代碼和提高代碼的整體結(jié)構(gòu)宣虾。而且,很多的檢查功能不僅支出了問題代碼的位置温数,而且還提供了快速修正此問題代碼的正確建議绣硝。可以使用 Alt+Enter 選擇其中的一個(gè)修正建議撑刺。
當(dāng)一個(gè)文件中有多個(gè)高亮的問題時(shí)鹉胖,可以使用 F2 和 Shift+F2 在這些問題之間進(jìn)行前后導(dǎo)航。
檢查是一個(gè)比較復(fù)雜和消耗性能的操作够傍,在編寫代碼的過程中不建議開啟 on-the-fly 模式次员,而是應(yīng)該在完成編程后執(zhí)行對(duì)整個(gè)項(xiàng)目代碼的靜態(tài)檢查時(shí),再開啟檢查功能王带。有兩種方法可以完成這種設(shè)置:通過主菜單中 Analyze 菜單:Analyze -> Inspect Code淑蔚;通過主菜單中 Analyze 菜單:Analyze -> Run Inspection by Name。
八愕撰、代碼風(fēng)格(Code style and formatting)
默認(rèn)情況下刹衫,IntelliJ IDEA 使用的代碼風(fēng)格是我們?cè)?Code Style settings 中設(shè)置的醋寝,如果需要個(gè)性化定制代碼,可以查看本系列教程的設(shè)置教程带迟。在絕大多數(shù)情況下音羞,IntelliJ IDEA 會(huì)自動(dòng)調(diào)用格式化代碼的命令,維護(hù)好代碼風(fēng)格仓犬。當(dāng)然了嗅绰,開發(fā)者也可以顯示地執(zhí)行格式化命令,常用的快捷鍵如下表:
功能 快捷鍵 功能 快捷鍵
重寫格式化 Ctrl+Alt+L 自動(dòng)行縮進(jìn) Ctrl+Alt+I
優(yōu)化導(dǎo)入語句
默認(rèn)情況下搀继,IntelliJ IDEA 使用空格替換了tabs窘面,當(dāng)然,可以在 Settings 中修改此行為叽躯。
九财边、版本控制技能(Version control basics)
正如本系列教程的前文所述,歡迎界面中的 Checkout from Version Control 和項(xiàng)目界面中主菜單的 VCS 菜單都具有開啟從 版本控制系統(tǒng)(VCS) 中導(dǎo)入項(xiàng)目的功能点骑。而且酣难,為了可以在當(dāng)前文件、目錄或整個(gè)項(xiàng)目上執(zhí)行 VCS 操作黑滴,我們可以通過按下 Alt+后引號(hào)(后引號(hào)是指鍵盤上 Esc 下面的那個(gè)鍵憨募。) 快捷鍵來調(diào)出 VCS操作窗口(VCS operations pop-up)。
一旦配置好了 VCS袁辈,就可以在 IntelliJ IDEA 中看到 Version Control tool window菜谣。實(shí)際上,在任何時(shí)候都可以利用快捷鍵 Alt+9 切換到這個(gè)工具窗口吵瞻。在這個(gè)工具窗口的 Local Changes 選項(xiàng)卡中會(huì)顯示出本地的所有修改文件,包括 staged 和 unstaged「誓ィ現(xiàn)在橡羞,我們看一下關(guān)于 VCS 的常用快捷鍵:
功能 快捷鍵
聚焦版本控制工具窗口 Alt+9
提交修改 Ctrl+K
推送提交 Ctrl+Shift+K
VCS操作窗口 Alt+后引號(hào)
更新項(xiàng)目 Ctrl+T
利用快速列表和上下文菜單中的注解,可以查看任何文件是被誰在什么時(shí)間修改等詳細(xì)信息济舆。
分支(Branches)
為了在分支上執(zhí)行操作卿泽,可以通過使用主菜單中 VCS 菜單的 Branches;也可以使用 VCS操作窗口滋觉;再或者使用開始欄中的右鍵功能签夭。需要注意的是,對(duì)于多個(gè)倉(cāng)庫而言椎侠,IntelliJ IDEA 會(huì)同時(shí)在所有的分支上執(zhí)行所有的 VCS 操作第租,所以完全沒有必要在它們之間進(jìn)行手工切換。
當(dāng)需要臨時(shí)保存一些本地的修改時(shí)我纪,而且不想把這些修改提交到倉(cāng)庫中時(shí)慎宾,開發(fā)者可以利用 Shelves丐吓,stashes 和 patches 命令達(dá)成此目的。關(guān)于這些命令的具體用法看參看本站的 Git 教程趟据。
十券犁、Make(制作)
默認(rèn)情況下,IntelliJ IDEA 并不會(huì)自動(dòng)編譯保存的項(xiàng)目汹碱。為了對(duì)項(xiàng)目執(zhí)行編譯粘衬,我們可以利用主菜單的功能:Build -> Make Project,當(dāng)然也可以直接使用快捷鍵:Ctrl+F9咳促。
Running and debugging(運(yùn)行與調(diào)試)
為了可以運(yùn)行 IntelliJ IDEA 的 Run/Debug 功能稚新,需要首先利用主菜單的功能:Run -> Edit Configurations 配置一下運(yùn)行與調(diào)試的參數(shù)。運(yùn)行與調(diào)試代碼的操作比較頻繁等缀,可以直接利用快捷鍵:
功能 快捷鍵 功能 快捷鍵
運(yùn)行(Run) Shift+F10 調(diào)試(Debug) Shift+F9
當(dāng) IntelliJ IDEA 處于調(diào)試模式時(shí)枷莉,可以利用其中的 Evaluate expression tool 執(zhí)行任何的表達(dá)式。啟動(dòng) Evaluate expression tool 的快捷鍵是 Alt+F8尺迂。而且笤妙,在該工具中還提供了與在 Editor 中一樣的代碼完成功能,十分方便噪裕。實(shí)際上蹲盘,調(diào)試代碼需要更精細(xì)的流程控制,所以 IntelliJ IDEA 提供了很多的調(diào)試快捷鍵:
功能 快捷鍵
切換斷點(diǎn) Ctrl+F8
Smart step into Shift+F7
Step out Shift+F8
Evaluate expression Alt+F8
Step into F7
Step over F8
Resume F9
如果在調(diào)試的過程中膳音,希望可以重試(rewind)召衔,可以使用 丟棄棧幀(Drop Frame)的功能。在錯(cuò)過了某些希望觀察過程的調(diào)試流程之后祭陷,該功能可以實(shí)現(xiàn)恢復(fù)現(xiàn)場(chǎng)的目的苍凛。使用這個(gè)功能可以做到將程序的狀態(tài)回退到期望觀察的位置,而不需要又重頭開始兵志。
調(diào)試過程中醇蝴,按住 Alt 鍵的同時(shí)點(diǎn)擊斷點(diǎn)符號(hào)可以快速地使該斷點(diǎn)失效。
如果需要改變斷點(diǎn)的細(xì)節(jié)想罕,比如斷點(diǎn)的條件悠栓,可以按下 Ctrl+Shift+F8。
重裝和熱部署(Reloading changes and hot swapping)
有時(shí)按价,在調(diào)試的過程中才想起來需要對(duì)代碼做一些小幅度的修改惭适。那么是否可以在不停止本次調(diào)試過程的情況下做到呢?由于 Java 的 JVM 具備了 熱交換(HotSwap)的特性楼镐,所以癞志,在 IntelliJ IDEA 執(zhí)行 Make 命令的過程中會(huì)自動(dòng)處理這種情況,檢查代碼變化框产,自動(dòng)重裝今阳。
應(yīng)用服務(wù)器(Application servers)
在 IntelliJ IDEA 中师溅,為了把一個(gè)應(yīng)用部署到服務(wù)器中,需要如下三步:
配置應(yīng)用的屬性:File -> Project Structure -> Artifacts (Maven和Gradle項(xiàng)目自動(dòng)完成此步驟)盾舌。
配置服務(wù)器的屬性:Settings -> Preferences -> Application Server墓臭。
配置運(yùn)行參數(shù):Run -> Edit Configurations ,確定部署的屬性和選擇具體的服務(wù)器。
而且妖谴,在任何時(shí)候都可以通過 Build -> Build Artifacts 讓 IntelliJ IDEA 去 構(gòu)建/重寫構(gòu)建應(yīng)用的屬性窿锉。
如果需要把代碼的修改應(yīng)用到已經(jīng)在運(yùn)行的應(yīng)用中,除了可以利用 Make 之外膝舅,還可以使用 Update 操作嗡载,Update 操作的快捷鍵是 Ctrl+F10。注意仍稀,這個(gè)更新操作只對(duì) Exploded artifact 類型的應(yīng)用才有效洼滚。而且,開發(fā)者還可以控制更新操作的應(yīng)用范圍是 resources 還是 classes 與 resources技潘。
如果這個(gè)更新操作是運(yùn)行在調(diào)試模式中遥巴,IntelliJ IDEA 使用 HotSwap 技術(shù),或者使用 Hot redeployment 技術(shù)享幽。
十一铲掐、構(gòu)建工具(Working with build tools)
一旦利用 Maven 或 Gradle 之類的工具來管理項(xiàng)目,我們就可以直接編輯項(xiàng)目中的 pom.xml 或 build.gradle 文件值桩。任何對(duì)于這兩個(gè)文件的修改摆霉,都需要被 IntelliJ IDEA 感知并同步修改項(xiàng)目模型。當(dāng)然奔坟,我們可以配置 IDEA携栋,讓其自動(dòng)同步這兩個(gè)文件的變化內(nèi)容。
pom.xml:File -> Settings -> Build,Execution,Deployment -> Build Tools -> Maven -> Importing -> Import Maven projects automatically
build.gradle:File -> Settings -> Preferences -> Build,Execution,Deployment -> Build Tools -> Gradle -> Use auto-import
當(dāng)然咳秉,為了方便進(jìn)行手工同步婉支,在 Maven/Gradle tool window toolbar 中都提供了對(duì)應(yīng)的快捷按鈕。
最后滴某,終于完成磅摹,本文在學(xué)習(xí)過程中可以做為備忘錄查閱滋迈,趕緊動(dòng)起手來吧試試吧霎奢,發(fā)現(xiàn)屬于你的驚喜!