Java學習第二部分——基礎語法

目錄

?一.數據類型

(一)數值類型(用于存儲數字,包括整數和浮點數)

1. **整數類型**

2. **浮點類型**

(二)非數值類型(非數值類型用于存儲非數字數據)

1. **char**

2. **boolean**

二.變量與常量

No.1 變量(是存儲數據的容器,用于在程序運行過程中存儲和操作數據)

(一)變量的聲明

(二)變量的初始化

(三)變量的使用

(四)變量的作用域

No.2 常量(是值不能改變的量,用于存儲固定不變的數據)

(一)常量的聲明

(二)常量的特點

(三)常量的作用

No.3 示例代碼

No.4 變量和常量的命名規則

三.運算符

?(一)算術運算符(用于執行基本的數學運算)

(二)比較運算符(用于比較兩個值的大小,結果為布爾值即true?或 false)

(三)邏輯運算符(用于組合多個條件,結果為布爾值)

(四)位運算符(用于對整數的二進制位進行操作)

(五)賦值運算符(用于將值賦給變量,也可以與其他運算符結合使用)

(六)條件運算符或三元運算符(用于根據條件選擇兩個值中的一個)

(七)示例代碼

四.控制流程語句

?(一)條件語句(用于根據條件的真假來決定是否執行某些代碼塊)

1.if語句

2.if-else語句

3.if-else if-else語句

4.switch語句

(二)循環語句(用于重復執行某段代碼,直到滿足某個條件為止)

1.for循環(用于循環次數已知的情況)

2.while循環(先判斷條件,條件為真時執行循環體)

3.do-while循環(先執行一次循環體,然后再判斷條件)

(三)跳轉語句(用于在循環中控制程序的執行流程)

1.break語句(用于終止循環或switch語句)

2.continue語句(用于跳過當前循環的剩余部分,繼續執行下一次循環)

3.return語句(用于從方法中返回值,也可以用于終止方法的執行)

(四)示例代碼


?一.數據類型

(一)數值類型(用于存儲數字,包括整數和浮點數)

1. **整數類型**


? ?- **byte**
? ? ?- **大小**:1 個字節(8 位)
? ? ?- **范圍**:-128 到 127
? ? ?- **特點**:占用內存空間小,適合存儲小范圍的整數數據。例如,`byte b = 100;`。
? ?- **short**
? ? ?- **大小**:2 個字節(16 位)
? ? ?- **范圍**:-32768 到 32767
? ? ?- **特點**:比 `byte` 類型范圍大,但仍比 `int` 類型小,適用于存儲中等范圍的整數數據。例如,`short s = 30000;`。
? ?- **int**
? ? ?- **大小**:4 個字節(32 位)
? ? ?- **范圍**:-2147483648 到 2147483647
? ? ?- **特點**:這是最常用的一種整數類型,范圍足夠大,適用于大多數整數運算。例如,`int i = 1000000;`。
? ?- **long**
? ? ?- **大小**:8 個字節(64 位)
? ? ?- **范圍**:-9223372036854775808 到 9223372036854775807
? ? ?- **特點**:用于存儲非常大的整數,例如在處理大數字運算或時間戳等場景。定義時需要在數值后面加上“L”或“l”,如 `long l = 123456789012345L;`。

2. **浮點類型**


? ?- **float**
? ? ?- **大小**:4 個字節(32 位)
? ? ?- **特點**:用于存儲單精度浮點數,精度較低,但占用內存空間較小。定義時需要在數值后面加上“f”或“F”,如 `float f = 3.14f;`。
? ?- **double**
? ? ?- **大小**:8 個字節(64 位)
? ? ?- **特點**:用于存儲雙精度浮點數,精度高,是浮點數運算的默認類型。例如,`double d = 3.1415926;`。

(二)非數值類型(非數值類型用于存儲非數字數據)

1. **char**


? ?- **大小**:2 個字節(16 位)
? ?- **特點**:用于存儲單個字符,采用 Unicode 編碼。字符需要用單引號括起來,如 `char c = 'A';`。


2. **boolean**


? ?- **大小**:通常認為占用 1 個字節(實際大小取決于 JVM 實現)
? ?- **特點**:用于存儲布爾值,只有兩個可能的值:`true` 和 `false`。常用于條件判斷,如 `boolean isTrue = true;`。

二.變量與常量

No.1 變量(是存儲數據的容器,用于在程序運行過程中存儲和操作數據)

(一)變量的聲明


數據類型 變量名;
例如:
int age;
double salary;

(二)變量的初始化


數據類型 變量名 = 初始值;
例如:
int age = 25;
double salary = 5000.5;

(三)變量的使用


變量可以在程序中被賦值、讀取和修改。
age = 30; // 修改變量值
System.out.println(age); // 輸出變量值

(四)變量的作用域


變量的作用域是指變量可以被訪問的范圍。
- **局部變量**:在方法或代碼塊中聲明,只能在該方法或代碼塊中使用。
- **成員變量**:在類中聲明,屬于類的實例,可以在整個類中使用。
- **類變量(靜態變量)**:在類中聲明,使用 `static` 關鍵字修飾,屬于類本身,可以通過類名訪問。

No.2 常量(是值不能改變的量,用于存儲固定不變的數據)

(一)常量的聲明


常量使用 `final` 關鍵字聲明。
final 數據類型 常量名 = 常量值;
例如:
final double PI = 3.14159;

(二)常量的特點


- 常量的值在聲明后不能修改。
- 常量名通常使用大寫字母,單詞之間用下劃線分隔,以提高可讀性。

(三)常量的作用


- **提高代碼可讀性**:使用常量名代替具體的值,使代碼更易理解。
- **避免硬編碼**:減少代碼中直接出現的固定值,便于維護和修改。

No.3 示例代碼

public class VariableAndConstantExample {
? ? // 類變量(靜態變量)
? ? static final double PI = 3.14159;

? ? // 成員變量
? ? int radius;

? ? public static void main(String[] args) {
? ? ? ? // 局部變量
? ? ? ? int age = 25;

? ? ? ? // 使用局部變量
? ? ? ? System.out.println("Age: " + age);

? ? ? ? // 創建對象并使用成員變量
? ? ? ? VariableAndConstantExample example = new VariableAndConstantExample();
? ? ? ? example.radius = 5;

? ? ? ? // 使用類變量
? ? ? ? double circumference = 2 * PI * example.radius;
? ? ? ? System.out.println("Circumference: " + circumference);
? ? }
}

No.4 變量和常量的命名規則

- **變量名和常量名**:
? - 不能以數字開頭
? - 只能包含字母、數字、下劃線(_)和美元符號($)
? - 是大小寫敏感的
- **變量名**:
? - 通常使用小寫字母開頭,單詞之間用駝峰命名法(如 `myVariableName`)
- **常量名**:
? - 通常使用大寫字母,單詞之間用下劃線分隔(如 `MY_CONSTANT_NAME`)

三.運算符

?(一)算術運算符(用于執行基本的數學運算)

| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|------------------|--------------|
| `+` ? ?| 加法 ? ? ? ? ? ? ? ? ? ? | `a + b` ? ? ? ? ?| `5 + 3 = 8` ?|
| `-` ? ?| 減法 ? ? ? ? ? ? ? ? ? ? | `a - b` ? ? ? ? ?| `5 - 3 = 2` ?|
| `*` ? ?| 乘法 ? ? ? ? ? ? ? ? ? ? | `a * b` ? ? ? ? ?| `5 * 3 = 15` |
| `/` ? ?| 除法 ? ? ? ? ? ? ? ? ? ? | `a / b` ? ? ? ? ?| `5 / 3 = 1` ?|
| `%` ? ?| 取模(求余) ? ? ? ? ? ? | `a % b` ? ? ? ? ?| `5 % 3 = 2` ?|
| `++` ? | 自增(加1) ? ? ? ? ? ? ?| `a++` 或 `++a` ? | `a = a + 1` ?|
| `--` ? | 自減(減1) ? ? ? ? ? ? ?| `a--` 或 `--a` ? | `a = a - 1` ?|

(二)比較運算符(用于比較兩個值的大小,結果為布爾值即true?或 false)

| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|------------------|--------------|
| `==` ? | 等于 ? ? ? ? ? ? ? ? ? ? | `a == b` ? ? ? ? | `5 == 3` → `false` |
| `!=` ? | 不等于 ? ? ? ? ? ? ? ? ? | `a != b` ? ? ? ? | `5 != 3` → `true` ?|
| `>` ? ?| 大于 ? ? ? ? ? ? ? ? ? ? | `a > b` ? ? ? ? ?| `5 > 3` → `true` ? |
| `>=` ? | 大于等于 ? ? ? ? ? ? ? ? | `a >= b` ? ? ? ? | `5 >= 3` → `true` ?|
| `<` ? ?| 小于 ? ? ? ? ? ? ? ? ? ? | `a < b` ? ? ? ? ?| `5 < 3` → `false` ?|
| `<=` ? | 小于等于 ? ? ? ? ? ? ? ? | `a <= b` ? ? ? ? | `5 <= 3` → `false` |

(三)邏輯運算符(用于組合多個條件,結果為布爾值)

| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|-----------------------------|--------------|
| `&&` ? | 邏輯與(AND) ? ? ? ? ? ?| `a > 0 && b < 10` ? ? ? ? ? | `true && false` → `false` |
| `||` ? | 邏輯或(OR) ? ? ? ? ? ? | `a > 0 || b < 10` ? ? ? ? ? | `true || false` → `true` ?|
| `!` ? ?| 邏輯非(NOT) ? ? ? ? ? ?| `!(a > 0)` ? ? ? ? ? ? ? ? ? | `!true` → `false` ? ? ? ?|

(四)位運算符(用于對整數的二進制位進行操作)

| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|------------------|--------------|
| `&` ? ?| 位與 ? ? ? ? ? ? ? ? ? ? | `a & b` ? ? ? ? ?| `5 & 3 = 1` ?|
| `|` ? ?| 位或 ? ? ? ? ? ? ? ? ? ? | `a | b` ? ? ? ? ?| `5 | 3 = 7` ? |
| `^` ? ?| 位異或 ? ? ? ? ? ? ? ? ? | `a ^ b` ? ? ? ? ?| `5 ^ 3 = 6` ?|
| `~` ? ?| 位非 ? ? ? ? ? ? ? ? ? ? | `~a` ? ? ? ? ? ? | `~5 = -6` ? ?|
| `<<` ? | 左移 ? ? ? ? ? ? ? ? ? ? | `a << 2` ? ? ? ? | `5 << 2 = 20`|
| `>>` ? | 右移(符號位填充) ? ? ? | `a >> 2` ? ? ? ? | `5 >> 2 = 1` |
| `>>>` ?| 無符號右移(零填充) ? ? | `a >>> 2` ? ? ? ?| `5 >>> 2 = 1`|

(五)賦值運算符(用于將值賦給變量,也可以與其他運算符結合使用)

| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? | 等價于 ? ? ? |
|--------|--------------------------|------------------|--------------|
| `=` ? ?| 簡單賦值 ? ? ? ? ? ? ? ? | `a = b` ? ? ? ? ?| `a = b` ? ? ?|
| `+=` ? | 加法賦值 ? ? ? ? ? ? ? ? | `a += b` ? ? ? ? | `a = a + b` ?|
| `-=` ? | 減法賦值 ? ? ? ? ? ? ? ? | `a -= b` ? ? ? ? | `a = a - b` ?|
| `*=` ? | 乘法賦值 ? ? ? ? ? ? ? ? | `a *= b` ? ? ? ? | `a = a * b` ?|
| `/=` ? | 除法賦值 ? ? ? ? ? ? ? ? | `a /= b` ? ? ? ? | `a = a / b` ?|
| `%=` ? | 取模賦值 ? ? ? ? ? ? ? ? | `a %= b` ? ? ? ? | `a = a % b` ?|
| `&=` ? | 位與賦值 ? ? ? ? ? ? ? ? | `a &= b` ? ? ? ? | `a = a & b` ?|
| `|=` ? | 位或賦值 ? ? ? ? ? ? ? ? | `a |= b` ? ? ? ? | `a = a | b` ?|
| `^=` ? | 位異或賦值 ? ? ? ? ? ? ? | `a ^= b` ? ? ? ? | `a = a ^ b` ?|
| `<<=` ?| 左移賦值 ? ? ? ? ? ? ? ? | `a <<= 2` ? ? ? ?| `a = a << 2` |
| `>>=` ?| 右移賦值 ? ? ? ? ? ? ? ? | `a >>= 2` ? ? ? ?| `a = a >> 2` |
| `>>>=` | 無符號右移賦值 ? ? ? ? ? | `a >>>= 2` ? ? ? | `a = a >>> 2`|

(六)條件運算符或三元運算符(用于根據條件選擇兩個值中的一個)

| 運算符 | 描述 ? ? ? ? ? ? ? ? ? ? | 示例 ? ? ? ? ? ? ? ? ? ? ? ? | 結果 ? ? ? ? |
|--------|--------------------------|-----------------------------|--------------|
| `? :` ?| 條件運算符 ? ? ? ? ? ? ? | `a > b ? x : y` ? ? ? ? ? ? | `5 > 3 ? 10 : 20` → `10` ? ?|

(七)示例代碼

public class OperatorExample {
? ? public static void main(String[] args) {
? ? ? ? int a = 5;
? ? ? ? int b = 3;

? ? ? ? // 算術運算符
? ? ? ? System.out.println("a + b = " + (a + b)); // 8
? ? ? ? System.out.println("a - b = " + (a - b)); // 2
? ? ? ? System.out.println("a * b = " + (a * b)); // 15
? ? ? ? System.out.println("a / b = " + (a / b)); // 1
? ? ? ? System.out.println("a % b = " + (a % b)); // 2

? ? ? ? // 比較運算符
? ? ? ? System.out.println("a == b: " + (a == b)); // false
? ? ? ? System.out.println("a != b: " + (a != b)); // true
? ? ? ? System.out.println("a > b: " + (a > b)); ? // true
? ? ? ? System.out.println("a >= b: " + (a >= b)); // true
? ? ? ? System.out.println("a < b: " + (a < b)); ? // false
? ? ? ? System.out.println("a <= b: " + (a <= b)); // false

? ? ? ? // 邏輯運算符
? ? ? ? System.out.println("a > 0 && b < 10: " + (a > 0 && b < 10)); // true
? ? ? ? System.out.println("a > 0 || b < 10: " + (a > 0 || b < 10)); // true
? ? ? ? System.out.println("!(a > 0): " + !(a > 0)); // false

? ? ? ? // 位運算符
? ? ? ? System.out.println("a & b = " + (a & b)); // 1
? ? ? ? System.out.println("a | b = " + (a | b)); // 7
? ? ? ? System.out.println("a ^ b = " + (a ^ b)); // 6
? ? ? ? System.out.println("~a = " + (~a)); ? ? ? // -6
? ? ? ? System.out.println("a << 2 = " + (a << 2)); // 20
? ? ? ? System.out.println("a >> 2 = " + (a >> 2)); // 1
? ? ? ? System.out.println("a >>> 2 = " + (a >>> 2)); // 1

? ? ? ? // 賦值運算符
? ? ? ? a += b;
? ? ? ? System.out.println("a += b: " + a);

四.控制流程語句

?(一)條件語句(用于根據條件的真假來決定是否執行某些代碼塊)

1.if語句


if (條件) {
? ? // 條件為 true 時執行的代碼塊
}
示例:
int age = 18;
if (age >= 18) {
? ? System.out.println("成年人");
}


2.if-else語句


if (條件) {
? ? // 條件為 true 時執行的代碼塊
} else {
? ? // 條件為 false 時執行的代碼塊
}
示例:
int age = 16;
if (age >= 18) {
? ? System.out.println("成年人");
} else {
? ? System.out.println("未成年人");
}

3.if-else if-else語句


if (條件1) {
? ? // 條件1為 true 時執行的代碼塊
} else if (條件2) {
? ? // 條件2為 true 時執行的代碼塊
} else {
? ? // 所有條件都不滿足時執行的代碼塊
}
```
示例:
int score = 85;
if (score >= 90) {
? ? System.out.println("優秀");
} else if (score >= 70) {
? ? System.out.println("良好");
} else if (score >= 60) {
? ? System.out.println("及格");
} else {
? ? System.out.println("不及格");
}

4.switch語句


switch (變量) {
? ? case 值1:
? ? ? ? // 變量等于值1時執行的代碼塊
? ? ? ? break;
? ? case 值2:
? ? ? ? // 變量等于值2時執行的代碼塊
? ? ? ? break;
? ? default:
? ? ? ? // 所有條件都不滿足時執行的代碼塊
}
示例:
int day = 3;
switch (day) {
? ? case 1:
? ? ? ? System.out.println("星期一");
? ? ? ? break;
? ? case 2:
? ? ? ? System.out.println("星期二");
? ? ? ? break;
? ? case 3:
? ? ? ? System.out.println("星期三");
? ? ? ? break;
? ? default:
? ? ? ? System.out.println("其他");
}

(二)循環語句(用于重復執行某段代碼,直到滿足某個條件為止)

1.for循環(用于循環次數已知的情況)


for (初始化; 條件; 更新) {
? ? // 循環體
}
示例:
for (int i = 0; i < 5; i++) {
? ? System.out.println("循環次數:" + i);
}

2.while循環(先判斷條件,條件為真時執行循環體)


while (條件) {
? ? // 循環體
}
示例:
int count = 0;
while (count < 5) {
? ? System.out.println("while 循環次數:" + count);
? ? count++;
}

3.do-while循環(先執行一次循環體,然后再判斷條件)


do {
? ? // 循環體
} while (條件);
示例:
int num = 0;
do {
? ? System.out.println("do-while 循環次數:" + num);
? ? num++;
} while (num < 3);

(三)跳轉語句(用于在循環中控制程序的執行流程)

1.break語句(用于終止循環或switch語句)


for (int i = 0; i < 10; i++) {
? ? if (i == 5) {
? ? ? ? break; // 終止循環
? ? }
? ? System.out.println("循環次數:" + i);
}

2.continue語句(用于跳過當前循環的剩余部分,繼續執行下一次循環)


for (int i = 0; i < 10; i++) {
? ? if (i % 2 == 0) {
? ? ? ? continue; // 跳過偶數
? ? }
? ? System.out.println("循環次數:" + i);
}

3.return語句(用于從方法中返回值,也可以用于終止方法的執行)

public int add(int a, int b) {
? ? return a + b; // 返回結果
}

(四)示例代碼

public class ControlFlowExample {
? ? public static void main(String[] args) {
? ? ? ? // 條件語句
? ? ? ? int age = 18;
? ? ? ? if (age >= 18) {
? ? ? ? ? ? System.out.println("成年人");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("未成年人");
? ? ? ? }

? ? ? ? // switch 語句
? ? ? ? int day = 3;
? ? ? ? switch (day) {
? ? ? ? ? ? case 1:
? ? ? ? ? ? ? ? System.out.println("星期一");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 2:
? ? ? ? ? ? ? ? System.out.println("星期二");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? case 3:
? ? ? ? ? ? ? ? System.out.println("星期三");
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? default:
? ? ? ? ? ? ? ? System.out.println("其他");
? ? ? ? }

? ? ? ? // for 循環
? ? ? ? for (int i = 0; i < 5; i++) {
? ? ? ? ? ? System.out.println("for 循環次數:" + i);
? ? ? ? }

? ? ? ? // while 循環
? ? ? ? int count = 0;
? ? ? ? while (count < 5) {
? ? ? ? ? ? System.out.println("while 循環次數:" + count);
? ? ? ? ? ? count++;
? ? ? ? }

? ? ? ? // do-while 循環
? ? ? ? int num = 0;
? ? ? ? do {
? ? ? ? ? ? System.out.println("do-while 循環次數:" + num);
? ? ? ? ? ? num++;
? ? ? ? } while (num < 3);

? ? ? ? // break 語句
? ? ? ? for (int i = 0; i < 10; i++) {
? ? ? ? ? ? if (i == 5) {
? ? ? ? ? ? ? ? break; // 終止循環
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println("break 循環次數:" + i);
? ? ? ? }

? ? ? ? // continue 語句
? ? ? ? for (int i = 0; i < 10; i++) {
? ? ? ? ? ? if (i % 2 == 0) {
? ? ? ? ? ? ? ? continue; // 跳過偶數
? ? ? ? ? ? }
? ? ? ? ? ? System.out.println("continue 循環次數:" + i);
? ? ? ? }
? ? }
}

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

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

相關文章

Redis分布式鎖核心原理源碼

文章目錄 概述一、Redis實現分布式鎖1.1、第一版1.2、第二版1.3、第三版1.3、第四版 二、Redisson實現分布式鎖核心源碼分析2.1、加鎖核心源碼2.2、鎖續期核心源碼2.3、重試機制核心源碼2.4、解鎖核心源碼 總結 概述 傳統的單機鎖&#xff08;Synchronized&#xff0c;Reentran…

關于vue2使用elform的rules校驗

在使用vue2開發項目的時候使用element組件的el-form大多數情況都需要用到必填項校驗 舉個栗子&#xff1a; <el-form :model"ruleForm" :rules"rules" ref"ruleForm" label-width"100px" class"demo-ruleForm"><e…

langchain從入門到精通(二十六)——RAG優化策略(四)問題分解策略提升負責問題檢索準確率

1. LangChain 少量示例提示模板 在與 LLM 的對話中&#xff0c;提供少量的示例被稱為 少量示例&#xff0c;這是一種簡單但強大的指導生成的方式&#xff0c;在某些情況下可以顯著提高模型性能&#xff08;與之對應的是零樣本&#xff09;&#xff0c;少量示例可以降低 Prompt…

Nuxt.js基礎(Tailwind基礎)

??1. 按鈕組件實現?? ??傳統 CSS <!-- HTML --> <button class"btn-primary">提交</button><!-- CSS --> <style>.btn-primary {background-color: #3490dc;padding: 0.5rem 1rem;border-radius: 0.25rem;color: white;transi…

[C語言]存儲結構詳解

C語言存儲結構總結 在C語言中&#xff0c;數據根據其類型和聲明方式被存儲在不同的內存區域。以下是各類數據存儲位置的詳細總結&#xff1a; 內存五大分區 存儲區存儲內容生命周期特點代碼區(.text)程序代碼(機器指令)整個程序運行期只讀常量區(.rodata)字符串常量、const全…

【實戰】 容器中Spring boot項目 Graphics2D 畫圖中文亂碼解決方案

場景 架構&#xff1a;spring boot 容器技術&#xff1a;docker 服務器&#xff1a;阿里云 開發環境&#xff1a;windows10 IDEA 一、問題 服務器中出現Graphics2D 畫圖中文亂碼 本地環境運行正常 二、原因 spring boot 容器中沒有安裝中文字體 三、解決方案 安裝字體即可 …

深入淺出:Vue2 數據劫持原理剖析

目錄 一、什么是數據劫持&#xff1f; 二、核心 API&#xff1a;Object.defineProperty 三、Vue2 中的數據劫持實現 1. 對象屬性的劫持 2. 嵌套對象的處理 3. 數組的特殊處理 四、結合依賴收集的完整流程 五、數據劫持的局限性 六、Vue3 的改進方案 總結 一、什么是數…

數據湖 vs 數據倉庫:數據界的“自來水廠”與“瓶裝水廠”?

數據湖 vs 數據倉庫&#xff1a;數據界的“自來水廠”與“瓶裝水廠”&#xff1f; 說起“數據湖”和“數據倉庫”&#xff0c;很多剛入行的朋友都會覺得&#xff1a; “聽起來好高大上啊&#xff01;但到底有啥區別啊&#xff1f;是湖更大還是倉庫更高端&#xff1f;” 我得說…

Node.js-path模塊

Path 模塊 path 模塊提供了 操作路徑 的功能&#xff0c;我們將介紹如下幾個較為常用的幾個 API ??path.resolve([…paths]) 將路徑片段??解析為絕對路徑??&#xff08;從右向左拼接&#xff0c;遇到絕對路徑停止&#xff09; // 若參數為空&#xff0c;返回當前工作目…

Java面試題029:一文深入了解MySQL(1)

歡迎大家關注我的專欄,該專欄會持續更新,從原理角度覆蓋Java知識體系的方方面面。 一文吃透JAVA知識體系(面試題)https://blog.csdn.net/wuxinyan123/category_7521898.html?fromshare=blogcolumn&sharetype=blogcolumn&sharerId=7521898&

vue3.0所采用得Composition Api與Vue2.XOtions Api有什么不同?

Vue 3.0 引入的 Composition API 相較于 Vue 2.x 的 Options API 有顯著的不同。下面從幾個方面對比這兩者的差異&#xff1a; ? 1. 代碼組織方式不同 Vue 2.x — Options API 使用 data、methods、computed、watch 等分散的選項組織邏輯。 每個功能點分散在不同的選項中&am…

【IP 潮玩行業深度研究與學習】

潮玩行業發展趨勢分析&#xff1a;全球市場格局與中國政策支持體系 潮玩產業正經歷從"小眾收藏"到"大眾情緒消費"的深刻轉型&#xff0c;2025年中國潮玩市場規模已達727億元&#xff0c;預計2026年將突破1100億元&#xff0c;年復合增長率高達26%。這一千…

進程通信-消息隊列

消息隊列允許一個進程將一個消息發送到一個隊列中&#xff0c;另一個進程從該隊列中接收這個消息。 使用流程&#xff1a; 寫端&#xff1a; 使用結構體 mq_attr 設置消息隊列屬性&#xff0c;有四個選項&#xff1a; long mq_flags; // 隊列屬性: 0 表示阻塞 long …

串行通信接口USART,printf重定向數據發送,輪詢和中斷實現串口數據接收

目錄 UART通信協議的介紹 實現串口數據發送 CubeMX配置 printf重定向代碼編寫 實現串口數據接收 輪詢方式實現串口數據接收 接收單個字符 接收不定長字符串&#xff08;接收的字符串以\n結尾&#xff09; 中斷方式實現串口數據接收 CubeMX配置 UART中斷方式接收數據…

Kafka 生產者和消費者高級用法

Kafka 生產者和消費者高級用法 1 生產者的事務支持 Kafka 從版本0.11開始引入了事務支持&#xff0c;使得生產者可以實現原子操作&#xff0c;確保消息的可靠性。 // 示例代碼&#xff1a;使用 Kafka 事務 producer.initTransactions(); try {producer.beginTransaction();pr…

k8s中crictl命令常報錯解決方法

解決使用crictl命令時報默認端點棄用的報錯 報錯核心原因 默認端點棄用&#xff1a; crictl 會默認嘗試多個容器運行時端點&#xff08;如 dockershim.sock、containerd.sock 等&#xff09;&#xff0c;但這種 “自動探測” 方式已被 Kubernetes 棄用&#xff08;官方要求手動…

回轉體水下航行器簡單運動控制的奧秘:PID 控制和水動力方程的運用

在水下航行器的控制領域中&#xff0c;回轉體水下航行器的運動控制是一個關鍵課題。 今天&#xff0c;就來深入探討一下其簡單運動控制中&#xff0c;PID 控制以及水動力方程的相關運用。 PID 控制的基本原理PID 控制&#xff08;比例 - 積分 - 微分控制&#xff09;是一種廣…

從入門到精通:npm、npx、nvm 包管理工具詳解及常用命令

目錄 1. 引言2. npm (Node Package Manager)2.1 定義與用途2.2 常見命令2.3 使用示例 3. npx (Node Package Execute)3.1 定義與用途3.2 常見命令3.3 使用示例3.4 npm 與 npx 的區別 4. nvm (Node Version Manager)4.1 定義與用途4.2 安裝 nvm4.3 常見命令4.4 使用示例 5. 工具…

es6特性-第二部分

Promise 介紹和基本使用 Promise是ES6引入的異步編程的新解決方案&#xff0c;主要用來解決回調地獄問題。語法上 Promise是一個構造函數,用來封裝異步操作并可以獲取其成功或失敗的結果。 Promise構造函數:new Promise() Promise.prototype.then方法 Promise.prototype.ca…

java:如何用 JDBC 連接 TDSQL 數據庫

要使用JDBC連接TDSQL數據庫&#xff08;騰訊云分布式數據庫&#xff0c;兼容MySQL協議&#xff09;&#xff0c;請按照以下步驟編寫Java程序&#xff1a; 1. 添加MySQL JDBC驅動依賴 在項目的pom.xml中添加依賴&#xff08;Maven項目&#xff09;&#xff1a; <dependenc…