欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    引言

    IntelliJ IDEA,由JetBrains(捷克共和國)開發的一款強大的Java集成開發環境(IDE),因其豐富的功能、智能的代碼輔助以及用戶友好的界面設計,在全球范圍內廣受Java開發者的喜愛,在國內,筆者遇到過不使用IDEA的Java程序員不超過三個。不僅限于Java,IntelliJ IDEA還支持多種其他編程語言和框架,如KotlinScalaGroovy以及Android開發等,這進一步擴大了其用戶基礎。其社區版是免費的,而專業版則提供了更為高級的功能。

    Debug(調試)是軟件開發中不可或缺的一個環節。它使開發者能夠逐行執行代碼,檢查運行時的狀態,包括變量值、內存占用、線程狀態等,從而幫助開發者理解代碼的實際行為,定位并修復錯誤。良好的調試工具可以顯著提高問題解決的效率,減少猜測工作,幫助開發者構建更加穩定、高效的軟件系統。


    在本文中,我將向大家介紹及演示IDEA的高階Debug技巧,包含但不限于:

    • 條件斷點(Conditional breakpoint): 允許開發者設置特定條件,只有當這些條件滿足時,程序才會在這些斷點處暫停執行。這對于調試復雜的循環和分支邏輯尤其有用,因為它可以讓你聚焦于特定的執行路徑或案例。
    • 計算器(Evaluate Expression): 這個功能允許開發者在調試會話中計算表達式的值,不僅可以查看變量的當前值,還可以執行表達式,甚至調用方法。這對于驗證假設和測試代碼更改而無需重新啟動整個調試會話非常有用。

    Debug基礎

    寫一段代碼,開啟調試:

    操作 Windows Mac(OS X) 進入下一步,如果當前行斷點是一個方法,則不進入當前方法體內 F8 F8(Fn) 進入下一步,如果當前行斷點是一個方法,則進入當前方法體內, 如果該方法體還有方法,則不會進入該內嵌的方法中 F7 F7(Fn) 智能步入,斷點所在行上有多個方法調用,會彈出進入哪個方法 Shift + F7 ?F7 (Fn) 智能跳出 Shift + F8 ?F8 (Fn) 恢復程序運行,如果該斷點下面代碼還有斷點則停在下一個斷點上 F9 F9(Fn) 運行到光標處,如果光標前有其他斷點會進入到該斷點 Alt + F9 ?F9(Fn) 計算表達式(可以更改變量值使其生效) Alt + F8 ?F8 (Fn) 切換斷點(若光標當前行有斷點則取消斷點,沒有則加上斷點) Ctrl + F8 ?F8 (Fn) 查看斷點信息 Ctrl + Shift + F8 ??F8 (Fn)

    表格來源于:

    程序猿DD

    高階技巧-條件斷點

    我們構造一個List<User>用來模擬從數據庫查詢出列表,第三個元素id=3中的age屬性是null,我們在for循環中使用加法來觸發Integer類型的拆箱來出發空指針異常。

    /**
     * @author Liutx
     * 公眾號:種棵代碼技術樹
     * @since 2023-12-04 14:09
     */
    public class IDEATest {
     public static void main(String[] args) {
    
      List<User> userList=new ArrayList<>(6);
      userList.add(new User(1, "Tom", 19));
      userList.add(new User(2, "Giles", 25));
      userList.add(new User(3, "Alex", null));
      userList.add(new User(4, "Ryan", 21));
      userList.add(new User(5, "DongGe", 19));
      userList.add(new User(6, "RUI", 21));
    
      userList.forEach(user -> {
       String name=user.getName();
       int futureAge=user.getAge() + 10;
       System.out.println(name + " 10年后" + futureAge + "歲");
      });
     }
    
    }
    
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    class User {
     private Integer id;
    
     private String name;
    
     private Integer age;
    }
    

    可以看到IDEA提示了第25行代碼報了錯,我們定位到第25行代碼內容:

    為了定位問題,我們在第25行打個斷點:

    null + 10

    在Java中,null是一個字面量,用來表示沒有任何對象與之關聯的引用。而+操作符在Java中主要有兩種用途:一是作為數學加法運算符,用于基本數據類型的數值相加;二是作為字符串連接運算符,用于將兩個字符串拼接在一起。

    當你嘗試執行null + 10這樣的表達式時,Java會嘗試找到一個合適的操作符重載來處理這個表達式。由于null不是一個數值,所以不能直接進行數學加法。但是,如果參與+操作的任一操作數是一個字符串,Java會將另一個操作數轉換為字符串,并執行字符串連接操作。

    條件斷點應用場景

    為了定位到具體哪一條數據出了問題,我們需要按F9或點擊箭頭處按鈕直到循環到錯誤數據,案例中共6條數據,即使最后一條數據錯誤,我們也只需要按五次即可發現問題數據,但是在正式/測試環境中,你無法確認從數據庫中查詢到多少條數據,假如是1000條,接下來很長一段時間你將被這個問題所困擾。顯然我們應該拒絕這種沒有效率、無意義、重復性的工作。

    如何添加條件斷點

    鼠標移至紅色斷點處,使用右鍵:

    Condition中添加判斷條件,上文中出現的異常是NullPointerException,我們就判斷循環中的user對象age變量為null的即可:

    Objects.isNull(user.getAge())
    

    點擊Done,確認。

    重啟Debug,我們可以看到循環出的第一條數據不再是列表的第一條,而是問題數據:

    這樣我們便可以很快的定位到錯誤數據,解決問題。

    條件斷點對于閱讀源碼的幫助

    例如,我們在閱讀Spring Framework源碼時,條件斷點可以幫助我們快速定位到正在目標Bean。

    Spring Boot項目在啟動時,會加載所有被標注的元數據,此時我們自定義了一個Bean的類型叫a,我們可以在BeanFactoryUtils對應的加載方法中添加條件斷點,這樣就可以更快的查看我們自定義的Bean的加載邏輯。


    高階技巧-計算器

    在2023新版IDEA中,可以通過以下步驟找到計算器,或者通過快捷鍵的方式找到計算器。

    查看變量值

    在斷點暫停時,你可以使用計算器來查看和評估變量的當前值,這比在變量監視窗口中查找要快得多。

    修改變量值

    修改變量值:如果你想要測試代碼對于不同變量值的反應,可以使用計算器改變變量的值,而無需修改代碼并重新啟動調試過程。

    測試表達式

    如果你在編寫代碼時不確定某個表達式的結果,可以使用計算器快速進行測試,而不必寫額外的測試代碼或者等待代碼運行到那一點。

    執行方法調用:

    通過計算器,你可以在不影響當前程序執行狀態的情況下執行方法,這樣可以幫助你理解方法的行為或者驗證方法的返回值。


    后續內容文章持續更新中...

    近期發布。


    關于我

    你好,我是Debug.c。微信公眾號:種棵代碼技術樹 的維護者,一個跨專業自學Java,對技術保持熱愛的bug猿,同樣也是在某二線城市打拼四年余的Java Coder。

    在掘金、CSDN、公眾號我將分享我最近學習的內容、踩過的坑以及自己對技術的理解。

    如果您對我感興趣,請聯系我。

    若有收獲,就點個贊吧,喜歡原圖請私信我。

    微軟Windows Storage Server (以下簡稱:WSS )是用于網絡附屬存儲(NAS)設備和iSCSI存儲系統的平臺。

    WSS 是建立在Windows Server 操作系統之上,為基于文件的共享存儲提供像Microsoft Hyper-V、Microsoft SQL Server和Windows Server 互聯網信息服務((IIS)等應用程序。它還支持網絡文件系統(NFS)文件協議和塊存儲選項。

    目前只有兩個版本, foundation和standard。這款產品分為兩個版本,工作組版與標準版。工作組版本主要針對小型用戶群組,授權許可中將其業務連接數量上限設置為250個。它同時也對底層硬件做出限制,要求用戶使用單CPU插槽、最高32GB內存及最多六塊磁盤驅動器。

      其標準版則在功能與特性方面與Windows Server 2012標準版如出一轍。它能夠支持兩套Hyper-V,允許使用最高2TB內存及64個CPU插槽。除此之外,標準版也沒有限制業務連接與磁盤驅動器數量。同時兩個版本都能作為域控制器使用,大家可以通過Windows Server 標準版創建虛擬機并在該角色中使用。

    WSS 是為云計算設計的,可以確保用戶能夠在私有云上使用混合應用程序,托管公有云、Windows Azure云等。這種多租戶環境下的產品工具可以幫助用戶執行服務等級協議(SLA),確保使用拒付情況。

    Windows Storage Server中一些關鍵的存儲功能:

    ? 池化多個物理磁盤。

    ? 增強服務器信息塊(SMB 3.0)協議。

    ? 支持NFS、iSCSI

    ? 完美支持虛擬化平臺(hyper-v、vsphere等)

    ? 卸載從服務器傳輸到外部存儲陣列的數據。

    ? 提高數據完整性、可用性和可擴展性的新的彈性文件系統(ReFS)。

    ? 單點管理、配置和部署多個虛擬桌面和會議。

    ? 有一個統一接口,使用Windows管理規范(WMI)來管理物理和虛擬存儲,包括第三方外部存儲子系統。

    ? 支持實時分配(也稱自動精簡配置)。

    ? 降低NTFS數據量上的主存儲空間需求。

    ? 分層存儲

    安裝WSS

    安裝WSS非常簡單,和安裝windows server 操作系統一樣,這里就不再詳細說明。

    但是有兩點需要注意的地方

    1. 采用服務器安裝WSS時,要注意,在安裝操作系統前,一定要做好規劃,比如用兩個磁盤盤做一個陣列,用于安裝操作系統,剩余的磁盤按客戶需求做陣列,記得一定要做好陣列,不然在操作系統層面認不到磁盤。
    2. 默認安裝好WSS時候,重復數據刪除、NFS等功能并沒有安裝上去,需要手動添加角色,如下圖

    新建存儲POOL

    WSS 存儲的設計思想和IBM V系列存儲類似,都是把添加到一個存儲池里,支持動態擴容,然后從POOL劃分邏輯卷,映射給主機。建議采用一個存儲池即可,如果有多鐘磁盤類型(如SAS、SATA),建議按不同磁盤類型的去劃分存儲池。

    本節討論如何新建存儲Pool。具體操作如下:

    1、打開服務器管理器,展開“文件和存儲服務”,選擇存儲池,如果有可用的磁盤,會發現在storage spaces下有一個原始池,名稱為“primordial”包含了可用磁盤的信息,右鍵選中“新建存儲池”,如下圖所示

    2、點擊“下一步”

    1. 輸入存儲池的名稱,如下圖

    4、選中可用的物理磁盤,這里還可以的磁盤分配類型有兩個選擇“自動”和“熱備用”,其中自動是默認選擇,“熱備用”和我們平時接觸的磁盤陣列中的熱備作用類似,但是通過測試發現即使這里選擇了“熱備用”,存儲的容量大小并不會減少一個磁盤的容量(在選擇一個熱備盤的情況下),只是顯示活動的磁盤狀態是,選擇熱備的那塊盤狀態不是活動而已。

    建議:推薦客戶使用IBM的3620,3650 HD等型號,或者HP的380 G8等服務器來安裝WSS 2012。另外,也建議,磁盤的陣列和熱備盤都在硬件層面上配置,這樣無論是性能還是可用性上都比較好。如果所有的磁盤都在一個陣列里面,在這一步中,顯示的物理磁盤就只有一個。

    5、確認信息,無誤后,點擊“創建”

    創建虛擬磁盤

    1、在存儲池界面,右鍵這里顯示的存儲池,選擇“新建虛擬磁盤”

    2、點擊“下一步”

    3、選擇存儲池,點擊下一步

    4、輸入虛擬磁盤名稱

    5、選擇存儲數據布局類型,如果已經在服務器層面上做了陣列,就直接選擇“simple”

    6、選擇磁盤設置類型,有“精簡”和“固定”兩種

    7、輸入虛擬磁盤的大小,這里有兩種方式,一個是指定大小,這種方式允許我們輸入的虛擬磁盤大小超過實際的物理容量,而且后期支持動態擴容,不影響、不中斷應用;另外一種是最大大小,物理實際容量多大就多大。

    8、確認無誤,點擊“創建”

    創建邏輯卷

    1、選擇其中一個pool,然后再虛擬磁盤的任務欄里對著其中一個虛擬磁盤右鍵,選擇新建卷

    2、點擊“下一步”

    3、點擊“下一步”

    4、輸入卷的大小,這里要注意的是:卷的大小不能超過虛擬磁盤的大小,最大和虛擬磁盤的大小一樣

    5、選擇磁盤符號

    6、選擇文件系統格式,分配單元大小,卷標等

    7、選擇是否設置重復數據刪除

    8、確認無誤后,點擊創建

    創建NFS存儲

    1、點擊“共享”,點擊下圖紅色框標注的地方

    2、選擇NFS共享——高級,點擊“下一步”

    3、選擇需要共享出去的卷

    4、設置共享名稱,點擊“下一步”

    5、選擇身份驗證,一般建議使用無服務器身份驗證即可,如下圖所示

    6、設置共享權限,添加主機的IP,和共享權限,如下圖

    7、添加好共享權限之后,點擊“下一步”

    8、選擇文件夾權限

    9、設置管理屬性

    10、選擇是否應用配額設置

    11、確定無誤后,點擊“創建”

    12、現在驗證一下,看看能不能掛載剛剛新建的NFS共享卷,我們打開cmd,在cmd里輸入mount IP地址:/共享文件名 z:具體請參考以下截圖,卸載也是同樣的命令格式

    創建iSCSI存儲

    1. 點擊iSCSI,在右邊的窗口點擊以下截圖標注的紅色框

    2、選擇Iscsi虛擬磁盤位置

    3、填寫iSCSI虛擬磁盤的名稱

    4、填寫虛擬磁盤大小,這里要注意,只能填寫最大的大小為最大可用空間的大小

    5、一般選擇新建Iscsi目標

    6、填寫目標名稱

    7、選擇添加

    8、選擇:ip地址,輸入需要映射存儲的目標服務器的IP地址

    9、點擊“下一步”

    10、保持默認,點擊“下一步”

    11、確認無誤,點擊“創建”

    12、創建完成后,我們通過一臺win08 R2的服務器去驗證,具體如下:

    13、映射成功,如下圖所示

    14、此時你會發現,狀態已經處于“連接”

    日常維護操作

    1、擴展存儲pool,該操作可在線進行,不影響應用正常使用

    1. 擴展虛擬磁盤,該操作可在線進行,不影響應用正常使用

    1. 擴展卷,擴展虛擬磁盤,該操作可在線進行,不影響應用正常使用
網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有