Java進階學習之路

Java進階之路

提示:這里可以添加系列文章的所有文章的目錄,目錄需要自己手動添加


提示:寫完文章后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

目錄
  • Java進階之路
  • 前言
  • 一、Java入門
    • Java基礎
      • 1、Java概述
        • 1.1 什么是Java
        • 1.2 java的發展史
        • 1.3 java的特性和優勢
        • 1.4 Java的跨平臺性
        • 1.5 字節碼
        • 1.6 JDK和JRE
          • 1.6.1 JDK和JRE的區別
          • 1.6.2 JDK安裝
      • 2、Java基礎語法
        • 2.1 基礎數據類型
          • 2.1.1 計算機存儲單元
          • 2.1.2 Java基本數據類型
      • 3、面向對象
        • 3.1 面向對象和面向過程
        • 3.2 對象和類
          • 3.2.1 對象內存圖
        • 3.3 變量
          • 3.3.1 成員變量
        • 3.4 構造方法
          • 3.4.1 構造方法概述
          • 3.4.2 構造方法特點
      • 4、字符串
        • 4.1 String為什么是不可變的
        • 4.2 字符串常量池
        • 4.2 String.intern()
      • 5、數組
    • Java集合框架
  • 二、Java進階
    • java高級特性
    • 多線程
      • 1、初識多線程
      • 2、進程和線程
  • 二、使用步驟
    • 1.引入庫
    • 2.讀入數據
  • 總結

前言

提示:這里可以添加本文要記錄的大概內容:

例如:隨著人工智能的不斷發展,機器學習這門技術也越來越重要,很多人都開啟了學習機器學習,本文就介紹了機器學習的基礎內容。


提示:以下是本篇文章正文內容,下面案例可供參考

一、Java入門

Java基礎

1、Java概述
1.1 什么是Java

java語言是SUN(Stanford University Network,斯坦福大學網絡公司 ) 1995年推出的一門高級編程語言,是一種面向Internet的編程語言。
Java一開始富有吸引力是因為Java程序可以在Web瀏覽器中運行。這些Java程序被稱為Java小程序(applet)。applet使用現代的圖形用戶界面與Web用戶進行交互。 applet內嵌在HTML代碼中。
隨著Java技術在Web層面的不斷成熟,已經稱為Web應用程序的首選開發語言。
java語言的三個平臺版本:
JavaSE: Java 語言的(標準版),用于桌面應用的開發,是其他兩個版本的基礎
JavaME: Java 語言的(小型版),用于嵌入式消費類電子設備
JavaEE: Java 語言的(企業版),用于 Web 方向的網站開發

1.2 java的發展史
  • 1995年5月23日,Oak語言改名為Java,并且在SunWorld大會上正式發布Java 1.0版本。Java語言第一次提出了“Write Once,Run Anywhere”的口號。
  • 1999年4月27日,HotSpot虛擬機誕生。HotSpot虛擬機剛發布時是作為JDK 1.2的附加程序提供的,后來它成為JDK 1.3及之后所有JDK版本的默認Java虛擬機。
  • 2004年9月30日,JDK 5發布,工程代號為Tiger(老虎),是Java語言的發展史上的又一里程碑事件。JDK的版本不再是“1.x”的命名方式,而采用“JDK x”方式進行命名。
  • JDK 8的第一個正式版本于2014年3月18日發布,從JDK 8開始,Oracle啟用JEP(JDK Enhancement Proposals)來定義和管理納入新版JDK發布范圍的功能特性。
  • JEP 126:對Lambda表達式的支持,這讓Java語言擁有了流暢的函數式表達能力。
  • JEP 104:內置Nashorn JavaScript引擎的支持,成為Java的嵌入式JavaScript引擎。
  • JEP 150:新的時間、日期API。
  • JEP 122:徹底移除HotSpot的永久代。
  • ……
  • JDK9于2017年9月21日發布。JDK 9發布后,Oracle隨即宣布Java將會以持續交付的形式和更加敏捷的研發節奏向前推進,以后JDK將會在每年的3月和9月各發布一個大版本。每六個JDK大版本中才會被劃出一個長期支持(Long Term Support,LTS)版,只有LTS版的JDK能夠獲得為期三年的支持和更新,普通版的JDK就只有短短六個月的生命周期。JDK 8和JDK 11是LTS版,再下一個就到2021年發布的JDK 17了。
  • 2018年3月20日,JDK 10如期發布,這版本的主要研發目標是內部重構,諸如統一源倉庫、統一垃圾收集器接口、統一即時編譯器接口等,這些都將會是對未來Java發展大有裨益的改進。
  • 2018年9月25日,JDK 11發布,這是一個LTS版本的JDK,包含17個JEP,其中有ZGC這樣的革命性的垃圾收集器出現,也有把JDK 10中的類型推斷加入Lambda語法這種可見的改進。
  • 2019年2月,在JDK 12發布前夕,Oracle果然如之前宣布那樣在六個月之后就放棄了對上一個版本OpenJDK的維護,RedHat同時從Oracle手上接過OpenJDK 8和OpenJDK 11的管理權利和維護職責。
  • 2019年3月20日,JDK 12發布,只包含8個JEP,其中主要有Switch表達式、Java微測試套件(JMH)等新功能,最引人注目的特性無疑是加入了由RedHat領導開發的Shenandoah垃圾收集器。Shenandoah作為首個由非Oracle開發的垃圾收集器,其目標又與Oracle在JDK 11中發布的ZGC幾乎完全一致,兩者天生就存在競爭。Oracle馬上用實際行動抵制了這個新收集器,在JDK 11發布時才說應盡可能保證OracleJDK和OpenJDK的兼容一致,轉眼就在OracleJDK 12里把Shenandoah的代碼通過條件編譯強行剔除掉,使其成為歷史上唯一進入了OpenJDK發布清單,但在OracleJDK中無法使用的功能。
  • 2020年 3 月 17 日,JDK14 正式 GA(General Available),新增了Records、switch表達式(JDK 12和JDK 13中的預覽特性,現在正式使用)、文本塊等新特性。在JVM方面,棄用Parallel Scavenge和SerialOld GC組合、刪除CMS垃圾回收器。
1.3 java的特性和優勢
  • 簡單性

與C語言不同,Java是一種面向對象編程的語言,他的底層借鑒了C++語言但又不是完全相同,Java語言并不支持多繼承、指針、go to 語句、操作符重載、頭文件等,但其語法基于C語言,免去了預處理操作。

  • 面向對象

Java語言是一個面向對象的語言,基本思想是使用對象、類、封裝、繼承、多態等概念進行程序設計。每一個物體都可以成為一個對象,其本身具有唯一性,有各自不同的變化狀態,對Java來說,現有類,才有對象,對象是類實例化后的產物。

  • 可移植性

不同于其他語言,Java優點在于自身的跨平臺和可移植性,在Java環境安裝好后,會自帶一個Java的虛擬機,它可以屏蔽掉不同操作系統之間的差異,實現了跨平臺運行Java程序。

  • 高性能

在我們實際編寫項目中通常會用到一些Java中間件,像網關、緩存、負載均衡、數據庫、分布式架構等方面都有涉及,這都可以較快提高我們項目的性能,同時Java可以通過虛擬機來優化提升運行效率。

  • 分布式

分布式系統是由多個互通節點組成在一起的系統,主要有增加系統容量、加強系統可用、擴展性高、通過服務模塊的拆分提升相應效率、團隊協作流程得到改善等優點。基于Java自身可以實現信息之間的通信,通常使用TCP/IP異步通信可以達到分布式的效果。

  • 動態性

Java中的動態性主要體現在反射機制、動態字節碼操作、動態編譯、執行其他腳本編碼等方面,在后期建立各模塊之間的互通,這就意味著在現有的應用程序下可以實現各模塊之間的互連。

  • 多線程

一個進程可以啟動多個線程,例如:我們可以將火車站看作一個進程而其中的每一個售票窗口可以看作一個線程,每一個線程都有一個單獨的棧空間,棧與棧之間互不干擾,各自執行各自的線程并發。

  • 安全性

Java安全措施主要體現在面向對象的規范上,主要包括:封裝數據細節,只提供接口給用戶、在Java除了基本類型的操作外都是引用的操作、數組邊界檢查、強制類型轉換和語言對線程的支持。

  • 健壯性

在Java中有一種機制:自動垃圾回收機制(GC機制),Java虛擬機負責調動該機制,不需要編碼者過多的干涉。

1.4 Java的跨平臺性

我們知道java有跨平臺的特性,即一次編譯處處運行,其實質是jvm在編譯java代碼時,會將代碼編譯成.class的字節碼文件,只要在不同的環境中安裝對應的JDK(其中包含jvm),我們就可以運行程序了。

其實java虛擬機不僅可以支持java語言,對于其他語言,我們都可以通過把它轉換成字節碼文件,最后轉換的字節碼文件都能通過Java虛擬機進行運行和處理。隨著Java7的正式發布,Java虛擬機的設計者們通過JSR-292規范基本實現在Java虛擬機平臺上運行非Java語言編寫的程序。

Java虛擬機根本不關心運行在其內部的程序到底是使用何種編程語言編寫的,它只關心“字節碼”文件。也就是說Java虛擬機擁有語言無關性,并不會單純地與Java語言“終身綁定”,只要其他編程語言的編譯結果滿足并包含Java虛擬機的內部指令集、符號表以及其他的輔助信息,它就是一個有效的字節碼文件,就能夠被虛擬機所識別并裝載運行。
Java跨平臺原理

1.5 字節碼

我們平時說的java字節碼,指的是用java語言編譯成的字節碼。準確的說任何能在jvm平臺上執行的字節碼格式都是一樣的。所以應該統稱為:jvm字節碼。
不同的編譯器,可以編譯出相同的字節碼文件,字節碼文件也可以在不同的JVM上運行。Java虛擬機與Java語言并沒有必然的聯系,它只與特定的二進制文件格式——Class文件格式所關聯,Class文件中包含了Java虛擬機指令集(或者稱為字節碼、Bytecodes)和符號表,還有一些其他輔助信息。

1.6 JDK和JRE
1.6.1 JDK和JRE的區別
  • JVM(Java Virtual Machine),Java虛擬機,是整個java實現跨平臺的最核心的部分,能夠運行以Java語言寫作的軟件程序。包括了Java運行環境JRE、Java工具和Java基礎類庫。
  • JRE(Java Runtime Environment),Java運行環境,包含了JVM和Java的核心類庫(Java API)
  • JDK(Java Development Kit)稱為Java開發工具,包含了JRE和開發工具
    在這里插入圖片描述
1.6.2 JDK安裝
2、Java基礎語法
2.1 基礎數據類型
2.1.1 計算機存儲單元

我們知道計算機是可以用來存儲數據的,但是無論是內存還是硬盤,計算機存儲設備的最小信息單元叫“位 (bit)”,我們又稱之為“比特位”,通常用小寫的字母”b”表示。而計算機中最基本的存儲單元叫“字節(byte)”,
通常用大寫字母”B”表示,字節是由連續的8個位組成。
除了字節外還有一些常用的存儲單位,其換算單位如下:
1B(字節) = 8bit
1KB = 1024B
1MB = 1024KB
1GB = 1024MB
1TB = 1024GB

2.1.2 Java基本數據類型

數據類型

關鍵字

內存占用

取值范圍

整數類型

byte

1

-128~127

short

2

-32768-32767

int(默認)

4

-2的31次方到2的31次方減1

long

8

-2的63次方到2的63次方減1

字符型

float

4

double(默認)

8

字符類型

char

2

0-65535

布爾類型

boolean

1

e35表示的是乘以10的38次方,同樣e-45表示乘以10的45次方,在java中整數默認是int類型

3、面向對象
3.1 面向對象和面向過程
  • 面向過程:強調的是功能行為,以函數為最小單位,考慮怎么做。
  • 面向對象:強調具備了功能的對象,以類/對象為最小單位,考慮誰來做。
  • 面向對象設計程序(簡稱OOP):
3.2 對象和類
  • 類:類是構造對象的模板或藍圖;就是將具有相似的行為或者屬性的事物抽象或者集合形成一個類;是抽象的、概念上的定義
  • 對象:是實際存在的該類事物的每個個體,是類的實例
  • 由類創建對象的過程稱為創建類的實例
3.2.1 對象內存圖
  • 單個對象內存圖
    在這里插入圖片描述
  • 多個對象內存圖
    在這里插入圖片描述
    總結:多個對象在堆內存中,都有不同的內存劃分,成員變量存儲在各自的內存區域中,成員方法多個對象共用的一份
  • 多個對象指向相同內存圖
    在這里插入圖片描述
    總結:
    當多個對象的引用指向同一個內存空間(變量所記錄的地址值是一樣的)
    只要有任何一個對象修改了內存中的數據,隨后,無論使用哪一個對象進行數據獲取,都是修改后的數據。
3.3 變量

在這里插入圖片描述

3.3.1 成員變量

成員變量(方法外、類內)的聲明格式:
【訪問修飾符】【類型修飾符】<數據類型>變量名

  • 訪問修飾符:設置變量的訪問權限

訪問級別

訪問控制修飾符

同類

同包不同類(不含子類)

同包子類

不同包不同類

不同包子類

公開

public

受保護

protected

×

(注意)

默認

沒有訪問修飾符

×

×

私有

private

×

×

×

×

注:成員變量通常設置為private,然后在設置一些public權限的方法來設置、獲取成員變量的值,防止由對象直接訪問變量導致數據的錯誤、混亂或安全性問題。

3.4 構造方法
3.4.1 構造方法概述

在Java中,構造方法(Constructor)是一種特殊類型的方法,用于初始化對象

3.4.2 構造方法特點
  • 方法名稱與類名相同:構造方法的名稱必須與類名完全相同。
  • 沒有返回類型:構造方法沒有返回類型,甚至不寫 void。
  • 在創建對象時自動調用:當使用 new 關鍵字實例化一個對象時,會自動調用該對象的構造方法。
  • 可以有多個構造方法:一個類可以有多個構造方法,根據參數列表的不同來區分構造方法的重載。
4、字符串
4.1 String為什么是不可變的

String內部是一個使用final修飾修飾的字符數組,所以不可變
在這里插入圖片描述
為何這樣設計

  • 安全性:字符串經常用于存儲敏感信息,如網絡連接的用戶名、密碼、URL等。如果字符串是可變的,那么這些信息可能會被惡意修改,從而導致安全問題。

  • 線程安全:由于字符串是不可變的,所以它們在多線程環境中是安全的,不需要額外的同步。

  • 哈希碼緩存:字符串是哈希映射(如HashMap和HashSet)中常用的鍵類型。由于字符串的內容不會改變,所以它們的哈希碼可以被緩存,而不需要每次使用時都重新計算。這可以提高哈希映射的性能。

  • 字符串池:Java虛擬機(JVM)維護了一個特殊的內存區域,稱為字符串池(String Pool)。當你創建一個字符串字面量(如"Hello")時,JVM首先會檢查字符串池中是否已經存在該值。如果存在,JVM將返回對現有字符串的引用;否則,JVM將在字符串池中創建一個新的字符串。這種技術可以節省內存,因為相同的字符串字面量只需要存儲一次。

  • 從源碼角度來看:String類的不可變性主要體現在其內部使用了一個私有的、最終的字符數組來存儲其值,并且沒有提供修改這個數組的方法。這意味著一旦一個String對象被創建,其內部的字符數組就不能被改變了。

4.2 字符串常量池

字符串常量池又稱為字符串池,全局字符串池(Spring Pool)。在工作中,String類是我們使用頻率非常高的一種對象類型。JVM為了提升性能和減少內存開銷,避免字符串的重復創建,其維護了一塊特殊的內存空間,就是字符串常量池。字符串常量池由String類私有保護。

4.2 String.intern()
/*** Returns a canonical representation for the string object.* <p>* A pool of strings, initially empty, is maintained privately by the* class {@code String}.* <p>* When the intern method is invoked, if the pool already contains a* string equal to this {@code String} object as determined by* the {@link #equals(Object)} method, then the string from the pool is* returned. Otherwise, this {@code String} object is added to the* pool and a reference to this {@code String} object is returned.* <p>* It follows that for any two strings {@code s} and {@code t},* {@code s.intern() == t.intern()} is {@code true}* if and only if {@code s.equals(t)} is {@code true}.* <p>* All literal strings and string-valued constant expressions are* interned. String literals are defined in section 3.10.5 of the* <cite>The Java&trade; Language Specification</cite>.** @return  a string that has the same contents as this string, but is*          guaranteed to be from a pool of unique strings.*/public native String intern();

由源碼可知,String.intern()是一個native方法,注釋大致意思是:如果常量池中存在當前字符串,就會直接返回當前字符串,如果常量池中沒有此字符串,會將此字符串放入常量池中,然后返回。

5、數組

Java集合框架

二、Java進階

java高級特性

多線程

1、初識多線程

多線程是指從軟件或者硬件上實現多個線程并發執行的技術。具有多線程能力的計算機因有硬件支持能夠在同一時間執行多個線程,提升性能。

2、進程和線程
  • 進程:

二、使用步驟

1.引入庫

代碼如下(示例):

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.讀入數據

代碼如下(示例):

data = pd.read_csv('https://labfile.oss.aliyuncs.com/courses/1283/adult.data.csv')
print(data.head())

該處使用的url網絡請求的數據。


總結

提示:這里對文章進行總結:

例如:以上就是今天要講的內容,本文僅僅簡單介紹了pandas的使用,而pandas提供了大量能使我們快速便捷地處理數據的函數和方法。

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

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

相關文章

JAVA安全—反射機制攻擊鏈類對象成員變量方法構造方法

前言 還是JAVA安全&#xff0c;哎&#xff0c;真的講不完&#xff0c;太多啦。 今天主要是講一下JAVA中的反射機制&#xff0c;因為反序列化的利用基本都是要用到這個反射機制&#xff0c;還有一些攻擊鏈條的構造&#xff0c;也會用到&#xff0c;所以就講一下。 什么是反射…

TfidfVectorizer

TF-IDF / Term Frequency - Inverse Document Frequency 作用&#xff1a;是自然語言處理NLP中常用的文本特征提取工具&#xff0c;用于將文本數據轉換為數據向量。 核心思想&#xff1a;是通過統計詞頻和逆文檔頻率來量化詞語在文本中的重要性。 T F ? I D F ( t , d ) T F…

DeepSeek-R1 論文解讀:強化學習如何 “煉” 出超強推理模型?

深度解析DeepSeek-R1&#xff1a;強化學習驅動大語言模型推理能力新突破 論文鏈接&#xff1a;DeepSeek-R1: Incentivizing Reasoning Capability in LLMs via Reinforcement Learning 在大語言模型&#xff08;LLMs&#xff09;飛速發展的當下&#xff0c;提升模型推理能力成…

【數據結構】循環鏈表

循環鏈表 單鏈表局限性單向循環鏈表判斷鏈表是否有環思路code 找到鏈表入口思路代碼結構與邏輯 code 單鏈表局限性 單鏈表作為一種基本的數據結構&#xff0c;雖然在很多場景下都非常有用&#xff0c;但它也存在一些局限性&#xff1a; 單向訪問&#xff1a;由于每個節點僅包含…

ip屬地是手機號還是手機位置?一文理清

在數字化和網絡化的今天&#xff0c;IP屬地這一概念逐漸成為了人們關注的焦點。特別是在社交媒體和在線平臺上&#xff0c;IP屬地的顯示往往讓人聯想到用戶的地理位置。然而&#xff0c;關于IP屬地到底與手機號還是手機位置有關&#xff0c;卻存在著不少誤解和混淆。本文將深入…

【嵌入】基于nomic-embed-text-v1.5和HuggingFaceEmbeddings實現

測試代碼 model_name = /media/zhangbin/DATA/DataCache/nomic-ai/nomic-embed-text-v1.5import osos.environ[HF_HOME] = /media/zhangbin/DATA/DataCache/#os.environ["TRANSFORMERS_CACHE"] = "/media/zhangbin/DATA/DataCache/" # 確保目錄結構正確 if…

離散時間傅里葉變換(DTFT)公式詳解:周期性與連續性剖析

摘要 離散時間傅里葉變換&#xff08;DTFT&#xff09;是數字信號處理領域的重要工具&#xff0c;它能將離散時間信號從時域轉換到頻域&#xff0c;揭示信號的頻率特性。本文將深入解讀DTFT公式&#xff0c;詳細闡述其具有周期性和連續性的原因&#xff0c;幫助讀者全面理解DT…

哈希表與散列表的原理及C++實現

1. 什么是哈希表&#xff1f; 哈希表&#xff08;Hash Table&#xff09;是一種高效的數據結構&#xff0c;用于存儲鍵值對&#xff08;Key-Value Pairs&#xff09;。它通過哈希函數&#xff08;Hash Function&#xff09;將鍵&#xff08;Key&#xff09;映射到一個固定大小…

圖像分類與目標檢測算法

在計算機視覺領域&#xff0c;圖像分類與目標檢測是兩項至關重要的技術。它們通過對圖像進行深入解析和理解&#xff0c;為各種應用場景提供了強大的支持。本文將詳細介紹這兩項技術的算法原理、技術進展以及當前的落地應用。 一、圖像分類算法 圖像分類是指將輸入的圖像劃分為…

前端框架中 HTML 的應用技巧:React、Vue、Angular 深度解析

系列文章目錄 01-從零開始學 HTML&#xff1a;構建網頁的基本框架與技巧 02-HTML常見文本標簽解析&#xff1a;從基礎到進階的全面指南 03-HTML從入門到精通&#xff1a;鏈接與圖像標簽全解析 04-HTML 列表標簽全解析&#xff1a;無序與有序列表的深度應用 05-HTML表格標簽全面…

Vue - customRef 自定義ref

customRef 作用&#xff1a;創建一個自定義的 ref , 并對其依賴項跟蹤和更新觸發進行邏輯控制。 在原生 ref 的基礎上&#xff0c;添加自己的邏輯等... 在 Vue 3 中&#xff0c;customRef 是一個用于創建自定義響應式引用的 API。它允許開發者控制和優化響應式引用的行為&…

數字化轉型:概念性名詞淺談(第四講)

?大家好&#xff0c;本篇文章是在新年之際寫的&#xff0c;所以在這里先給大家拜個年。 今天要介紹的名詞為ETL: ETL&#xff0c;是英文Extract-Transform-Load的縮寫&#xff0c;用來描述將數據從來源端經過抽取&#xff08;extract&#xff09;、轉換&#xff08;transfor…

UE學習日志#22 C++筆記#8 基礎復習8 string和string_view2

1 std::string_view類 string_view基本上就是const string&的簡單替代品&#xff0c;但不會產生開銷。他不復制字符串。 string_view添加了remove_prefix(size_t)和remove_suffix(size_t)方法&#xff0c;前者將起始指針給定的偏移量來收縮字符串&#xff0c;后者則將結尾指…

UVM factory機制

目錄 1. factory-register 1.1 uvm_object_registry#(type T=uvm_object, string Tname="") 1.1 uvm_default_factory::register 2. factory-override 2.1 set_type_override(uvm_object_wrapper override_type) 2.2 set_inst_override(uvm_object_wrapper ove…

Spring MVC學習——發送請求(@RequestMapping注解及請求參數綁定)

前言 Spring MVC作為Spring框架中的核心組件之一&#xff0c;其強大的功能在于能簡潔高效地處理HTTP請求和響應。在開發Web應用時&#xff0c;理解和正確使用Spring MVC的注解&#xff0c;尤其是RequestMapping注解&#xff0c;至關重要。本文將詳細講解RequestMapping注解的使…

C# Action和 Func的用法

C#中的數據類型 函數數據類型 Action 是一個數據類型 但是是沒有返回值得函數數據類型 Func 用于指定一個有返回值的委托 internal class Program{static void Main(string[] args){TT.F1(NoVoid);TT.F2(Void1);Void2(() > { Console.WriteLine("Void2執行了");…

C++中的模板(上)

C中的模板(上) 模板參數和函數參數是很像的,函數參數定義的形參對象,而模板參數定義的是類型. 模板分為函數模板和類模板 函數模板 一個交換兩個數的函數模板: template<class T> // 此處typename和class是等價的 void Swap(T &a, T &b) {T temp a;a b;b …

MySQL面試題----如何進行 MySQL 數據庫備份與恢復

MySQL 數據庫備份 1. 使用 mysqldump 工具(邏輯備份) 全量數據庫備份 該方式會備份指定數據庫中的所有數據和表結構。在命令行中輸入以下命令,將 username 替換為你的 MySQL 用戶名,password 替換為對應的密碼,database_name 替換為要備份的數據庫名,backup.sql 為備份文…

Java集合面試總結(題目來源JavaGuide)

問題1&#xff1a;說說 List,Set,Map 三者的區別&#xff1f; 在 Java 中&#xff0c;List、Set 和 Map 是最常用的集合框架&#xff08;Collection Framework&#xff09;接口&#xff0c;它們的主要區別如下&#xff1a; 1. List&#xff08;列表&#xff09; 特點&#xf…

deepseek接入pycharm 進行AI編程

要將DeepSeek接入PyCharm進行AI編程,可以按照以下步驟操作: ### 1. 獲取DeepSeek API訪問權限 DeepSeek通常以API的形式對外提供服務,你需要在其官方網站注冊賬號,申請API訪問權限。在申請通過后,會獲得API密鑰(API Key),這是后續調用API的關鍵憑證。 ### 2. 安裝必要…