主頁 > 軟體設計 > C語言中奇妙又有趣的符號——運算子(運算子)!C語言運算(操作)符最全集合(建議收藏)

C語言中奇妙又有趣的符號——運算子(運算子)!C語言運算(操作)符最全集合(建議收藏)

2021-08-06 08:07:15 軟體設計

內容導讀

  • 1.C語言運算子
    • 1.1運算子概述
    • 1.2運算子分類
    • 1.3運算子優先級
  • 2.C語言運算子超全總結
    • 2.1算數運算子
    • 2.2關系運算子
    • 2.3邏輯運算子
    • 2.4位運算子
    • 2.5賦值運算子
    • 2.6條件運算子
    • 2.7逗號運算子
    • 2.8指標運算子
    • 2.9求位元組運算子
    • 2.10強制型別轉換運算子
    • 2.11成員運算子
    • 2.12下標運算子
    • 2.13其他運算子
  • 3.C語言中的運算式
    • 3.1關系,邏輯,條件運算式
    • 3.2隱式型別轉換和算術轉換
      • 3.2.1隱式型別轉換
      • 3.2.2算術轉換

前面的話:

作者水平很有限,如果發現錯誤,一定要及時告知作者哦!感謝感謝!
博主的碼云gitee,平常博主寫的程式代碼都在里面,

1.C語言運算子

1.1運算子概述

C語言運算子是說明特定操作的符號 ,所以它也被稱作為運算子,它是構造C語言運算式的工具 ,C語言的運算例外豐富,除了控制陳述句和輸入輸出以外的幾乎所有的基本操作都為運算子處理,除了常見的三大類,算術運算子、關系運算子與邏輯運算子之外,還有一些用于完成特殊任務的運算子,比如位運算子,

1.2運算子分類

在這里插入圖片描述

1.3運算子優先級

優先級一共可以劃分為15級,1級優先級最高,15級優先級最低,
在這里插入圖片描述

同一優先級的運算子,運算次序由結合方向所決定,

2.C語言運算子超全總結

2.1算數運算子

+:加法
-:減法
*:乘法
/:除法
%:取模(求余數)
++:自增運算,i++++i都相當于i=i+1,但是i++先使用再++,++i是先++再使用,
--:自減運算,用法和++相同,

  1. 除了 % 運算子之外,其他的幾個運算子可以作用于整數和浮點數,
  2. 對于 / 運算子如果兩個運算元都為整數,執行整數除法,而只要有浮點數執行的就是浮點數除法,
  3. % 運算子的兩個運算元必須為整數,回傳的是整除之后的余數,

OJ例題1:
💡BC17 計算運算式的值

描述
請計算運算式“(-8+22)×a-10+c÷2”,其中,a = 40,c = 212,
輸入描述:
無,
輸出描述:
(-8+22)×a-10+c÷2計算之后的結果,為一個整數,

#include <stdio.h>
int main(){
    int a = 40,c = 212,b = 0;
    b=(-8+22)*a-10+c/2;
    printf("%d",b);
    return 0;
}

OJ例題2:
💡BC18 計算帶余除法

描述
給定兩個整數a和b (-10,000 < a,b < 10,000),計算a除以b的整數商和余數,
輸入描述:
一行,包括兩個整數a和b,依次為被除數和除數(不為零),中間用空格隔開,
輸出描述:
一行,包含兩個整數,依次為整數商和余數,中間用一個空格隔開,

輸入:
15 2
輸出:
7 1
#include <stdio.h>
int main(){
    int a=0,b=0,c=0,d=0;
    scanf("%d %d",&a,&b);
    c=a/b;
    d=a%b;
    printf("%d %d",c,d);
    return 0;
}

OJ例題3:
💡BC27 計算球體的體積

描述
給定一個球體的半徑,計算其體積,其中球體體積公式為 V = 4/3*πr3,其中 π= 3.1415926,
輸入描述:
一行,用浮點數表示的球體的半徑,
輸出描述:
一行,球體的體積,小數點后保留3位,

輸入:
3.0
輸出:
113.097
#include <stdio.h>
int main(){
    double V=0,r=0,pi=3.1415926;
    scanf("%lf",&r);
    V=4.0/3*pi*pow(r,3);
    printf("%.3lf",V);
    return 0;
}

OJ例題4:
💡BC129 小樂樂計算函式
在這里插入圖片描述

輸入:
1 2 3
輸出:
0.30
#include <stdio.h>

int max_3(int a, int b, int c)
{
    int max = 0;
    if (a > max)
        max = a;
    if (b > max)
        max = b;
    if (c > max)
        max = c;
    return max;
}
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    double m = 0;
    scanf("%d%d%d",&a,&b,&c);
    int m1 = max_3(a + b, b, c);
    int m2 = max_3(a, b + c, c);
    int m3 = max_3(a, b, b + c);
    m = 1.0*m1 / (m2 + m3);
    printf("%.2lf\n",m);
    return 0;
}

2.2關系運算子

>:大于
<:小于
== :等于
>= :大于等于
<= :小于等于
!=:不等于
這些運算子用來構成關系運算式,用來做if分支陳述句或者回圈陳述句的運算式,
OJ例題:
💡BC49 判斷兩個數的大小關系

描述
KiKi想知道從鍵盤輸入的兩個數的大小關系,請編程實作,
輸入描述:
題目有多組輸入資料,每一行輸入兩個整數(范圍(1 ~231-1),用空格分隔,
輸出描述:
針對每行輸入,輸出兩個整數及其大小關系,數字和關系運算子之間沒有空格,詳見輸入輸出樣例,

在這里插入圖片描述

#include <stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    while(scanf("%d %d",&a,&b) != EOF)
    {
        if (a == b)
        {
            printf("%d=%d\n",a,b);
        }
        else if (a > b)
        {
            printf("%d>%d\n",a,b);
        }
        else
        {
            printf("%d<%d\n",a,b);
        }
    }
    return 0;
}

2.3邏輯運算子

!:邏輯非,
&&:邏輯與,兩個條件都為真運算式才為真,
||:邏輯或,兩個條件都為假運算式才為假,
用于構成邏輯運算式,在分支陳述句和回圈陳述句用的多,
OJ例題:
💡BC51 三角形判斷

描述
KiKi想知道已經給出的三條邊a,b,c能否構成三角形,如果能構成三角形,判斷三角形的型別(等邊三角形、等腰三角形或普通三角形),
輸入描述:
題目有多組輸入資料,每一行輸入三個a,b,c(0<a,b,c<1000),作為三角形的三個邊,用空格分隔,
輸出描述:
針對每組輸入資料,輸出占一行,如果能構成三角形,等邊三角形則輸出“Equilateral triangle!”,等腰三角形則輸出“Isosceles triangle!”,其余的三角形則輸出“Ordinary triangle!”,反之輸出“Not a triangle!”,

提示:所有的三角形都要滿足兩邊之和大于第三邊,

輸入:
2 3 2
3 3 3
輸出:
Isosceles triangle!
Equilateral triangle!
#include <stdio.h>
int main()
{
    int a = 0;
    int b = 0;
    int c = 0;
    while(scanf("%d %d %d",&a,&b,&c) != EOF)
    {
        if ((a + b >c) && (b + c > a) && (a + c > b))
        {
            if ((a == b) && (b == c))
                printf("Equilateral triangle!\n");
            else if ((a == b ) || (a == c) || (b == c))
                printf("Isosceles triangle!\n");
            else
                printf("Ordinary triangle!\n");
        }
        else
        {
            printf("Not a triangle!\n");
        }
    }
    return 0;
}

2.4位運算子

<<:左移
整數在計算機中儲存的是他的二進制補碼,<<能夠將它的二進制序列左移,末位使用0補齊,

運算元 << 移動位數

比如數字2,補碼為
0000 0000 0000 0000 0000 0000 0000 0010
2<<1運算后,得
0000 0000 0000 0000 0000 0000 0000 0100
為數字4
>>:右移
整數在計算機中儲存的是他的二進制補碼,>>能夠將它的二進制序列右移,如果為算術右移則負數首位補1,正數首位補0,如果為邏輯右移,首位通通補0,至于是算術右移還是邏輯右移,不同編譯器不同,VS2019為算術右移,

運算元 >> 移動位數

比如-1,原碼為
1000 0000 0000 0000 0000 0000 0000 0001
取反,得
1111 1111 1111 1111 1111 1111 1111 1110
1,得補碼
1111 1111 1111 1111 1111 1111 1111 1111
-1>>1運算后得
算術右移
1111 1111 1111 1111 1111 1111 1111 1111
邏輯右移
0111 1111 1111 1111 1111 1111 1111 1111
按VS2019算術右移轉化為原碼得
1000 0000 0000 0000 0000 0000 0000 0001
為數字-1
~:按位取反,將一個數二進制序列每位都取反,

~運算元

比如數字3,補碼為
0000 0000 0000 0000 0000 0000 0000 0011
~3運算后得
1111 1111 1111 1111 1111 1111 1111 1100
為一個負數,先將補碼還原成原碼
1,得
1111 1111 1111 1111 1111 1111 1111 1011
除最高位取反
1000 0000 0000 0000 0000 0000 0000 0100
為數字-4
|:按位或,對兩個數的二進制序列每位比較都為0則為0,否則為1

運算元 | 運算元

比如2 | 3
0000 0000 0000 0000 0000 0000 0000 0010
0000 0000 0000 0000 0000 0000 0000 0011
結果為
0000 0000 0000 0000 0000 0000 0000 0011
為數字3
^:按位異或,對兩個數的二進制序列每位比較不相同為1,否則為0

運算元 ^ 運算元

比如2 ^ 3
0000 0000 0000 0000 0000 0000 0000 0010
0000 0000 0000 0000 0000 0000 0000 0011
結果為
0000 0000 0000 0000 0000 0000 0000 0001
為數字1
&:按位與,對兩個數的二進制序列每位比較都為1則為1,否則為0

運算元 & 運算元

比如2 & 3
0000 0000 0000 0000 0000 0000 0000 0010
0000 0000 0000 0000 0000 0000 0000 0011
結果為
0000 0000 0000 0000 0000 0000 0000 0010
為數字2
上面幾種運算子的操作物件必須為整數,

#include <stdio.h>

int main()
{
	printf("%d\n", 2 << 1); //4,2左移1位
	printf("%d\n", -1 >> 1);//-1,-1算術右移一位
	printf("%d\n", ~ 3);//-4,對3按位取反
	printf("%d\n", 2 | 3);//3,2|3
	printf("%d\n", 2 ^ 3);//1,2^3
	printf("%d\n", 2 & 3);//2,2&3

	return 0;
}

在這里插入圖片描述
OJ例題:
💡BC29 2的n次方計算

描述
不使用累計乘法的基礎上,通過移位運算(<<)實作2的n次方的計算,
輸入描述:
多組輸入,每一行輸入整數n(0 <= n < 31),
輸出描述:
針對每組輸入輸出對應的2的n次方的結果,

輸入:
2
10
輸出:
4
1024
#include <stdio.h>
int main(){
    int a=0;
    while(scanf("%d",&a) != EOF){
        printf("%d\n",1<<a);
    }
    return 0;
}

2.5賦值運算子

=:賦值,比如a = 2a = c
復合賦值運算子:+= -= /= *= %= <<= >>= |= &= ^=
a += 2相當于a = a + 2,其他的以此類推,

OJ例題:
💡BC20 kiki算數

描述
問題:KiKi今年5歲了,已經能夠認識100以內的非負整數,并且并且能夠進行 100 以內的非負整數的加法計算,不過,BoBo老師發現KiKi在進行大于等于100的正整數的計算時,規則如下:

  1. 只保留該數的最后兩位,例如:對KiKi來說1234等價于34;
  2. 如果計算結果大于等于 100, 那么KIKI也僅保留計算結果的最后兩位,如果此兩位中十位為0,則只保留個位,
    例如:45+80 = 25
    要求給定非負整數 a和 b,模擬KiKi的運算規則計算出 a+b 的值,

輸入描述:
一行,輸入兩個非負整數a和b,用一個空格分隔,(0 <= a,b<= 231-1),
輸出描述:
針對每組輸入,輸出按照KiKi的運算規則計算出 a+b 的值,

輸入:
45 80
輸出:
25
#include <stdio.h>
int main(){
    int a=0,b=0,sum=0;
    scanf("%d %d",&a,&b);
    a%=100;
    b%=100;
    sum=a+b;
    if(sum>=100)
        sum%=100;
    printf("%d",sum);
    return 0;
}

2.6條件運算子

? ::條件運算子,也被稱為三目運算子,C語言中唯一一個三目運算子,

if (a > b)
	return a;
else
	return b;
//相當于
a > b ? a : b;

2.7逗號運算子

,:逗號運算子,就是用逗號隔開的多個運算式,從左向右依次執行,整個運算式的結果是最后一個運算式的結果,

int main()
{
	int a = 3;
	int b = 2;
	int c = 6;
	int d = (a + b, b + c, a + c);//從左至右依次進行,d的值為最后一個運算式結果,也就是9
	return 0;
}

2.8指標運算子

*:解參考運算子,用于訪問一個指標所指向空間內的資料,
&:取地址運算子,用于得到一個資料或資料型別的地址,

#include <stdio.h>

int main()
{
	int a = 68;
	int* pa = &a;
	printf("%p\n", pa);
	printf("%d\n", *pa);
	printf("%d\n", a);
	return 0;
}

在這里插入圖片描述

2.9求位元組運算子

sizeof:用來計算一個資料或資料型別所占位元組大小,

#include <stdio.h>

int main()
{
	int a = 9;
	double pi = 3.14;
	char c = "w";
	float b = 2.3f;
	int* pa = &a;
	char* pc = &c;
	double* ppi = &pi;
	printf("%d\n", sizeof(int));
	printf("%d\n", sizeof(a));
	printf("%d\n", sizeof(double));
	printf("%d\n", sizeof(pi));
	printf("%d\n", sizeof(char));
	printf("%d\n", sizeof(c));
	printf("%d\n", sizeof(float));
	printf("%d\n", sizeof(b));
	printf("%d\n", sizeof(int*));
	printf("%d\n", sizeof(double*));
	printf("%d\n", sizeof(char*));
	printf("%d\n", sizeof(ppi));
	printf("%d\n", sizeof(pc));
	return 0;
}

在這里插入圖片描述

2.10強制型別轉換運算子

(資料型別):將一個資料強制轉換成想要的資料型別,
比如

int a = 6;
double b = 3.14;
int c = (int) b;
double d = (double) a;
a = (double) a;//6.000000
b = (int) b;//3

2.11成員運算子

.:訪問結構體成員,結構體.成員名
->:訪問結構體成員,結構體指標 -> 成員名

#include <stdio.h>

struct Book
{
	char book_name[40];
	int book_price;
	char book_id[20];
};
int main()
{
	struct Book C = { "C語言運算子詳解" ,49, "9635419049866812" };
	printf("%s\n", C.book_name);
	printf("%s\n", (&C)->book_name);
	printf("%d\n", C.book_price);
	printf("%d\n", (&C)->book_price);
	printf("%s\n", C.book_id);
	printf("%s\n", (&C)->book_id);

	return 0;
}

在這里插入圖片描述

2.12下標運算子

[ ]:作為陣列下標,可以用來訪問陣列元素,

#include <stdio.h>

int main()
{
	int a[10] = { 1,2,3,4,5,6,7,8,9,0 };
	int i = 0;
	for (i = 0; i < 10; i++)
	{
		printf("%d ", a[i]);//[]作為下標,訪問陣列元素

	}
	return 0;
}

在這里插入圖片描述

2.13其他運算子

如函式呼叫符( ),

printf("%...", ...);
scanf("%...", &...);
//等等

3.C語言中的運算式

3.1關系,邏輯,條件運算式

具體內容見博主另一篇文章:C語言的選擇與輪回——選擇結構與回圈結構的1.3運算式部分,

3.2隱式型別轉換和算術轉換

3.2.1隱式型別轉換

C的整型算術運算總是至少以預設整型型別的精度來進行的,
為了獲得這個精度,運算式中的字符和短整型運算元在使用之前被轉換為普通整型,這種轉換稱為整型提升
整型提升的意義:
運算式的整型運算要在CPU的相應運算器件內執行,CPU內整型運算器(ALU)的運算元的位元組長度一般就是int的位元組長度,同時也是CPU的通用暫存器的長度,
因此,即使兩個char型別的相加,在CPU執行時實際上也要先轉換為CPU內整型運算元的標準長度,通用CPU(general-purpose CPU)是難以直接實作兩個8位元位元組直接相加運算(雖然機器指令中可能有這種位元組相加指令),所以,運算式中各種長度可能小于int長度的整型值,都必須先轉 換為int或unsigned int,然后才能送入CPU去執行運算,

整形提升是按照變數的資料型別的符號位來提升的
//負數的整形提升 
char c1 = -1; 
變數c1的二進制位(補碼)中只有8個位元位: 
1111111 
因為 char 為有符號的 char 
所以整形提升的時候,高位補充符號位,即為1 
提升之后的結果是: 
11111111111111111111111111111111 
//正數的整形提升 
char c2 = 1; 
變數c2的二進制位(補碼)中只有8個位元位: 
00000001 
因為 char 為有符號的 char 
所以整形提升的時候,高位補充符號位,即為0 
提升之后的結果是: 
00000000000000000000000000000001 
//無符號整形提升,高位補0 

3.2.2算術轉換

如果某個運算子的各個運算元屬于不同的型別,那么除非其中一個運算元的轉換為另一個運算元的型別,否則操作就無法進行,下面的層次體系稱為尋常算術轉換,也稱自動型別轉換

如果一個運算子兩側的資料型別不同,則先自動進行型別轉換,使二者成為同一種型別,然后進行運算,整型、實型、字符型資料間可以進行混合運算,規律為:

💡+、-、*、/運算的兩個數中有一個數為float或double型,結果是double型,因為系統將所有float型資料都先轉換為double型,然后進行運算,
💡如果int型與float或double型資料進行運算,先把int型和float型資料轉換為double型,然后進行運算,結果是double型,
💡字符(char)型資料與整型資料進行運算,就是把字符的ASCII代碼與整型資料進行運算,如果字符型資料與實型資料進行運算,則將字符的ASCII代碼轉換為double型資料,然后進行運算 ,

如果賦值運算子兩側的型別一致,則直接進行賦值,
如果賦值運算子兩側的型別不一致,但都是基本型別時,在賦值時要進行型別轉換,型別轉換是由系統自動進行的,轉換的規則是:

💡將浮點型資料(包括單、雙精度)賦給整型變數時,先對浮點數取整,即舍棄小數部分,然后賦予整型變數,存在精度丟失,
💡將整型資料賦給單、雙精度變數時,數值不變,但以浮點數形式存盤到變數中,
💡將一個double型資料賦給float變數時,先將雙精度數轉換為單精度,即只取6~7位有效數字,存盤到float型變數的4個位元組中,應注意雙精度數值的大小不能超出float型變數的數值范圍;將一個float型資料賦給double型變數時,數值不變,在記憶體中以8個位元組存盤,有效位數擴展到15位,
💡字符型資料賦給整型變數時,將字符的ASCII代碼賦給整型變數,
💡將一個占位元組多的整型資料賦給一個占位元組少的整型變數或字符變數時,只將其低位元組原封不動地送到被賦值的變數(即發生“截斷”),

覺得文章寫得不錯的老鐵們,點贊評論關注走一波!謝謝啦!

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/292087.html

標籤:其他

上一篇:一道經典面試題講解 :陣列越界而沒報錯 ,卻出現死回圈 ?(C語言)

下一篇:【從零開始學c++之STL】——vector的介紹和使用

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 面試突擊第一季,第二季,第三季

    第一季必考 https://www.bilibili.com/video/BV1FE411y79Y?from=search&seid=15921726601957489746 第二季分布式 https://www.bilibili.com/video/BV13f4y127ee/?spm_id_fro ......

    uj5u.com 2020-09-10 05:35:24 more
  • 第三單元作業總結

    1.前言 這應該是本學期最后一次寫作業總結了吧。總體來說,對作業的節奏也差不多掌握了,作業做起來的效率也更高了。雖然和之前的作業一樣,作業中都要用到新的知識,但是相比之前,更加懂得了如何利用工具以及資料。雖然之間卡過殼,但總體而言,這幾次作業還算完成的比較好。 2.作業程序總結 相比前兩個單元,此單 ......

    uj5u.com 2020-09-10 05:35:41 more
  • 北航OO(2020)第四單元博客作業暨課程總結博客

    北航OO(2020)第四單元博客作業暨課程總結博客 本單元作業的架構設計 在本單元中,由于UML圖具有比較清晰的樹形結構,因此我對其中需要進行查詢操作的元素進行了包裝,在樹的父節點中存盤所有孩子的參考。考慮到性能問題,我采用了快取機制,一次查詢后盡可能快取已經遍歷過的資訊,以減少遍歷次數。 本單元我 ......

    uj5u.com 2020-09-10 05:35:48 more
  • BUAA_OO_第四單元

    一、UML決議器設計 ? 先看下題目:第四單元實作一個基于JDK 8帶有效性檢查的UML(Unified Modeling Language)類圖,順序圖,狀態圖分析器 MyUmlInteraction,實際上我們要建立一個有向圖模型,UML中的物件(元素)可能與同級元素連接,也可與低級元素相連形成 ......

    uj5u.com 2020-09-10 05:35:54 more
  • 6.1邏輯運算子

    邏輯運算子 1. && 短路與 運算式1 && 運算式2 01.運算式1為true并且運算式2也為true 整體回傳為true 02.運算式1為false,將不會執行運算式2 整體回傳為false 03.只要有一個運算式為false 整體回傳為false 2. || 短路或 運算式1 || 運算式2 ......

    uj5u.com 2020-09-10 05:35:56 more
  • BUAAOO 第四單元 & 課程總結

    1. 第四單元:StarUml檔案決議 本單元采用了圖模型決議UML。 UML檔案可以抽象為圖、子圖、邊的邏輯結構。 在實作中,圖的節點包括類、介面、屬性,子圖包括狀態圖、順序圖等。 采用了三次遍歷UML元素的方法建圖,第一遍遍歷建點,第二、三次遍歷設定屬性、連邊,實作圖物件的初始化。這里借鑒了一些 ......

    uj5u.com 2020-09-10 05:36:06 more
  • 談談我對C# 多型的理解

    面向物件三要素:封裝、繼承、多型。 封裝和繼承,這兩個比較好理解,但要理解多型的話,可就稍微有點難度了。今天,我們就來講講多型的理解。 我們應該經常會看到面試題目:請談談對多型的理解。 其實呢,多型非常簡單,就一句話:呼叫同一種方法產生了不同的結果。 具體實作方式有三種。 一、多載 多載很簡單。 p ......

    uj5u.com 2020-09-10 05:36:09 more
  • Python 資料驅動工具:DDT

    背景 python 的unittest 沒有自帶資料驅動功能。 所以如果使用unittest,同時又想使用資料驅動,那么就可以使用DDT來完成。 DDT是 “Data-Driven Tests”的縮寫。 資料:http://ddt.readthedocs.io/en/latest/ 使用方法 dd. ......

    uj5u.com 2020-09-10 05:36:13 more
  • Python里面的xlrd模塊詳解

    那我就一下面積個問題對xlrd模塊進行學習一下: 1.什么是xlrd模塊? 2.為什么使用xlrd模塊? 3.怎樣使用xlrd模塊? 1.什么是xlrd模塊? ?python操作excel主要用到xlrd和xlwt這兩個庫,即xlrd是讀excel,xlwt是寫excel的庫。 今天就先來說一下xl ......

    uj5u.com 2020-09-10 05:36:28 more
  • 當我們創建HashMap時,底層到底做了什么?

    jdk1.7中的底層實作程序(底層基于陣列+鏈表) 在我們new HashMap()時,底層創建了默認長度為16的一維陣列Entry[ ] table。當我們呼叫map.put(key1,value1)方法向HashMap里添加資料的時候: 首先,呼叫key1所在類的hashCode()計算key1 ......

    uj5u.com 2020-09-10 05:36:38 more
最新发布
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:20:47 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:20:25 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:20:17 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:20:10 more
  • 【中介者設計模式詳解】C/Java/JS/Go/Python/TS不同語言實作

    * 中介者模式是一種行為型設計模式,它可以用來減少類之間的直接依賴關系,
    * 將物件之間的通信封裝到一個中介者物件中,從而使得各個物件之間的關系更加松散。
    * 在中介者模式中,物件之間不再直接相互互動,而是通過中介者來中轉訊息。 ......

    uj5u.com 2023-04-20 08:19:44 more
  • 露天煤礦現場調研和交流案例分享

    他們集團的資訊化公司及研究院在一個礦區正在做智能礦山的統一平臺的 試點,專案投資大概1億,包括了礦山的各方面的內容,顯示得我們這次交流有點多余。他們2年前開始做智能礦山的規劃,有很多煤礦行業專家的加持,他們的描述是非常完美,但是去年底應該上線的平臺,現在還沒有看到影子。他們確實有很多場景需求,但是被... ......

    uj5u.com 2023-04-20 08:19:07 more
  • 《社區人員管理》實戰案例設計&個人案例分享

    設計是一個讓人夢想成真程序,開始編碼、測驗、除錯之前進行需求分析和架構設計,才能保證關鍵方面都做正確 ......

    uj5u.com 2023-04-20 08:18:57 more
  • 軟體架構生態化-多角色交付的探索實踐

    作為一個技術架構師,不僅僅要緊跟行業技術趨勢,還要結合研發團隊現狀及痛點,探索新的交付方案。在日常中,你是否遇到如下問題 “ 業務需求排期長研發是瓶頸;非研發角色感受不到研發技改提效的變化;引入ISV 團隊又擔心質量和安全,培訓周期長“等等,基于此我們探索了一種新的技術體系及交付方案來解決如上問題。 ......

    uj5u.com 2023-04-20 08:18:49 more
  • 05單件模式

    #經典的單件模式 public class Singleton { private static Singleton uniqueInstance; //一個靜態變數持有Singleton類的唯一實體。 // 其他有用的實體變數寫在這里 //構造器宣告為私有,只有Singleton可以實體化這個類! ......

    uj5u.com 2023-04-19 08:42:51 more
  • 【架構與設計】常見微服務分層架構的區別和落地實踐

    軟體工程的方方面面都遵循一個最基本的道理:沒有銀彈,架構分層模型更是如此,每一種都有各自優缺點,所以請根據不同的業務場景,并遵循簡單、可演進這兩個重要的架構原則選擇合適的架構分層模型即可。 ......

    uj5u.com 2023-04-19 08:42:41 more