Java學習-第一部分-第一階段-第三節:運算符

来源:https://www.cnblogs.com/wenjie2000/archive/2022/06/19/16389813.html
-Advertisement-
Play Games

運算符 運算符介紹 算數運算符 運算符 運算 範例 結果 + 正號 +7 7 - 負號 b=11; -b -11 + 加 9+9 18 - 減 10-8 2 * 乘 7*8 56 除 9/9 1 % 取模(取餘) 11%9 2 ++ 自增(前):先運算後取值自增(後):先取值後運算 a=2;b=a; ...


運算符

運算符介紹

算數運算符

運算符 運算 範例 結果
+ 正號 +7 7
- 負號 b=11; -b -11
+ 9+9 18
- 10-8 2
* 7*8 56
9/9 1
% 取模(取餘) 11%9 2
++ 自增(前):先運算後取值
自增(後):先取值後運算
a=2;b=++a;
a=2;b=a++;
a=3;b=3
a=3;b=2
-- 自減(前):先運算後取值
自減(後):先取值後運算
a=2;b=--a
a=2;b=a--
a=1;b=1
a=1;b=2
+ 字元串相加 "hsp" +"edu" "hspedu"
**
*演示算術運算符的使用
*/
public class ArithmeticOperator {
    //編寫一個main方法
    public static void main(String[] args) {
        ///使用
        System.out.print1n(10 / 4);//從數學來看是2.5,java中 2
        System.out.println(10.0 / 4);//java是2.5
        //註釋快捷鍵ctrl +/,再次輸入ctrl +/取消註釋 
        //double d = 10 / 4;
        //System.out.println(d);
        //註釋快捷鍵ctrl +/,再次輸入ctrl +/取消註釋
        double d = 10/4;//java中10/ 4 = 2,2=>2.0
        System.out.println(d);//是2.0
        
        //%取模,取餘
        //在%的本質看一個公式a % b = a - a/ b * b
        //-10 %3 =>-10 -(-10)/3 * 3 = -10 + 9= -1
        // 10 %-3 = 10 - 10/(-3)*(-3) = 10 - 9 = 1
        // -10 % -3=(-10) - (-10)/ (-3)*(-3)= -10 +9 = -1
        System.out.print1n(10 % 3);//1
        System.out.println( -10 %3);// -1
        System.out.println(10 % -3);// 1
        System.out.println( -10%-3);//-1
        
        //++的使用
        //
        int i = 10;
        i++;//自增等價於i = i + 1;=>i = 11
        ++i;//自增等價於i = i + 1;=> i = 12
        System.out.println( "i=" + i);//12
        
        /*
        作為表達式使用
        前++∶++i先自增後賦值
        後++∶ i++先賦值後自增
        */
        int j = 8;
        int k = ++j;//等價j=j+1;k=j;
        int k = j++;//等價k =j;j=j+1;
        System.out.println("k="+k+“j="+j);
    }
}

面試題

1.面試題1
int i=1;
i=i++;       //規則使用臨時變數:(1) temp=i;(2) i=i+1;(3)i=temp;
System.out.println(i);
問:結果是多少?為什麼?

2.面試題2
int i=1;
i=++i;   //(1) i=i+1;(2) temp=i;(3)i=temp;
System.out.println(0);

答案:
1
2

練習題

//自增,自減練習    
int i1 = 10;
int i2 =20;
int i= i1++;
System.out.print("i="+i);    //10
System.out.println("i2="+i2);    //20
i = --i2;
System.out.print("i="+i);    //19
System.out.println("i2="+i2);    //19

練習題2

  1. 假如還有59天放假,問:合xx個星期零xx天

    int i=59;
    System.out.println(59/7+"星期零"+59%7+"天");
    
  2. 定義一個變數保存華氏溫度,華氏溫度轉換攝氏溫度的公式為:5/9*(華氏
    溫度-100),請求出華氏溫度對應的攝氏溫度。[234.5]

    double i=234.5;
    double x;
    x=(i-100)*5/9;
    System.out.println(x);
    

關係運算符

  1. 關係運算符的結果都是boolean型,也就是要麼是true,要麼是false

  2. 關係表達式經常用在if結構的條件電或迴圈結構的條件中

關係運算符一覽

運算符 運算 範例 結果
== 相等於 8==7 false
!= 不等於 8!=7 true
< 小於 8<7 false
> 大於 8>7 true
<= 小於等於 8<=7 false
>= 大於等於 8>=7 true
instanceof 檢查是否是類的對象 "hsp" instanceof String true
int a = 9;//老韓提示:開發中,不可以使用a, b
int b = 8;
System.out.println(a>b);//T
System.out.println(a>=b);//T
System.out.println(a<=b);//F
System.out.println(a<b);//F
System.out.println(a==b);//F
System.out.println(a!=b);//T
boolean flag = a>b;//T
System.out.println("flag="+flag);

細節說明

  1. 關係運算符的結果都是boolean型,也就是要麼是true,要麼是false.
  2. 關係運算符組成的表達式,我們稱為關係表達式。a >b
  3. 比較運算符"==“不能誤寫成"="

邏輯運算符

介紹

用於連接多個條件(多個關係表達式),最終的結果也是一個boolean值。

邏輯運算符一覽

分為兩組學習

  1. 短路與&&,短路或||,取反!

  2. 邏輯與&,邏輯或|,^邏輯異或

a b a&b a&&b a|b a||b !a a^b
true true true true true true false false
true false false false true true false true
false true false false true true true true
false false false false false false true false

&&和&基本規則

名稱 語法 特點
短路與&& 條件1&&條件2 兩個條件都為true,結果為true
邏輯與& 條件1&條件2 兩個條件都為true,結果為true

&&和&案例演示

//&&短路與和&案例演示
int age = 50;
if(age > 20 8&& age < 90) {
    System.out.println("ok100");
}
//&邏輯與使用
if(age > 20 & age < 90){
    System.out.println("ok200");
}

//&邏輯與使用
if(age > 20 & age < 90){
    System.out.println( "ok200");
}
//區別
int a = 4;
int b = 9;
//對於&&短路與而言,如果第一個條件為false ,後面的條件不再判斷
if(a < 1 && ++b <50){
    System.out.println("ok300");
}
System.out.println( "a=" +a + " b=" + b);// 4 9
//對於&邏輯與而言,如果第一個條件為false ,後面的條件仍然會判斷
if(a < 1 & ++b <50){
    System.out.println("ok300");
}
System.out.println( "a=" +a + " b=" + b);// 4 9

&&和&使用區別

  1. &&短路與:如果第一個條件為false,則第二個條件不會判斷,最終結果為false,效率高
  2. &邏輯與:不管第一個條件是否為false,第二個條件都要判斷,效率低3.開發中,我們使用的基本是短路與&&,效率高

||和|基本規則

名稱 語法 特點
短路或|| 條件1||條件2 兩個條件中只要有一個成立,結果為true
邏輯或| 條件1|條件2 只要有一個條件成立,結果為true

||和|案例演示

int a = 4;int b = 9;
if( a > 1 | ++b >4){
    System.out.println( "ok300");
}
    System.out.print1n( "a=" + a + " b=" + b); //4 10

||和|使用區別

  1. ||短路或:如果第一個條件為true,則第二個條件不會判斷,最終結果為true,效率高
  2. |邏輯或:不管第一個條件是否為true,第二個條件都要判斷,效率低
  3. 開發中,我們基本使用||

!取反 基本規則名稱

名稱 語法 特點
!非(取反) !條件 如果條件本身成立,結果為false,否則為true

!案例演示

//!操作是取反 T->F,F ->T
System.out.println(60 >20);//T
System.out.println(!(60 >20));/ /F
//a^b:叫邏輯異或,當a和b 不同時,則結果為true,否則為false
boolean b = (10 >1)^(3 > 5);
System.out.println( "b=" + b);//T

^案例演示

a^b:叫邏輯異或,當a和b 不同時,則結果為true,否則為false

^邏輯異或,System.out.printIn( (4<1)^(6> 3));//?

練習題

//1
int x = 5;
int y=5;
if(x++==6 & ++y==6){//邏輯與
    x= 11;
}
System.out.println("x="+x+",y="+y);//6 6

//2
int x= 5,y= 5;
if(x++==6 && ++y==6){
    x= 11;
}
System.out.println("x="+x+",y="+y);//6 5

//3
int x = 5,y = 5;
if(x++==5 | ++y==5){
    x =11;
}
System.out.println("x="+x+",y="+y);//11 6

//4
int x = 5,y = 5;
if(x++==5||++y==5){
    x =11;
}
System.out.println("x="+x+",y="+y);//11 5

賦值運算符

介紹

賦值運算符就是將某個運算後的值,賦給指定的變數。

賦值運算符的分類

基本賦值運算符 =

複合賦值運算符

​ +=, -=,*=, /=,%=等,重點講解一個 +=,其它的使用是一個道理

​ a+= b;[等價a=a+b;]

​ a -=b;[等價a=a-b;]

案例演示

int n1 = 10;
n1 += 4;// n1 = n1 +4;
System.out.println(n1); // 14
n1 /= 3;// n1 = n1/ 3;//4
System.out. println(n1); // 4
  1. 賦值基本案例[int num1 = 10]
  2. +=的使用案例

賦值運算符特點

  1. 運算順序從右往左int num = a +b +c;
  2. 賦值運算符的左邊只能是變數,右邊可以是變數、表達式、常量值
    int num = 20; int num2= 78*34 - 10; int num3 = a;
  3. 複合賦值運算符等價於下麵的效果
    比如:a+=3;等價於a=a+3;
  4. 複合賦值運算符會進行類型轉換。
    byte b = 2; b+=3; b++;
int n1 = 10;
n1 += 4;// n1 = n1 +4;
System.out.println(n1);// 14
n1 /= 3; // n1 = n1 / 3;//4
System. out.print1n(n1);// 4
//複合賦值運算符會進行類型轉換
byte b = 3;
b += 2;//等價b = (byte)(b+2);
b++;// b = (byte)(b+1);

三元運算符

基本語法
條件表達式?表達式1:表達式2;

  1. 如果條件表達式為true,運算後的結果是表達式1;

  2. 如果條件表達式為false,運算後的結果是表達式2;

●案例演示

int a= 10;
int b = 99;
int result =a<b ? a++:b--;
System.out.println ( "result=" + result);
System.out.println("a=" + a);//11
System.out.print1n( "b=" + b);//99

使用細節

  1. 表達式1和表達式2需要為可以賦給接收變數的類型(或可以自動轉換)

  2. 三元運算符可以轉成if--else語句
    int res = a >b ? a++:--b;

運算符優先順序

  1. 運算符有不同的優先順序,所謂優先順序就是表達式運算中的運算順序。如右表,上一行運算符總優先於下一行。
  2. 只有單目運算符、賦值運算符是從右向左運算的。
1 括弧 ()、[ ]、.
2 非、正,負號 !、+(正)、-(負)
3 自增,自減 ++、--
4 乘,除,取餘 *、/、%
5 加,減 +、-
6 移位運算 <<、>>、>>>
7 大小關係 <、<=、>、>=
8 相等關係 ==、!=
9 按位與 &
10 按位異或(在java中,這不是冪次方的符號) ^
11 按位或 |
12 邏輯與(短路與) &&
13 邏輯或(短路或) ||
14 條件運算(三目運算) ? :
15 賦值運算 =、+=、-=、*=、/=、%=
16 位賦值運算 &=、|=、^=、~=、<<=、>>=、>>>=

標識符的命名規則和規範

標識符概念

  1. Java 對各種變數、方法和類等命名時使用的字元序列稱為標識符
  2. 凡是自己可以起名字的地方都叫標識符int num1 I= 90;

標識符的命名規則(必須遵守)

  1. 由26個英文字母大小寫,0-9,或$組成
  2. 數字不可以開頭。int 3ab = 1;//錯誤
  3. 不可以使用關鍵字和保留字,但能包含關鍵字和保留字(l例如:aclasss)
  4. Java中嚴格區分大小寫,長度無限制。int totalNum = 10; int n = 90;
  5. 標識符不能包含空格。int a b = 90;

判斷下麵變數名是否正確

hsp //T
hsp12 //T
1hsp //F
h-s //F
x h //F
h$4 //T
class //F
int //F
double //F
public //F
static //F
goto //F
stu_name //F

標識符命名規範[更加專業]

  1. 包名:多單片語成時所有字母都小寫: aaa.bbb.ccc//比如com.hsp.crm
  2. 類名、介面名:多單片語成時,所有單詞的首字母大寫:XxxYyyZzz【大駝峰】
    比如:TankShotGame
  3. 變數名、方法名:多單片語成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz【小駝峰】
    比如:tankShotGame
  4. 常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ
    比如:定義一個所得稅率TAX_RATE
  5. 後面我們學習到類,包,介面,等時,我們的命名規範要這樣遵守,更加詳細的看文檔。

鍵盤輸入語句

介紹

在編程中,需要接收用戶輸入的數據,就可以使用鍵盤輸入語句來獲取。
需要一個掃描器((對象),就是 Scanner

步驟:

  1. 導入該類的所在包,java.util.*
  2. 創建該類對象(聲明變數)
  3. 調用裡面的功能

案例演示:

​ 要求:可以從控制台接收用戶信息,【姓名,年齡,薪水】。

import java.util.Scanner;//表示把java.util下的Scanner類導人
public class Input{
    //編寫一個main方法
    public static void main(Stringl]args){
        //演示接受用戶的輸入//步驟
        //Scanner類表示簡單文本掃描器,在java.util包
        //1.引入/導入Scanner類所在的包
        //2.創建Scanner 對象, new創建一個對象,體會
        //myScanner就是Scanner類的對象
        Scanner myScanner = new Scanner(System.in);
        //3.接收用戶輸入了,使用相關的方法
        System.out.print1n("請輸入名字");
        //當程式執行到 next方法時,會等待用戶輸入~~~
        String name = myScanner.next();//接收用戶輸入字元串System.out.println("請輸入年齡");
        int age = myScanner.nextInt();//接收用戶輸入intSystem.out.println("請輸入薪水");
        double sal = myScanner.nextDouble();//接收用戶輸入doubleSystem.out.println("人的信息如下:");
        System.out.println("名字"+name+“年齡=”+age +“薪水=” +sal);
    }
}

進位

進位介紹
對於整數,有四種表示方式:

  1. 二進位:0,1,滿2進1.以Ob或0B開頭。
  2. 十進位:0-9,滿10進1。
  3. 八進位:0-7,滿8進1。以數字0開頭表示。
  4. 十六進位:0-9及A(10)-F(15),滿16進1.以0x或0X開頭表示。此處的A-F不區分大小寫。

舉例說明

int n1 = 0b1010;
int n2 =1010;
int n3 = 01010;
int n4 = 0x10101;
System.out.println("n1=" + n1);
System.out.println("n2=" + n2);
System.out.print1n("n3=" + n3);
System.out.println("n4=" + n4);

進位的轉換(基本功)

進位轉換的介紹

第一組:

  1. 二進位轉十進位

    0b1011=1*20+1*21+0*22+1*23=11

  2. 八進位轉十進位

    0234=4*80+3*81+2*82=4+24+128=156

  3. 十六進位轉十進位

    0x23A=10*160+3*161+2*162=10+48+512=570

第二組:

  1. 十進位轉二進位

    34/2=17...............0
    17/2=8.................1
    8/2=4....................0
    4/2=2....................0
    2/2=1....................0

    0b100010

  2. 十進位轉八進位

    131/8=16..............3
    16/8=2...................0

    0203

  3. 十進位轉十六進位

    237/16=14...............13------->D
    14-------->E

    0XED

第三組

  1. 二進位轉八進位

    0b11010101=>11(3) 010(2) 101(5)=>0325

  2. 二進位轉十六進位

    0b11010101=>1101(D) 0101(5)=0xD5

第四組

  1. 八進位轉二進位

    0x0237=2(010)3(011)7(111)=0b10011111

  2. 十六進位轉二進位

    0x23B=2(0010)3(0011)B(1011)=0B1000111011

二進位在運算中的說明

  1. 二進位是逢2進位的進位制,0、1是基本算符。

  2. 現代的電子電腦技術全部採用的是二進位,因為它只使用0、1兩個數字元號,非常簡單方便,易於用電子方式實現。電腦內部處理的信息,都是採用二進位數來表示的。 二進位(Binary) 數用0和1兩個數字及其組合來表示任何數。進位規則是"逢2進1",數字1在不同的位上代表不同的值,按從右至左的次序,這個值以二倍遞增。

原碼、反碼、補碼(重點難點)

網上對原碼,反碼,補碼的解釋過於複雜,我這裡精簡幾句話:對於有符號的而言:

  1. 二進位的最高位是符號位:0表示正數, 1表示負數(口訣: 0->0 1-> -)

  2. 正數的原碼,反碼,補碼都一樣(三碼合一)

  3. 負數的反碼=它的原碼符號位不變,其它位取反(0->1,1->0)

  4. 負數的補碼=它的反碼+1,負數的反碼=負數的補碼-1

  5. 0的反碼,補碼都是0

  6. java沒有無符號數,換言之, java中的數都是有符號的

  7. 在電腦運算的時候,都是以補碼的方式來運算的.

  8. 當我們看運算結果的時候,要看他的原碼

位運算

java中有7個位運算(&、|、^、~、>>.<<和>>>)

√分別是按位與&、按位或|、按位異或^,按位取反~,它們的運算規則是:

按位與&:兩位全為1,結果為1,否則為0
按位或|:兩位有一個為1,結果為1,否則為0
按位異或^:兩位一個為0,一個為1,結果為1,否則為0
按位取反~:0->1,1->0 (在代碼中~是對補碼進行操作)
比如: 2&3=? ~-2 =? ~2=? 2|3=? 2^3=?

√完成前面的案例!

●還有3個位運算符>>、<<和>>>,運算規則:

  1. 算術右移>>:低位溢出,符號位不變,並用符號位補溢出的高位
  2. 算術左移<<;符號位不變,低位補0
  3. >>>邏輯右移也叫無符號右移,運算規則是:低位溢出,高位補0
  4. 特別說明:沒有<<<符號

●應用案例

int a=1>>2;//1=>000000|01=>本質1/2/2=0

int c=1<<2;//1=>0000001|00=>本質1*2*2=4
●完成前面的案例

建議:講解的即可,不用再深入。

本章習題

  1. 計算下列表達式的結果

    10/3= 3 ; 10/5 = 2 ; 10%2=0 ; -10.5%3 = ?;

    解析:

    //a % b當a是小數時,公式=a - (int)a / b * b
    //-10.5%3 = -10.5 -(-10)/3 * 3 = -10.5 +9 = -1.5
    //註意:有小數運算,得到結果是近似值

  2. 試說出下麵代碼的結果

    int i=66;
    System.out.println(++i+i);//執行i=i+1=>i=67 =>134

  3. 在Java中,以下賦值語句正確的是(C D)。

    A) int num1=(int)"18"; //錯誤應該Integer.parselnt("18");
    B) int num2=18.0; //錯誤double,-> int
    C) double num3=3d; //ok
    D)double num4=8; //ok int -> double
    E) int i=48; char ch = i+1; //錯誤int ->char
    F) byte b = 19; short s = b+2; //錯誤int ->short

4.試寫出將String轉換成double類型的語句,以及將char類型轉換成String的語句,舉例說明即可,寫簡單代碼

String str = "18.8";1/註意字元串要可以被轉成double
double d1 = Double.parseDouble(str);

char c1 ='韓";
String str2 = c1+ "";


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 寫在前面 前些天看了一本漫畫,裡面一個老技術人員的話,讓我不自覺的想到很多東西。 是啊,有時候我們自認為的自我實現,其實就是在湊這個時代的熱鬧,每個時代都有自己的熱鬧,個人之於時代不過是浪花一朵朵。 但這並不能作為我們不去湊這個熱鬧的理由,你去湊時代的這個熱鬧,這個時代必會給予你獎勵,或早或晚,或大 ...
  • 1、Linux常用命令 1.1、Linux命令初體驗 在日常使用過程當中經常使用到的命令有如下幾種 命令 對應英文 作用 ls [目錄名] list 查看當前目錄下的內容 pwd print work directory 查看當前所在目錄 cd [目錄名] change directory 切換目錄 ...
  • 導讀: 本文主要介紹了快手的精排模型實踐,包括快手的推薦系統,以及結合快手業務展開的各種模型實戰和探索,全文圍繞以下幾大方面展開: 快手推薦系統 CTR模型——PPNet 多domain多任務學習框架 短期行為序列建模 長期行為序列建模 千億特征,萬億參數模型 總結和展望 -- 01 快手推薦系統 ...
  • SQL的約束 概述 概念:約束是作用於表中欄位上的規則,用於限制存儲表中的數據; 目的:保證資料庫中數據的正確性、有效性、完整性; 常見的約束分類: 約束 描述 關鍵字 非空約束 限制該欄位的數據不能為null not null 唯一約束 保證該欄位的所有數據都是唯一的、不重覆的 unique 主鍵 ...
  • 自定義封裝分頁器組件之前需要知道的數據: 1.當前的頁碼 2.總共多少條數據 3.每頁展示多少條數據 4.連續頁碼數(5|7) 5.總頁數 計算連續頁碼數的起始值和結束值 //通過計算屬性來計算出來 computed:{ startNumAndEndNum(){ //首先先結構出我們需要的值(當前頁 ...
  • 定義指令的變化 根據vue3文檔的描述 https://v3.cn.vuejs.org/guide/migration/introduction.html#%E6%B8%B2%E6%9F%93%E5%87%BD%E6%95%B0 自定義指令的 API 已更改為與組件生命周期一致。 且 binding ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 在地圖開發過程中,坐標的轉換是很常用的功能,國內的話一般西安80(EPSG:4610)、北京54(EPSG:2433)轉WGS84比較多,不同坐標系轉換,只要知道EPSG碼,通過 Openlayers 的方法就可以轉換。 但是,像國內商用 ...
  • 樣才能拿到大廠的offer,沒有掌握絕對的技術,那麼就要不斷的學習 他是如何拿下阿裡等大廠的offer的呢,今天分享他的秘密武器,美團資深架構師整理的Java核心知識點,面試時面試官必問的知識點,篇章包括了很多知識點,其中包括了有基礎知識、Java集合、JVM、多線程併發、spring原理、微服務、 ...
一周排行
    -Advertisement-
    Play Games
  • 隨著Aspire發佈preview5的發佈,Microsoft.Extensions.ServiceDiscovery隨之更新, 服務註冊發現這個屬於老掉牙的話題解決什麼問題就不贅述了,這裡主要講講Microsoft.Extensions.ServiceDiscovery(preview5)以及如何 ...
  • 概述:通過使用`SemaphoreSlim`,可以簡單而有效地限制非同步HTTP請求的併發量,確保在任何給定時間內不超過20個網頁同時下載。`ParallelOptions`不適用於非同步操作,但可考慮使用`Parallel.ForEach`,儘管在非同步場景中謹慎使用。 對於併發非同步 I/O 操作的數量 ...
  • 1.Linux上安裝Docken 伺服器系統版本以及內核版本:cat /etc/redhat-release 查看伺服器內核版本:uname -r 安裝依賴包:yum install -y yum-utils device-mapper-persistent-data lvm2 設置阿裡雲鏡像源:y ...
  • 概述:WPF界面綁定和渲染大量數據可能導致性能問題。通過啟用UI虛擬化、非同步載入和數據分頁,可以有效提高界面響應性能。以下是簡單示例演示這些優化方法。 在WPF中,當你嘗試綁定和渲染大量的數據項時,性能問題可能出現。以下是一些可能導致性能慢的原因以及優化方法: UI 虛擬化: WPF提供了虛擬化技術 ...
  • 引言 上一章節介紹了 TDD 的三大法則,今天我們講一下在單元測試中模擬對象的使用。 Fake Fake - Fake 是一個通用術語,可用於描述 stub或 mock 對象。 它是 stub 還是 mock 取決於使用它的上下文。 也就是說,Fake 可以是 stub 或 mock Mock - ...
  • 為.net6在CentOS7上面做準備,先在vmware虛擬機安裝CentOS 7.9 新建CentOS764位的系統 因為CentOS8不更新了,所以安裝7;簡單就一筆帶過了 選擇下載好的操作系統的iso文件,下載地址https://mirrors.aliyun.com/centos/7.9.20 ...
  • 經過前面幾篇的學習,我們瞭解到指令的大概分類,如:參數載入指令,該載入指令以 Ld 開頭,將參數載入到棧中,以便於後續執行操作命令。參數存儲指令,其指令以 St 開頭,將棧中的數據,存儲到指定的變數中,以方便後續使用。創建實例指令,其指令以 New 開頭,用於在運行時動態生成並初始化對象。方法調用指... ...
  • LiteDB 是一個輕量級的嵌入式 NoSQL 資料庫,其設計理念與 MongoDB 類似,但它是完全使用 C# 開發的,因此與 C# 應用程式的集成非常順暢。與 SQLite 相比,LiteDB 提供了 NoSQL(即鍵值對)的數據存儲方式,並且是一個開源且免費的項目。它適用於桌面、移動以及 We ...
  • 1 開源解析和拆分文檔 第三方的工具去對文件解析拆分,去將我們的文件內容給提取出來,並將我們的文檔內容去拆分成一個小的chunk。常見的PDF word mark down, JSON、HTML。都可以有很好的一些模塊去把這些文件去進行一個東西去提取。 優勢 支持豐富的文檔類型 每種文檔多樣化選擇 ...
  • OOM是什麼?英文全稱為 OutOfMemoryError(記憶體溢出錯誤)。當程式發生OOM時,如何去定位導致異常的代碼還是挺麻煩的。 要檢查OOM發生的原因,首先需要瞭解各種OOM情況下會報的異常信息。這樣能縮小排查範圍,再結合異常堆棧、heapDump文件、JVM分析工具和業務代碼來判斷具體是哪 ...