計算機復試面試

數據庫

1.設計過程/設計步驟

1.需求分析:明確客戶需求,確定系統邊界,生成數據字典

2.概念結構設計:將用戶需求抽象為概念模型,繪制e-r圖

3.邏輯結構設計:將e-r圖轉化為dbms相符合的邏輯結構,dbms就是數據庫管理系統

4.物理結構設計:他的內容包括關系模式選擇存取方法,設計關系,索引等數據庫文件的物理存儲結構

5.數據庫實施:建立實際數據庫結構,試運行,裝入數據

6.數據庫運行和維護:維護數據庫的安全性,完整性控制以及數據的轉存和恢復


需求-概念-邏輯-物理-實施-運行和維護

2.事務概念以及四個特征

事務是:

????????數據庫操作序列,要么全做要么全不做,是不可分割的工作單位,它可以是一句spl也可以是一組spl語句或者是整個程序

四個特性:

? ? ? ? 原子性:一個事務要么全做,要么全不做,

? ? ? ? 一致性:事務執行結果必須一致

? ? ? ? 隔離性:事務的執行不能被其他事物干擾

? ? ? ? 持久性:一個事務一旦提交,他對數據庫中數據的改變應該是永久的

3.完整性約束

是一組完整性規則的集合,是對數據模型及其聯系所具有的制約和依賴規則,用來保證數據的正確性,有效性和兼容性。


實體完整性? ? 是指一個關系中所有主屬性不能取空值

參照完整性? ? 要求關系中不允許引用不存在的shiti,也叫引用完整性

用戶定義完整性? ? 用戶定義某個具體數據庫所涉及的數據必須滿足的約束條件,是由具體應用環境來決定的

4.數據庫比文件系統的優點

1.提高了數據的共享性

2.減少了數據的冗余度

3.數據獨立性更高

5.關系代數

是一種抽象的查詢語言,用對關系的運算來表達查詢,作為研究關系數據語言的數學工具。
關系代數的運算對象時關系,運算結果也是關系。
專門的關系運算包括選擇,投影,連接,除等。

6.范式

第一范式:保證了列的原子性

第二范式:屬性完全依賴于主鍵

第三范式:屬性不能傳遞依賴于主屬性

7.數據庫的數據模型

層次模型

網絡模型

關系模型

對象關系模型

對象模型

8.關系形數據庫有哪些操作

選擇,投影,連接,除法

9.數據庫的數據保護

四個方面:

安全性控制,完整性控制,并發性控制和數據恢復

10.視圖

作用:
簡化查詢語句

使用戶能從多個角度看到同一數據

提高了數據的安全性

提供了一定程度的邏輯獨立性

是:
一種虛擬代表,允許用戶看到或者更新特定部分的數據

11.存儲過程

是在大型數據庫系統中,一組為了完成特定功能的sql語句集。
存儲在數據庫中,經歷了第一次遍歷后,再次調用不需要再次編譯。
類似與c語言的函數

事務是保存在項目里的,存儲過程是保存在數據庫里的
事務是高級數據庫編程語言是一件事序列化

存儲過程是sql語句

12.自主存儲控制和強制存儲控制的區別

自主存儲控制允許用戶自主決定數據的訪問權限,靈活共享資源,但存在安全風險;而強制存儲控制則由系統決定用戶的訪問權限,確保數據的安全性和完整性,相對更為嚴格。

13.公共密鑰和傳統密鑰的區別和優勢

公共密鑰技術:(非對稱加密)

? ? ? ? 利用兩個密鑰取代常規的一個密鑰:一個公共密鑰用來加密數據,另一個私人密鑰用來解密數據。數字上他倆相關,但幾乎很難破譯

傳統密碼的缺點:(對稱加密)

? ? ? ? 1.收發雙方密鑰相同,密鑰分配困難

? ? ? ? 2.不能方便實現數字簽名,應用不方便

傳統加密相比,公共有三個優點:
? ? ? ? 1.用戶可以用于加密的密鑰公開的分發給任何用戶

? ? ? ? 2.允許公共密鑰的公開

? ? ? ? 3.有數字簽名的公開鑒定系統

14.orm是啥

對象關系映射
object relational mapping

是一種程序技術,用于實現面向對象編程語言理不同類型系統的數據之間的轉換

15.碼

軟件工程

1.黑盒白盒

黑盒測試:

? ? ? ? 也叫功能測試,用來測試每個功能是否能正常使用。在測試時,是完全不考慮程序內部結構和內部特性的情況下進行測試


白盒測試:

? ? ? ? 結構測試,他知道產品內部工作過程,可通過測試來檢測產品內部動作是否按照規格說明書的規定正確運行? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

2.α和β測試

α測試:

? ? ? ? 是由一個用戶在開發環境下進行測試,不能有程序員或者測試員進行(內測)

β測試:

? ? ? ? 是軟件的多個用戶在一個或多個用戶環境下進行的測試,開發者一般不參與(公測)

區別:

? ? ? ? α測試有開發或者測試人員在場,可以隨時記錄錯誤,β測試一般不在場

3.介紹模塊化軟件開發

模塊化軟件開發是一種將軟件系統劃分為獨立模塊的方法,每個模塊負責特定功能,可獨立開發、測試并組合成完整軟件。這種開發方式提高了軟件的可維護性、可擴展性和可重用性,降低了耦合度,提高了開發效率。模塊化軟件開發通過靈活架構、焦點分離和并行開發,實現了高效、高質量的軟件開發過程。

4.軟件形似化

是指嚴格數據基礎上的軟件開發方法。

形式化方法的本質是基于數學的方法來描述目標軟件系統屬性的一種技術。

5.軟件工程的重構和設計模式

重構是指在不改變軟件功能和外部可見性的情況下,對軟件內部結構進行調整,旨在改善軟件的結構,提高清晰性、可擴展性和可重用性。重構是軟件開發循環的一部分,通過對代碼進行有序的整理,減少出錯,使代碼更易于理解和維護

而設計模式則是一種解決在軟件設計中經常出現的問題的最佳實踐。設計模式提供了一種在特定上下文中解決一般設計問題的方案,有助于開發者快速解決常見的設計問題,提高代碼的重用性、可讀性和可靠性。常見的設計模式包括模塊化設計、封裝、抽象等,它們都是為了提高軟件的可維護性和可擴展性。

在軟件工程實踐中,重構和設計模式常常相互結合使用。重構為設計模式的應用提供了基礎,使得設計模式能夠更好地融入現有代碼中。而設計模式則為重構提供了指導和支持,使得重構過程更加有序和高效。通過結合使用重構和設計模式,軟件工程師能夠創建出更加健壯、靈活和易于維護的軟件系統。

6.UML

統一建模語言是面向對象軟件的標準化建模語言。
五種類圖定義:

1.用例圖:從用戶角度描述系統功能,并指各功能的操作者

2.靜態圖:

? ? ? ? 類圖:描述系統中類的靜態結構

? ? ? ? 包圖:包和類組成的,表式包與包之間的關系,暴徒描述系統的分層結構

? ? ? ? 對象圖:類圖的實例

3.行為圖:描述系統動態模型和對象組成的交換關系,有狀態圖和活動圖

? ? ? ? 活動圖:業務實現用例的工作流程

? ? ? ? 狀態圖:描述狀態到狀態控制流,常用于動態建模

4.交互圖:描述對象之間的交互關系
? ? ? ? 順序圖:對象之間的動態合作關系

? ? ? ? 合作圖:描述對象之間的協作關系

5.實現圖

? ? ? ? 配置圖:定義系統中軟硬件的物理體系結構

7.er模型/實體關系圖

e-r模型由實體,屬性,聯系,三部分組成

實體:考慮問題的對象

屬性:實體或聯系的某一特性

聯系:實體之間的聯系

e-r用來干嘛:
表示實體類型、屬性和聯系的方法,用來描述現實世界的概念模型。

聯系是三種:
1對多

1對一

n對m

8.軟件危機

是指落后的軟件生產方式無法滿足迅速增長的計算機需求,導致軟件開發和維護過程中出現一系列嚴重問題的現象


形成:
? ? ? ? 1.硬件生產率大幅度提升,生產能力過剩

? ? ? ? 2.軟件生產隨著規模增大復雜度增大
? ? ? ? 3.軟件生產率很低

? ? ? ? 4.軟硬件供需失衡

? ? ? ? 5.矛盾引發軟件危機

具體表現
? ? ? ? 1.軟件開發進度難以預測

? ? ? ? 2.軟件開發成本難以控制
? ? ? ? 3.用戶對產品功能難以滿足

? ? ? ? 4.軟件產品質量無法保證

? ? ? ? 5.軟件產品難以維護

? ? ? ? 6.軟件缺少適當的文獻資料


軟件工程是

? ? ? ? 研究如何以系統性的,規范化的,可定量的過程化方法去開發和維護軟件,以及如何把經過時間考研而證明正確的管理技術和當代能夠得到最好的技術方法結合起來的學科

9.軟件模型的定義

指軟件開發全部過程,活動和任務的結構框架

包括需求,設計,編碼和測試等階段

典型的模型有:
1.邊做邊改模型

2.瀑布

3.快速原型

4.增量模型

5.螺旋模型

6演化模型

7.噴泉模型

8.智能模型

9.混合模型

19.rad模型

10.設計模式

設計模式是一套被反復使用,多數人知曉的,經過分類編目的,代碼設計經驗的總結


比如單例模式,保證一個類僅有一個實例,并提供一個訪問它的全局訪問點
工廠模式,定義一個用于創建對象的借口,讓子類決定實例化哪一類

目的,為了代碼可重用性,讓代碼更容易讓人理解,保證代碼可靠性

設計模式分三類
創建型模式

結構模式

行為型模式

11.介紹結構優化設計

結構化設計是軟件開發中一種重要的方法,通過自頂向下、逐步求精的方式,將軟件劃分為多個獨立的功能模塊,并確定模塊間的接口和交互方式,從而提高軟件的可讀性、可維護性和可重用性。

12.完全測試有可能嗎?

完全測試是不可能的。由于軟件系統的復雜性、輸入量的巨大以及時間和資源的限制,無法對所有可能的輸入和情況進行測試。因此,測試只能盡可能覆蓋關鍵功能和場景,以確保軟件的質量和穩定性。

13.介紹瀑布模型

瀑布模型是一種線性軟件開發過程模型,按階段順序執行需求分析、設計、編碼、測試和維護,各階段成果經嚴格驗證后傳遞給下一階段,確保軟件質量,但缺乏靈活性,難以應對需求變更。

14.介紹結構優化設計

結構優化設計是通過對產品結構的形狀、尺寸、材料等進行綜合分析和改進,以達到提高產品性能、降低成本、增強可靠性等目標的設計方法。它利用數學優化算法和工程分析技術,尋找最優的設計方案,使產品更加高效、可靠和經濟。

15.軟件生命周期

簡而言之,就是軟件從構思到廢棄的完整過程。它涵蓋了問題定義、需求分析、設計、編碼、測試、部署及后期維護等多個階段。每個階段都有其特定目標和任務,確保軟件有序、高效開發,提高軟件質量和用戶體驗

16.可行性研究

用最小的代價在最短的時間內確定問題是否能解決

17.數據流圖

描繪系統的邏輯模型,圖中沒有具體的物理元素,只是描繪信息在系統中流動和處理的情況

18.數據字典

DD是關于數據的信息的集合,也就是對數據流圖中包含的所有元素的定義的集合是“關于系統數據的數據庫

19.軟件維護

軟件維護旨在確保軟件穩定運行、適應變化需求、修復潛在缺陷、優化性能,從而延長軟件生命周期,提升用戶體驗,保障系統安全。

20.關鍵字

結構清晰,可重用性高,可維護性強,適應性強

操作系統

1.進程和線程區別,線程是什么,什么時候用

區別:

? ? ? ? 進程是擁有資源的基本單位,線程是調度和分派的基本單位

? ? ? ? 進程有資源,而線程沒有資源

? ? ? ? 創建或者撤銷進程時os所付出的開銷明顯大于線程創建或者撤銷時的開銷

線程:

????????線程(英語:thread)是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以并發多個線程,每條線程并行執行不同的任務。
?

進程:

????????進程(Process)是計算機中的程序關于某數據集合上的一次運行活動,是系統進行資源分配的基本單位,是操作系統結構的基礎

2.作業調度和進程調度區別:

作業調度:

????????又稱為高級調度,頻度較低。其主要工作是將位于外存后備隊列中的某個(或某幾個)作業調入內存,排在就緒隊列上。注意了,這個時候僅僅是將作業調入內存,并為作業創建進程、分配資源,此時進程處于就緒態,并沒有執行

進程調度:

????????又稱為低級調度,是最基本的、頻度最高的調度方式。其主要任務是從就緒隊列中選取一個(或幾個)進程,并分配處理機的過程,這時候才可以理解為“執行

區別:

????????作業調度和進程調度最主要的區別在于,前者是為作業建立進程的過程,是將作業由外存調入內存的過程;而后者整個過程并沒有跑出內存的范圍,是將就緒態的進程變為運行態的過程

3.操作系統的功能,基本特征,常見操作系統

1.存儲器管理功能

2.處理機管理功能

3.設備管理功能

4.文件管理功能

5.用戶接口管理

基本特征:

并發性,共享性,虛擬性,異步性

常見操作系統:

單道批處理系統

多道批處理系統

分時系統(交互性強)

實時系統(可靠)

4.邏輯地址和相對地址

邏輯地址:

再有地址變化功能的計算機中,訪問指令給出的地址

每個用戶進程所看到的獨立的地址空間

物理地址:

實際的存儲器對應的地址空間
相對地址:
相對于某個基準量編址時所使用的地址
?

5.系統調用

系統調度本質上是一種特殊的過程調度,提供了用戶程序與操作系統內核之間的接口,系統調度不僅可以供所有應用程序使用,也可以供操作系統使用


與一般調度的區別:

運行態不同:系統的在不同的狀態

調用方法不同:系統調用必須通過軟中斷機制首先進入系統核心,才能轉向相應的命令處理程序

返回問題:在搶占式調用的系統中,當系統調用返回時,要重新進行調度分析

6.二進制文本和文本文件存儲區別

二進制是將內存里的數據讀寫入文本,文本則是將數據轉化為字符,再寫入文本

7.死鎖條件環路等待是怎么打破

1.撤銷陷入死鎖的全部進程

2.逐個撤銷陷入死鎖的進程直到死鎖不存在

3.從陷入死鎖的進程中逐個強迫放棄所占用資源,直到死鎖消失

4.從另一些進程中強行剝奪足夠數量的資源分配給四鎖進程


如何產生:
1.互斥

2.請求和保持條件(進程已經至少保存了一個資源,又提出了新的資源,該資源又被其他程序占有)

3.不剝奪條件(以獲取的資源在未使用完之前不能被剝奪)

4.環路等待(必然存在一個進程---資源等待的環形鏈)

8.指令和數據一起存儲,計算機是怎么區別指令和算法的?

1.通過不同的時間段來區分指令和數據,即在取指令階段取出的為指令

2.通過地址來源區分,由pc提供存儲單元地址的取出的是指令,由指令地址碼部分提供存儲單元地址的是操作數

編碼

1.面向對象和面向過程

面向過程:

分析出解決問題所需要的步驟,然后用函數把步驟一步一步實現,使用的時候一個一個調用

面向對象:

將功能封裝進對象,強調具備了功能的對象,以類/對象為最小單位,考慮誰來做

2.鏈表和數組的優缺點

鏈表:便于插入和刪除,擴展性高,內存利用率高

數組:占用空間少,可以隨機訪問

3.算法的基本特征和概念

算法是對特定問題求解步驟的一種描述,是指令的有限序列,其中每一條指令表示一個或多個操作

五個特征:

有窮,確定,可行,輸入和輸出

有窮:在有窮步后結束
確定:每一個指令都要有明確的含義,不能有二義性
可行:可以運行
輸入:有0個or多個輸入
輸出:有0個or多個輸出

4.時間復雜度和空間復雜度

時間復雜度:

定量描述了算法的運行時間

空間復雜度:
在運行中臨時占用存儲空間大小的量度

5.排序算法

直接插入,冒泡,堆,歸并,快速,希爾,基數,選擇排序

6.動態規劃和貪心算法的分治法的相同和區別

7.動態規劃,貪心算法

8.詞法分析器

也叫掃描器,是指將我們編寫的文本代碼流解析為一個一個的極好,分析得到的記號以供后續語法分析使用

9.java和c的區別

c語言是底層語言,java可以看作c上再封裝起來的一種語言。
就像一座高塔一樣,c語言更像磚塊沙子等基礎的東西,java可以看作磚塊和砂石這些組合起來的一面可以搬來搬去的墻

10.四色定理

每個平面地圖都可以只用四種顏色來染色,而且沒有兩個臨界的區域顏色相同。

其本質是在平面或者球面無法構造五個或者五個以上兩兩連接的區域。

11.指針變量占幾個字節

占四個,32位編譯器下4個,64位編譯器8個

12.純函數和虛函數,抽象函數

純函數,不依賴于且不改變它作用域之外的變量狀態的函數

虛函數,沒有實現的,可以由子類繼承并且重寫的函數

抽象函數,規定其非虛子類必須實現的函數必須被重寫

13.局部變量和全局變量可以同名嘛?

可以,當局部變量和全局變量同名,在函數內引用這個變量,是局部變量,除非特別指明

14.面向對象程序設計的三個基本特征

封裝,繼承,多態

封裝:把客觀事物封裝成抽象類

繼承:可以使用現有類的所有功能,并在無需重新編寫原來的類的情況下對功能進行擴展

多態:向不同對象發送同一個消息,不同對象在接收時產生不同行為

15.迷宮生成算法

遞歸回溯即深度優先算法

16.平衡二叉樹高度差

空樹或者,左右兩個字數的高度差的絕對值不超過1,左右子樹也是平衡二叉樹

17.指針和引用

指針:是一個變量,存儲的是一個地址

引用:和原來的變量是一個東西,只不過時原變量的另一個別名

引用不可以為空,當被創建,必須初始化,而指針可以是控制,任何時候可以初始化

引用只能一級,指著可以多級

18.棧的原理

先入后出

19.弗洛伊德算法

求最短路徑

20.heap和stack的概念和區別

heap是堆,stack是棧

stack的空間由操作系統自動分配和釋放,heap需要手動申請和釋放,heap常用new關鍵字來分配

stack空間有限,heap空間有很大的自由區間

21.類

:類定義了事物的屬性和它可以做到的(它的行為)。一個類的方法和屬性被稱為“成員”。一個類所包含的方法和數據描述一組對象的共同屬性和行為。類是在對象之上的抽象,對象則是類的具體化,是類的實例

22.宏定義與操作符的區別?

宏定義是C++的預處理命令之一,它是一個替換操作,不做計算和表達式求解,不占內存和編譯時間

計算機網絡

1.ip-mac/ip到物理地址的轉變/arp協議

使用arp協議,中文名是地址解析協議,在TCP/IP網絡環境下,ARP協議負責將32位的IP地址轉換為對應的48位物理地址(MAC地址),實現IP地址到MAC地址的解析。

2.ipv6-ipv4的區別

ipv4的地址位是32,ipv6的地址位是128

ipv6有更小的路由表,地址分配一開始就遵循聚類原則,使得路由器能在路由表中使用一條記錄表示一片子網,大大減少了路由器中路由表的長度,提高了路由器的轉發數據包速度,增強了組播支持以及對流的支持。

ipv6比ipv4更安全,在使用ipv6的網絡中的用戶可以對網絡層的數據進行加密并且對ip報文進行校驗

3.短信和微信的區別

? ? ? ? 短信--通訊--指電話,電報--通過通訊網絡從a-b,主要由電子設備系統和無線電組成,傳輸和處理的信號是模擬的

? ? ? ? 微信--通信--僅指數據通信,即通過計算機網絡系統和數據通信系統實現數據的端到端傳輸

4.b/s結構基本原理

客戶端的瀏覽器通過url訪問web服務器,web服務器請求數據庫服務器,并將得到的結果用html形式返回客戶端。

5.物聯網和云計算的關系

物聯網是向物理世界的延申,云計算是基于物聯網it資源的使用和交互模式。兩者是一個優勢互補的關系。

6.報文握手--三次握手

報文握手是網絡通信中雙方建立連接的關鍵步驟,其中包括三次握手過程。首先,發起方發送請求報文,其次接收方收到后回復確認報文;最后,發起方再發送一個確認報文,確保雙方連接建立成功。這一過程確保了通信的可靠性和安全性。

7.tcp/udp,傳輸層協議

TCP/UDP是傳輸層的兩種主要協議。TCP提供可靠的、面向連接的通信,確保數據完整無誤;

而UDP則是無連接的、不可靠的通信,速度快但可能丟失數據。兩者各有優缺點,適用于不同場景。

8.藍軍和白軍解釋沒有可靠通信

不停的在發送,收到,請確認

9.帶寬

在計算機系統中,用帶寬作為標識總線和內存性能的指標之一

總線帶寬:指的是總線在單位時間內可以傳輸的數據總量

內存帶寬:指的是內存總線所能提供的數據傳輸能力

10.云計算

云計算是基于互聯網的計算方式,用戶可按需獲取共享的計算資源,如網絡、服務器、存儲等,無需管理底層設施,實現便捷高效的計算服務

11.信號量克服忙等問題

進程如果不能進入互斥區,則會一直原地等待。這個時候通過信號量將處理及釋放給其他進程

12.以太網,無線局域網的發送數據是否確認

以太網不需要,無線局域網要
因為無線局域網的mac協議不進行碰撞檢測,以太網有線網絡中很容易實現碰撞檢測

13.香農定理和奈奎斯特定律(奈氏準則)

香農定理:

? ? ? ? 給出了信道信息傳遞速率的上限和信道信噪比以及帶寬的關系

奈奎斯特定律:(香農采樣定理)

? ? ? ??提供了一種計算信道極限速率的方法,也揭示了信息傳輸速率與信道帶寬之間的基本關系

14.tcp/ip協議可以說成3層,4層,5層,怎么理解

TCP/IP協議可理解為不同層次的通信模型。三層指網絡層、傳輸層和應用層,關注核心通信機制;四層則加入數據鏈路層,關注數據在鏈路中的傳輸;五層再細分網絡層為網絡接口層和網絡層,更細致地描述數據如何接入網絡。這些層次共同協作,確保數據的準確傳輸。

15.廣域網和局域網的主流技術

?廣域網,通常跨很大的物理范圍,能連接多個城市或者國家

通信子網主要使用分組交換技術


局域網,是指在某一區域內由多臺計算機互聯成的計算機機組,可以實現文件管理,打印機共享等功能

16.交換機,路由器,網關的概念

交換機負責數據包在局域網內的轉發,確保數據準確送達指定設備;路由器連接不同網絡,選擇最佳路徑轉發數據包,實現跨網絡通信;網關是不同網絡間通信的門戶,可以轉換協議,促進數據交流。三者共同協作,保障網絡暢通無阻。

17.網卡的功能

網卡是計算機與局域網之間的橋梁,負責數據的封裝與解封、鏈路管理以及編碼與譯碼,確保數據在局域網中的準確傳輸,并實現與計算機之間的串行/并行轉換,是網絡連接的關鍵組件。

雜項

1.普適計算

通過在日常環境中廣泛部署微笑的計算設備,人們能夠在任何時間和任何地點獲取并且處理信息,計算最終將和環境融為一體。

面向對象

1.重載

同名函數,參數不同,調用的結果不同

2.類

public class student

對象: student? ? ?aa

3.構造函數

可以用來進行類的初值快速賦予

4.const/常函數成員

只讀不寫,可以不加,加了更安全,防止亂改數據

加上之后他就不能修改數據

5.靜態成員

static?
加上綁定類,一般不綁定對象

它們屬于類而不是實例,所有該類的實例共享同一個類變量的值

6.派生

把studem類,細分成本科生和研究生本科生和研究生也是學生,是學生的子類,學生是父類,也叫基類或者超類

所謂派生,是相對于父類而言的。

所謂繼承,是相對子類而言的

子類除了父類的特點,也可以自己添加新的

7.protect與繼承

保護
用來繼承的
private的屬性不會繼承,protect可以,且不能公開訪問

子類不能繼承構造函數,只能調用

繼承的子類的構造函數
如果沒有參數,則會先調用父類再調用子類
有參數,則需要再后面多加一些東西
視頻

8.多態

c++有三種方法
重載,隱藏,覆蓋,也就是c++的多態

重載就是同名函數不同參數
隱藏就是子類和父類有同名函數,參數不重要,父類的會被隱藏

c++的多態大部分都依賴于指針
1.父類的指針可以指向子類,子類的指針不能指向父類

但父類指向子類后,也只能調用父類中的方法
不過用virtual關鍵字可以進行多態的表現,即,一個父類指針指向不同的子類,產生的函數也不同

9.抽象類

10.總結

11. 什么是封裝

信息隱蔽

四種級別

  • public:對外公開,訪問級別最高
  • protected:只對同一個包中的類或者子類公開
  • 默認:只有當父類和子類在同一個包內時,子類才能繼承父類中默認訪問修飾符(也就是沒有修飾符)的方法和變量。如果子類和父類不在同一個包內,這些成員對子類不可見。
  • private:不對外公開,只能在對象內部訪問,訪問級別最低

12.數據庫判斷好不好

1.冗余

2.增刪改查有沒有異常

為啥有問題

可能是數據依賴關系的問題

java處理

1.math類

math類有很多參數可以調用,都是和數學有關的,比如你可以math.cos

math.sin
math.atan(反正切)
math.PI


還有個強制轉化的方法:xxxvalue(數據類型)? ? ? ? xxx是前綴,intvalue就是轉化成int類型的

比較函數? ? ? ? comparedto? ? ? ? 返回bool int? ? ? ?3小于a,返回1? ?等于0 大于-1
? ? ? ? ? ? ? ? ? ? ? ? 調用的話,int a=5? ? ? ? a.comparedto(3);??????

tostring()強制轉化成字符串類型

隨機數,math.random()

random隨機返回0-1的值,可以用*+-/等手段放大倍數??

2.創建對象三步

對象是根據類創建的。在Java中,使用關鍵字 new 來創建一個新的對象。創建對象需要以下三步:

  • 聲明:聲明一個對象,包括對象名稱和對象類型。
  • 實例化:使用關鍵字 new 來創建一個對象。
  • 初始化:使用 new 創建對象時,會調用構造方法初始化對象。

3.構造器

賦初值?

4.抽象類

可以包括抽象方法和非抽象方法
任何繼承抽象類的子類必須實現父類的所有抽象方法,除非該子類也是抽象類。
抽象類可以不包含抽象方法
是用來繼承的

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

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

相關文章

模型 拆屋效應

系列文章分享模型,了解更多👉 模型_思維模型目錄。先過分后合理,易被接受。 1 拆屋效應的應用 1.1 高端手表銷售案例 一、案例背景 在高端手表銷售領域,銷售人員面臨顧客對價格敏感且購買決策謹慎的挑戰。如何引導顧客接受較高…

Windows系統下Pycharm+Minianaconda3連接教程【成功】

0.引言 PycharmMinianaconda3開發組合的好處 優點類別具體優點描述環境管理便捷獨立環境創建 環境復制與共享Miniconda3可創建多獨立Python環境,支持不同版本與依賴,避免沖突。 能復制、分享環境配置,方便團隊搭建相同開發環境。依賴管理高…

4、pytest常用插件

pytest 是一個功能非常強大的測試框架,支持豐富的插件系統。插件可以擴展 pytest 的功能,從而使測試過程更加高效和便捷。以下是一些常用的 pytest 插件及其作用: pytest-cov: 作用: 提供測試覆蓋率報告,幫助你了解代碼的表現情況…

python每日十題(10)

在Python語言中,源文件的擴展名(后綴名)一般使用.py。 保留字,也稱關鍵字,是指被編程語言內部定義并保留使用的標識符。Python 3.x有35個關鍵字,分別為:and,as,assert&am…

Clio:具備鎖定、用戶認證和審計追蹤功能的實時日志記錄工具

在網絡安全工具不斷發展的背景下,Clio 作為一款革命性的實時日志記錄解決方案,由 CyberLock Technologies 的網絡安全工程師開發,于 2025 年 1 月正式發布。這款先進的工具通過提供對系統事件的全面可見性,同時保持強大的安全協議…

內核編程十三:進程狀態詳解

進程如同數字世界中的生命體,誕生時被系統母體賦予初始資源,在CPU的脈搏中呼吸,于內存的疆域里生長。它睜開線程之眼觀察世界,伸出系統調用之手與環境互動,時而如幼童般單純執行指令,時而如哲人般陷入阻塞沉…

GitLab 中文版17.10正式發布,27項重點功能解讀【一】

GitLab 是一個全球知名的一體化 DevOps 平臺,很多人都通過私有化部署 GitLab 來進行源代碼托管。極狐GitLab 是 GitLab 在中國的發行版,專門為中國程序員服務。可以一鍵式部署極狐GitLab。 學習極狐GitLab 的相關資料: 極狐GitLab 官網極狐…

哈爾濱工業大學DeepSeek公開課人工智能:大模型原理 技術與應用-從GPT到DeepSeek|附視頻下載方法

導 讀INTRODUCTION 今天繼續哈爾濱工業大學車萬翔教授帶來了一場主題為“DeepSeek 技術前沿與應用”的報告。 本報告深入探討了大語言模型在自然語言處理(NLP)領域的核心地位及其發展歷程,從基礎概念出發,延伸至語言模型在機器翻…

web爬蟲筆記:js逆向案例十一 某數cookie(補環境流程)

web爬蟲筆記:js逆向案例十一 某數cookie(補環境流程) 一、獲取網頁數據請求流程 二、目標網址、cookie生成(逐步分析) 1、目標網址:aHR0cHM6Ly9zdWdoLnN6dS5lZHUuY24vSHRtbC9OZXdzL0NvbHVtbnMvNy9JbmRleC5odG1s 2、快速定位入口方法 1、通過腳本監聽、hook_cookie等操作可…

WPF ControlTemplate和DataTemplate

在 WPF 中,ControlTemplate 和 DataTemplate 是兩個非常重要的概念,它們分別用于定義控件的外觀和數據對象的顯示方式。以下是關于它們的詳細講解,包括定義、作用、使用場景以及實現示例。 1. ControlTemplate 1.1 定義 ControlTemplate 定…

Qt窗口控件之浮動窗口QDockWidget

浮動窗口QDockWidget QDockWidget 用于表示 Qt 中的浮動窗口,浮動窗口與工具欄類似,可以停靠在主窗口的上下左右位置,也可以單獨拖出來作浮動窗口。 1. QDockWidget方法 方法說明setWidget(QWiget*)用于使浮動窗口能夠被添加控件。setAllo…

游戲引擎學習第180天

我們將在某個時候替換C標準庫函數 今天我們要進行的工作是替換C標準庫函數,這是因為目前我們仍然在使用C語言開發,并且在某些情況下會調用C標準庫函數,例如一些數學函數和字符串格式化函數,尤其是在調試系統中,我們使…

深度學習PyTorch之動態計算圖可視化 - 使用 torchviz 生成計算圖

序號系列文章1深度學習訓練中GPU內存管理2深度學習PyTorch之數據加載DataLoader3深度學習 PyTorch 中 18 種數據增強策略與實現4深度學習pytorch之簡單方法自定義9類卷積即插即用5深度學習PyTorch之13種模型精度評估公式及調用方法6深度學習pytorch之4種歸一化方法(…

K8S學習之基礎四十五:k8s中部署elasticsearch

k8s中部署elasticsearch 安裝并啟動nfs服務yum install nfs-utils -y systemctl start nfs systemctl enable nfs.service mkdir /data/v1 -p echo /data/v1 *(rw,no_root_squash) >> /etc/exports exports -arv systemctl restart nfs創建運行nfs-provisioner需要的sa賬…

Go紅隊開發—CLI框架(一)

CLI開發框架 命令行工具開發,主要是介紹開發用到的包,集成了一個框架,只要學會了基本每個人都能開發安全工具了。 該文章先學flags包,是比較經典的一個包,相比后面要學習的集成框架這個比較自由比較細化點&#xff0…

eclipse [jvm memory monitor] SHOW_MEMORY_MONITOR=true

eclipse虛擬機內存監控設置SHOW_MEMORY_MONITORtrue D:\eclipse-jee-oxygen-2-win32-x86_64\workspace\.metadata\.plugins\org.eclipse.core.runtime\.settings org.eclipse.ui.prefs (文件比較多,別找錯了) SHOW_MEMORY_MONITORtrue 重啟 -xms 1024…

量子計算與人工智能的融合:下一代算力革命

1. 引言:算力需求的飛速增長與量子計算的潛力 在信息技術飛速發展的今天,人工智能(AI)已經滲透到我們生活的方方面面,從智能助手到自動駕駛,再到醫療診斷,AI 的應用場景日益廣泛。然而&#xf…

Linux paste命令

目錄 一. 簡介二. 基本語法三. 小案例 一. 簡介 paste 命令用于合并多個文件的行&#xff0c;按列方式輸出&#xff0c;默認以制表符&#xff08;Tab&#xff09;分隔。 ?基本語法 paste [選項] 文件1 文件2 ...二. 基本語法 <()的方式模擬文件流paste命令將2個文件流粘…

uniapp處理流式請求

在uniapp里面處理流式請求相對于web端來說有點麻煩&#xff0c;下面我將講述幾種處理流式請求的方式。 1.websocket WebSocket 是處理實時數據流的最佳選擇之一&#xff0c;UniApp 提供了原生的 WebSocket 支持&#xff1a; <template><view class"container&…

低代碼理解

一、低代碼開發的核心定義 低代碼開發是通過可視化界面和聲明式編程替代傳統手工編碼的軟件開發范式&#xff0c;其核心目標是&#xff1a; 降低技術門檻&#xff1a;允許非專業開發者&#xff08;公民開發者&#xff09;參與應用構建提升開發效率&#xff1a;通過復用預制組…