JavaSE:SE知識整體總結

1、引言

歷時一個多月的學習,已經掌握了JavaSE的知識,這篇博客就來做一下SE知識的總結~

2、數據類型和變量

Java中的數據類型分為基本數據類型和引用數據類型。

2.1 基本數據類型

基本數據類型共有四類八種:

四類:整形、浮點型、布爾類型、字符型

八種:

注意:

1. 不論是在16位系統還是32位系統,int都占用4個字節,long都占8個字節

2. 整形和浮點型都是帶有符號的

3. 整型默認為int型,浮點型默認為double

4.?. Java虛擬機規范中,并沒有明確規定boolean占幾個字節

2.2 引用數據類型

字符串、數組、類、接口等都是引用數據類型

2.3?類型轉換

2.3.1?自動類型轉換(隱式)

自動類型轉換即:代碼不需要經過任何處理,在代碼編譯時,編譯器會自動進行處理。特點:數據范圍小的轉為數 據范圍大的時會自動進行。

2.3.2?強制類型轉換(顯式)

強制類型轉換:當進行操作時,代碼需要經過一定的格式處理,不能自動完成。特點:數據范圍大的到數據范圍小的。

3、運算符

3.1 算術運算符

1. 基本四則運算符:加減乘除模(+ - * / %)

2. 增量運算符 +=? -=? *=? %=

3. 自增/自減運算符 ++? --

3.2 關系運算符

關系運算符主要有六個: ==? !=? <? >? <=? >=,其計算結果是 true 或者 false 。

3.3 邏輯運算符

邏輯運算符主要有三個: &&(邏輯與)? ||(邏輯或)? !(邏輯非) ,運算結果都是 boolean類型。

注意:&& 和 || 遵守短路求值的規則

3.4?位運算符

位運算符主要有四個:

&(按位與),

|(按位或),

~(按位取反),

^(按位異或) ,

除 ~ 是一元運算符外,其余都是二元運算符

3.4 移位運算符

1. 左移 <<: 最左側位不要了, 最右側補 0

2. 右移 >>: 最右側位不要了, 最左側補符號位(正數補0, 負數補1)

3. 無符號右移 >>>: 最右側位不要了, 最左側補 0

3.5?條件運算符

Java 中唯一的一個 三目運算符, 是條件判斷語句的簡化寫法:

表達式1 ? 表達式2 : 表達式3

3.6?運算符的優先級

注意:運算符之間是有優先級的,?具體的規則我們不必記憶。?在可能存在歧義的代碼中加上括號即可。

4、程序邏輯控制

本章詳細內容可見:JavaSE:程序邏輯控制-CSDN博客

4.1 順序結構

順序結構 即 按照代碼書寫的順序一行一行執行。

4.2?分支結構

if 語句(if-else、if-else if、if-else if-else)、switch 語句

4.3?循環結構

while 循環、for 循環、do while 循環

break(打破循環)、continue(跳出本次循環)

4.4 輸入輸出

4.4.1 輸出:

1. println 輸出的內容自帶 \n, ?print 不帶 \n

2. printf 的格式化輸出方式和 C 語言的 printf 是基本一致的

4.4.2 輸入:

使用 Scanner 讀取字符串/整數/浮點數

注意事項: 當循環輸入多個數據的時候, 使用 ctrl + z 來結束輸入 (Windows 上使用 ctrl + z, Linux / Mac 上使用 ctrl + d)

5、方法

方法類似于C語言中的函數。

注意事項:

1. 方法名字:采用小駝峰命名

2. 定義在類中

3.?方法不能嵌套定義

4. Java中,無方法聲明一說

5.1?實參和形參的關系

1. 形參只是方法在定義時需要借助的一個變量,用來保存方法在調用時傳遞過來的值

2. 在Java中,實參的值永遠都是拷貝到形參中,形參和實參本質是兩個實體

5.2?方法重載

在Java中,如果多個方法的名字相同,參數列表不同,則稱該幾種方法被重載了。

注意:

1. 方法名必須相同

2. 參數列表必須不同(參數的個數不同、參數的類型不同、類型的次序必須不同)

3. 與返回值類型是否相同無關

6、數組

數組是一個引用數據類型。

6.1 數組的初始化

6.1.1 動態初始化

在創建數組時,直接指定數組中元素的個數

6.1.2?靜態態初始化

在創建數組時不直接指定數據元素個數,而直接將具體的數據內容進行指定

注意:

如果沒有對數組進行初始化,數組中元素有其默認零值:

6.2?引用類型

基本數據類型創建的變量,稱為基本變量,該變量空間中直接存放的是其所對應的值;而引用數據類型創建的變量,一般稱為對象的引用,其空間中存儲的是對象所在空間的地址

數組是引用類型,其內部保存的內容可以簡單理解成是數組在堆空間中的首地址

6.3?null

null 的作用類似于 C 語言中的 NULL (空指針), 都是表示一個無效的內存位置

7、類和對象

本章詳細內容可見:JavaSE:類和對象-CSDN博客

Java是一門面向對象的語言,在面向對象的世界里,一切皆為對象。

7.1 類

類是用來對一個實體(對象)來進行描述的。

ps:類名注意采用大駝峰定義

7.2 對象

用類類型創建對象的過程,稱為類的實例化,采用new關鍵字,配合類名來實例化對象。

1. new 關鍵字用于創建一個對象的實例

2. 使用 . 來訪問對象中的屬性和方法

3.? 同一個類可以創建多個實例對象

7.3 this引用

this引用的是調用成員方法的對象。(即哪個對象調用就是哪個對象的引用類型)

7.4?構造方法

名字必須與類名相同在創建對象時,由編譯器自動調用,并且在整個對象的生命周期內只調用一次。

構造方法的作用就是對對象中的成員進行初始化。

注意:

1. 如果用戶沒有顯式定義,編譯器會生成一份默認的構造方法,生成的默認構造方法一定是無參的

2.?構造方法中,可以通過this調用其他構造方法(this(...)必須是構造方法中第一條語句

7.5 默認初始化

對象空間被申請好之后,對象中包含的成員已經設置好了初始值(默認零值),

8、封裝

面向對象程序三大特性:封裝、繼承、多態

不管是封裝還是繼承還是多態,都是一種思想!!!

封裝:隱藏對象的屬性和實現細節,僅對外公開接口來和對象進行交互。

使用private來對成員進行封裝。

8.1?封裝擴展之包

為了更好的管理類,把多個類收集在一起成為一組,稱為軟件包

包是對類、接口等的封裝機制的體現,是一種對類或者接口等的很好的組織方式

Java中已經提供了很多現成的類供我們使用,使用 import語句導入包

8.2 static成員

被static修飾的成員,稱之為靜態成員,也可以稱為類成員其不屬于某個具體的對象,是屬于類的,是所有對象所共享的。

本部分詳細內容可見:JavaSE:static成員-CSDN博客

注意:

1.?不能在靜態方法中訪問任何非靜態成員變量

2.?不屬于某個具體的對象,是屬于類的,所有對象共享的

3. 靜態方法中不能調用任何非靜態方法,因為非靜態方法有this參數,在靜態方法中調用時候無法傳遞this引用

4. 通過類名. 進行訪問

8.3 代碼塊

分為:普通代碼塊 實例代碼塊 靜態代碼塊 同步代碼塊

?本部分詳細內容可見:JavaSE:代碼塊-CSDN博客

8.3.1?實例代碼塊

也叫做構造代碼塊,一般用于初始化實例成員變量。

注意:實例代碼塊只有在創建對象時才會執行

8.3.2?靜態代碼塊

一般用于初始化靜態成員變量。

注意:

1.?靜態代碼塊不管生成多少個對象,其只會執行一次

2.?靜態成員變量是類的屬性,因此是在JVM加載類時開辟空間并初始化的

3.?如果一個類中包含多個靜態代碼塊,在編譯代碼時,編譯器會按照定義的先后次序依次執行(合并)

8.3.3 執行順序

靜態代碼塊-》實例代碼塊-》構造方法(有父類先執行父類的)

8.4 內部類

在 Java 中,可以將一個類定義在另一個類或者一個方法的內部, 前者稱為內部類,后者稱為外部類。內部類也是封裝的一種體現。

本部分詳細內容可見:JavaSE:內部類-CSDN博客

我們把內部類可以分為一下四種:

1.實例內部類(非靜態內部類 )

實例內部類對象必須在先有外部類對象前提下才能創建

2.靜態內部類

不需要再去通過外部類對象的引用來實例化

3.匿名內部類

4.局部內部類

9、繼承

本章詳細內容可見:JavaSE:繼承(通俗細節版)-CSDN博客

面向對象思想中提出了繼承的概念,專門用來進行共性抽取,實現代碼復用。

繼承主要解決的問題是:共性的抽取,實現代碼復用。

9.1 extends

Java語法上,子類通過extend來繼承父類

子類會將父類中的成員變量或者成員方法繼承到子類中

9.2 父類成員的訪問

成員訪問遵循就近原則,自己有優先自己的,如果沒有則向父類中找。

9.2.1 super關鍵字

出現同名的成員,非要訪問父類的,需要super來訪問。

Java提供了super關鍵字,該關鍵字主要作用:在子類方法中訪問父類的成員。

super也可調用父類構造方法。

使用super注意:

1. 只能在非靜態方法中使用

2. 在子類方法中,訪問父類的成員變量和方法。

3.在子類構造方法中,super(...)調用父類構造時,必須是子類構造函數中第一條語句。

9.3 final關鍵字

1. 修飾變量或字段,表示常量(即不能修改)

2. 修飾類:表示此類不能被繼承

3. 修飾方法:表示該方法不能被重寫

9.4 Object類

Java里面除了Object類,所有的類都是存在繼承關系的。默認會繼承Object父類。即所有類的對象都可以使用Object的引用進行接收。

10、多態

本章詳細內容可見:JavaSE:多態(含向上轉型、動態綁定、重寫)-CSDN博客

多態,就是去完成某個行為,當不同的對象去完成時會產生出不同的狀態。

多態是一種思想!!!

多態發生條件:

1. 必須在繼承體系下

2. 子類必須要對父類中方法進行重寫

3. 通過父類的引用調用重寫的方法

10.1 重寫

1. 子類在重寫父類的方法時,必須與父類方法原型一致: 返回值類型 方法名 (參數列表) 要完全一致

2. 被重寫的方法返回值類型可以不同,但是必須是具有父子關系

3.?訪問權限不能比父類中被重寫的方法的訪問權限更低。例如:如果父類方法被public修飾,則子類中重寫該方 法就不能聲明為 protected

4.?父類被static、private修飾的方法、構造方法都不能被重寫。

10.1.1 重寫和重載的區別

10.2?向上轉型

實際就是創建一個子類對象,將其當成父類對象來使用。

有三種形式來向上轉型:

1.直接賦值 2.方法傳參 3.返回值接收

10.3 向下轉型

將一個子類對象經過向上轉型之后當成父類使用,將父類引用再還原為子類對象

Java中為了提高向下轉型的安全性,引入 了 instanceof ,如果該表達式為true,則可以安全轉換

向下轉型不安全,用法很少。

11、抽象類和接口

本章詳細內容可見:JavaSE:抽象類和接口-CSDN博客

11.1 抽象類

如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。

抽象類主要用于繼承。

注意:

1. 抽象類不能直接實例化對象

2.?抽象方法不能是 private 的

3. 抽象方法不能被final和static修飾,因為抽象方法要被子類重寫

4. 抽象類必須被繼承,并且繼承后子類要重寫父類中的抽象方法,否則子類也是抽象類,必須要使用 abstract 修飾

5.?抽象類中不一定包含抽象方法,但是有抽象方法的類一定是抽象類

6. 抽象類中可以有構造方法,供子類創建對象時,初始化父類的成員變

11.2 接口

接口就是公共的行為規范標準,大家在實現時,只要符合規范標準,就可以通用。 在Java中,接口可以看成是:多個類的公共規范,是一種引用數據類型。

類與接口之間是 implements 實現關系。

注意:

1. 接口類型是一種引用類型,但是不能直接new接口的對象

2. 接口中每一個方法都是public的抽象方法, 即接口中的方法會被隱式的指定為 public abstract(只能是public abstract,其他修飾符都會報錯)

3. 接口中的方法是不能在接口中實現的,只能由實現接口的類來實現

5. 接口中可以含有變量,但是接口中的變量會被隱式的指定為 public static final 變量

6. 接口中不能有靜態代碼塊和構造方法

7.即Java中不支持多繼承,但是一個類可以實現多個接口

11.2.1 接口間的繼承

接口可以繼承一個接口, 達到復用的效果. 使用 extends 關鍵字

接口間的繼承相當于把多個接口合并在一起。

11.2.2?Clonable接口、淺拷貝與深拷貝

詳見:JavaSE:Clonable接口、淺拷貝與深拷貝-CSDN博客

11.2.3?Comparable與Comparator接口

詳見:JavaSE:Comparable與Comparator接口-CSDN博客

11.3 抽象類和接口的區別

核心區別: 抽象類中可以包含普通方法和普通字段, 這樣的普通方法和字段可以被子類直接使用(不必重寫), 而接口中不能包含普通方法, 子類必須重寫所有的抽象方法。

12、String類

本章詳細內容可見:JavaSE:String類常用方法(巨詳細)-CSDN博客


本章詳細內容可見:JavaSE:String類常用方法(巨詳細)-CSDN博客

JavaSE:StringBuilder和StringBuffer類-CSDN博客

String類是引用數據類型。

12.1 字符串的構造

1.通過雙引號直接定義

2.通過new對象來定義

3.通過字符數組來定義

12.2 字符串的不可變性

value數組被private修飾封裝,沒有提供任何的get和set方法,無法獲取到字符串,當然也不可能被修改。

12.3 String類的常用方法

JavaSE:String類常用方法(巨詳細)-CSDN博客

12.4 字符串的修改

因為String類是不能修改的,所有的修改都會創建新對象,效率非常低下。

如果要修改建議盡量 使用StringBuffer或者StringBuilder。

JavaSE:StringBuilder和StringBuffer類-CSDN博客

13、異常

在程序執行過程中,發生的一些不正常行為,就叫做異常。

13.1 異常的分類

13.2?運行時異常(非受查異常)

數組越界異常、空指針異常、算數異常、類型轉換異常等都是非受查異常。

13.3?編譯時異常(受查異常)

在程序編譯期間發生的異常,稱為編譯時異常,也稱為受檢查異常。

13.4 處理異常

異常處理主要用到5個關鍵字:throws、try、catch、throw、finally

13.4.1 throw

借助throw關鍵字,拋出一個指定的異常對象,將錯誤信息告知給調用者。

注意:

需要注意:

1. throw必須寫在方法體內部

2. 拋出的對象必須是Exception 或者 Exception 的子類對象(不能拋出自定義類的對象)

3. 如果拋出的是 RunTimeException 或者 RunTimeException 的子類(運行時異常),則可以不用處理,直接交給JVM來處理(但程序會立即終止)

4. 如果拋出的是編譯時異常,用戶必須處理,否則無法通過編譯

5. 異常一旦拋出,其后的代碼就不會執行

13.4.2?throws

當方法中拋出編譯時異常,用戶不想處理該異常,此時就可以借助throws將異常拋給方法的調用者來處理。即當前方法不處理異常,提醒方法的調用者處理異常。

13.4.3?try-catch

try-catch知識點總結:

1. try塊內拋出異常位置之后的代碼將不會被執行

2. 如果拋出異常類型與catch時異常類型不匹配,即異常不會被成功捕獲,也就不會被處理,繼續往外拋,直到 JVM收到后中斷程序----異常是按照類型來捕獲的

3.?try中可能會拋出多個不同的異常對象,則必須用多個catch來捕獲----即多種異常,多次捕獲

4.如果異常之間具有父子關系,一定是子類異常在前catch,父類異常在后catch,否則語法錯誤

5.由于 Exception 類是所有異常類的父類,因此可以用這個類型表示捕捉所有異常(可以放到最后用來兜底,但是極不推薦只使用Exception來捕獲異常 )

13.4.4 finally

不管有沒有拋出異常,是否被捕獲,finally中的代碼一定會執行的,一般在finally中進行一些資源清理的掃尾工作。

13.5 自定義異常

Java當中雖說有著豐富的異常類,但是我們在開發過程中難免會遇見一些不能表示的異常,這時,我們就可以自定義異常。

仿照源碼,創建自定義類,使之繼承于Exception 或者 RuntimeException類,給出無參和帶參的構造方法。

創建自定義異常類需要注意以下幾點:

1. 自定義異常通常會繼承自 Exception 或者 RuntimeException

2. 繼承自 Exception 的異常默認是受查異常(必須捕獲處理掉異常)

3. 繼承自 RuntimeException 的異常默認是非受查異常

END

JavaSE語法部分的學習結束了,希望你能一直堅持下去,越來越強!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/20051.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/20051.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/20051.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

在phpstorm2024版里如何使用Jetbrains ai assistant 插件 ?

ai assistant激活成功后&#xff0c;如圖 ai assistant渠道&#xff1a;https://web.52shizhan.cn/activity/ai-assistant 在去年五月份的 Google I/O 2023 上&#xff0c;Google 為 Android Studio 推出了 Studio Bot 功能&#xff0c;使用了谷歌編碼基礎模型 Codey,Codey 是…

SpringBoot HelloWorld 之 實現注冊功能

SpringBoot HelloWorld 之 實現注冊功能 一.配置 創建數據庫big_event CREATE TABLE user (id int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT ID,username varchar(20) COLLATE utf8_unicode_ci NOT NULL COMMENT 用戶名,password varchar(32) COLLATE utf8_unicode_ci …

Vue3項目練習詳細步驟(第五部分:用戶模塊的功能)

頂部導航欄個人信息顯示 接口文檔 接口請求與綁定 導航欄下拉菜單功能 路由實現 退出登錄和路由跳轉實現 基本資料修改 頁面結構 接口文檔 接口請求與綁定 修改頭像 頁面結構 頭像回顯 頭像上傳 接口文檔 重置密碼 頁面結構 接口文檔 接口請求與綁定 頂部導航…

自然語言處理學習路線

學習目標 NLP 系統知識&#xff08;從入門到入土&#xff09; 學習內容 NLP的基本流程&#xff1a;&#xff08;待更&#xff09;文本預處理&#xff08;標點符號處理、繁體轉簡體、分詞Tokenizer&#xff09;&#xff1a;&#xff08;待更&#xff09;詞袋模型&#xff08;TF…

【T+】暢捷通T+軟件固定資產模塊反啟用

【問題描述】 暢捷通T軟件&#xff0c;固定資產模塊反啟用。 【解決方法】 針對賬套庫執行如下腳本清除資產的所有數據&#xff0c; 執行前請與客戶確認資產的所有數據都不要了&#xff0c;確認后備份賬套再執行腳本&#xff0c;切記&#xff01;&#xff01;&#xff01; 然后…

Flutter 中的 ChipTheme 小部件:全面指南

Flutter 中的 ChipTheme 小部件&#xff1a;全面指南 Flutter 是一個由 Google 開發的跨平臺 UI 框架&#xff0c;它提供了一套豐富的組件集合&#xff0c;用于構建現代化的、響應式的移動和 Web 應用。ChipTheme 是 Flutter 中一個專門用于統一設置應用中所有 Chip 組件樣式的…

紅外熱成像觀驅一體儀,夜間驅鳥新利器

夜間驅鳥是機場鳥防工作的重點和難點&#xff0c;但紅外熱成像觀驅一體儀的出現解決了這個問題&#xff0c;它結合了紅外熱成像技術和激光驅鳥技術&#xff0c;極大地提升了夜間驅鳥工作的效率和安全性。 驅鳥技術詳解&#xff1a; 在夜晚低能見度的環境下&#xff0c;紅外熱成…

基于開源項目ESP32 SVPWM驅動無刷電機開環速度測試

基于開源項目ESP32 SVPWM驅動無刷電機開環速度測試 ?本篇硬件電路和代碼來源于此開源項目&#xff1a;https://github.com/MengYang-x/STM3F401-FOC/tree/main&#x1f4cd;硬件電路和項目介紹&#xff0c;立創開源廣場&#xff1a;https://oshwhub.com/shadow27/tai-yang-nen…

【bug】在 Windows 上安裝 SDKMAN! 的完整指南

在 Windows 系統上&#xff0c;安裝 SDKMAN! 可能會遇到一些小問題。本文將詳細介紹如何解決這些問題并成功安裝 SDKMAN!。 問題描述 當在 PowerShell 中運行以下命令以安裝 SDKMAN! 時&#xff1a; curl -s get.sdkman.io | bash你可能會遇到以下錯誤&#xff1a; bash : …

前端面試題日常練-day45 【面試題】

題目 希望這些選擇題能夠幫助您進行前端面試的準備&#xff0c;答案在文末 1. 在Bootstrap中&#xff0c;以下哪個類用于創建一個具有響應式的導航欄&#xff1f; a) .navbar-responsive b) .responsive-nav c) .navbar-collapse d) .collapse-navbar 2. 哪個Bootstrap類用…

2024 HN CTF WebMisc 部分 wp

Web ez_tp 判斷是thinkphp 3.2 參考官方手冊:https://www.kancloud.cn/manual/thinkphp/1697 判斷路由模式 URL_CASE_INSENSITIVE > true, // 默認false 表示URL區分大小寫 true則表示不區分大小寫URL_MODEL > 1, // URL訪問模式,可選參數0、1、…

Python使用動態代理的多元應用

Python作為一種功能強大且易于學習的編程語言&#xff0c;在網絡編程領域具有廣泛的應用。當Python與動態代理技術結合時&#xff0c;便開啟了一扇通往更多可能性的大門。以下將深入探討Python使用動態代理可以實現的多種應用。 首先&#xff0c;Python結合動態代理在網絡爬蟲…

中文多模態InternVL-Chat-V1-5,中文理解能力強勁,8 項指標超越商業模型,性能媲美 GPT-4V

前言 近年來&#xff0c;多模態大型語言模型&#xff08;MLLM&#xff09;的快速發展&#xff0c;為人工智能在圖像、文本等多模態信息理解和處理方面帶來了前所未有的突破。然而&#xff0c;現有的主流多模態模型多以英文為訓練語言&#xff0c;在中文理解和處理方面存在著明…

可用于嵌入式的解釋器調研對比,及lua解釋器介紹

嵌入式不一定只能用C! ---------------------------------------------------------------------------------------手動分割線-------------------------------------------------------------------------------- 本文章參考了以下文章&#xff1a; 這里是引用 ------------…

1113 錢串子的加法

idea 測試點3&#xff1a;輸入的兩個整數都是0測試點4.5&#xff1a;大數&#xff0c;需要用大數加法 solution1(測試點4&#xff0c;5不通過) 直接相加再轉30進制 #include<iostream> #include<string> using namespace std; typedef long long ll; string a,…

linux sed命令替換文件端口

1、需求描述&#xff1a;因sed -i ‘s/舊端口/新端口/g’ 文件&#xff0c;替換會直接增加端口導致端口直接追加后面&#xff0c;因此需要修改 要求&#xff1a;2300替換為23003&#xff0c;23001替換為23004 <value>192.168.1.133</value></constructor-arg>…

RGMII接口--->(001)FPGA實現RGMII接口(一)

&#xff08;001&#xff09;FPGA實現RGMII接口(一) 1 目錄 &#xff08;a&#xff09;FPGA簡介 &#xff08;b&#xff09;IC簡介 &#xff08;c&#xff09;Verilog簡介 &#xff08;d&#xff09;FPGA實現RGMII接口(一) &#xff08;e&#xff09;結束 1 FPGA簡介 &…

【科普向】【文末附gpt升級秘笈】《慶余年》鳳冠之工藝探究——Blender建模與3D打印之奧秘

《慶余年》鳳冠之工藝探究——Blender建模與3D打印之奧秘 一、引言 昔者&#xff0c;《慶余年》之熱播&#xff0c;引發天下觀眾之熱議。今者&#xff0c;其續作《慶余年2》之中&#xff0c;一場盛大的婚禮更是矚目。而此婚禮之上&#xff0c;唯一之鳳冠&#xff0c;竟出自一…

windows 10下conda環境目錄轉移

目錄 一&#xff1a;背景 二&#xff1a;轉移過程 三&#xff1a;環境驗證 一&#xff1a;背景 最近用conda安裝了幾個python環境&#xff0c;隨著安裝包和數據的不斷增大&#xff0c;發現C盤占用空間一直在增加&#xff0c;已經有十幾個G了&#xff0c;系統也變的越來越慢。…

Mac/Linux getline 無法讀取文件內容(讀取內容無法顯示)

如下面代碼 #include <iostream> #include <fstream>using namespace std;int main() {string file_name "1.txt";std::ifstream file(file_name);if (file.is_open()) {std::string line;while (std::getline(file, line)) {char c line.back();cout…