主頁 > 後端開發 > Java SE基礎語法知識點 (C語言快速轉Java)

Java SE基礎語法知識點 (C語言快速轉Java)

2022-01-02 08:33:00 後端開發

目錄

1、Java程式基礎

1.1 JDK和JRD

1.2 命令列操作

1.3 pubilic+class

1.4 位元組碼檔案

2、識別符號

2.1 識別符號的組成

2.2 遵守駝峰命名方式

2.3 類名、介面名:

2.4 變數名、方法名:

2.5 常量名:

3、關鍵字

4、變數與常量

4.1 變數

4.2 常量

5、boolean型別

5.1 布爾型別的值

5.2 布爾型別占用的位元組數

5.3 布爾型別的底層表示和定義

6、byte型別

7、char型別

7.1 char型別占有位元組數

7.2 char型別與short型別

8、float型別與double型別

9、型別轉換

10、類的定義

10.1 語法結構

10.2 基本資料型別

10.3 參考資料型別

11、邏輯運算子(布爾運算子)

11.1 邏輯與&

11.2 短路與&&

12、運算子

12.1 賦值運算子

12.2 字串連接運算子

12.3 三元運算子/三目運算子/條件運算子

13、用戶控制端輸入

13.1 Scanner類中的方法

13.2 System.in和System.out方法

13.3 InputStreamReader和BufferedReader方法

13.4 nextLine( )和next( )的區別

14、方法

14.1 方法的定義,語法結構

14.2 方法在執行程序中,JVM記憶體的分配和變化

14.3 堆疊記憶體的特點

15、方法執行記憶體分析

16、方法多載(overload)

16.1 什么時候考慮使用方法多載?

16.2 構成方法多載的條件

16.3 方法多載的影響因素

16.4 方法多載的應用

17、方法遞回


1、Java程式基礎

1.1 JDK和JRD

JDK=JRE+Java開發工具;

JRD=JVM+Java核心類別庫;

1.2 命令列操作

cd md創建檔案目錄;

cd rd洗掉;

cd del刪檔案;

cd ..回傳上一級;

cd /跳轉目錄;

1.3 pubilic+class

類名-->與檔案名一致;

1.4 位元組碼檔案

編譯后生成位元組碼檔案(.class)有幾個類生成幾個;


2、識別符號

2.1 識別符號的組成

數字、字母、下劃線、美元符號(可以是中文),

與C語言相同首字符不能以數字開頭;

與C語言相比,識別符號的組成多了一個美元符號;

2.2 遵守駝峰命名方式

e.g. SytemService、UserService;

2.3 類名、介面名:

首字母大寫,后面每個單詞首字母大寫;

2.4 變數名、方法名:

首字母小寫,后面每個單詞首字母大寫;

2.5 常量名:

全部大寫;

//與C語言的常量不同 字面值(資料)看見字知其資料;

e.g.10.100,3.14,"abc",'a',ture、false(布爾型);


3、關鍵字

關鍵字要小寫

public、class、static、void......


4、變數與常量

4.1 變數

Java中變數必須宣告再賦值才能訪問(否則記憶體未開辟出來);

變數必須初始化

4.2 常量

常量有final關鍵字修飾;


5、boolean型別

5.1 布爾型別的值

boolean型別只有ture false 沒有其他值;

5.2 布爾型別占用的位元組數

boolen型別只占用1個位元組;

5.3 布爾型別的底層表示和定義

不像C語言有0、1表示假和真;

底層false為0,ture為1;

定義:boolean i = true;


6、byte型別

byte型別表示8位帶符號的二進制數


7、char型別

7.1 char型別占有位元組數

char型別在java中占2個位元組

7.2 char型別與short型別

char和short可表示的種類數量相同,但char可取更大的正整數;


8、float型別與double型別

java中無float型別,定義float型別時,在浮點數后+f

否則認為是double型別,編譯失敗;


9、型別轉換

1、布爾型別無法強制轉換;

2、Java:高精度賦值給低精度時需要強制轉換,否則編譯錯誤,顯示不兼容的型別,高精度到低精度會造成損失精度;e.g.long-->int

3、C語言:高精度賦值給低精度時,會有精度缺失,但不會造成編譯失敗;

4、Java和C語言:低精度賦值給高精度(小容量-->大容量) 自動轉換不存在精度損失;e.g. int-->long

5、當整數字面值未超過byte、short、char的取值范圍可以直接賦值給byte、short、char;

6、byte、short、char混合運算時,先各自轉換成int;

byte b=10;
b=b+5;
System.out.println(b);

編譯報錯,因為(b+5自動轉換成了int型別,所以要想通過編譯,需要加強制轉換)

byte b=10;
b=(byte)(b+5);
System.out.println(b);

7、多種資料型別混合運算時,先轉換成容量最大的型別;

8、long型別在后面+'L',long 10L,L用來判斷是否為long型別;

9、float表示離散、有限、舍入誤差、大約、接近不等于、0.1!=0.1,c=c+1;

需要完全避免用浮點數比較大小;

10、

int i = 128;
byte b=(byte) i;

輸出為-127(因為有溢位);

11、JDK新特性

數字之間可以用下劃線分隔,更清楚分辨位數;

e.g.10_0000_0000


10、類的定義

10.1 語法結構

[修飾符串列] class 類名{

}

String不屬于基本資料型別,是一個字串型別,也是一個參考型別;

參考資料型別還包括:類,介面,陣列;

String是SUN在JavaSE中提供的字串型別;

String.class位元組碼檔案;

重點:

1、屬性通常是采用一個變數的形式來完成定義的;

2、在類體當中,方法體之外定義的變數被稱為"成員變數",成員變數沒有賦值,系統賦默認值:一切向0看齊;

10.2 基本資料型別

byte、short、int、long、float、double、boolean、char;

10.3 參考資料型別

String.class SUN提供的;

System.class SUN提供的;

Student.class 程式員自定義的(是一個類,型別,參考資料型別);


11、邏輯運算子(布爾運算子)

& 邏輯與

| 邏輯或

!邏輯非(取反)

^ 邏輯異或(兩邊的算子只要不一樣,結果就是ture)

&& 短路與

|| 短路或

1、邏輯運算子要求兩邊的算子都是布爾型別,并且邏輯運算子最終的運算結果也是一個布爾型別;

2、“短路與(或)”和“邏輯與(或)”最終的結果相同,只不過“短路與(或)”存在短路現象

11.1 邏輯與&

&左邊無論是true還是flase都會計算右邊;

int x=10;
int y=8;
System.out.println(x < y & ++x < y);
System.out.println(x);

運行結果為11

11.2 短路與&&

&&左邊若為false則直接短路,右邊不再計算(短路現象);

int x=10;
int y=8;
System.out.println(x < y && ++x < y);
System.out.println(x);

運行結果為10

從某個角度來看,短路與更智能,效率更高;


12、運算子

12.1 賦值運算子

+=、-=、*=、/=、%=;

byte、short、char混合運算時,先各自轉換成int;

byte b=10;
b=b+5;
System.out.println(b);

編譯報錯,(b+5自動轉換成了int型別,所以要想通過編譯,需要加強制轉換或者使用b+=5)

byte b=10;
b=(byte)(b+5);
b+=5;
System.out.println(b);

以上述例子為例

b+=5和b=b+5并不等同;

b+=5與b=(byte)(b+5)是等同的;

結論:

擴展類的賦值運算子不改變運算結果型別,假設最初這個變數的型別是byte型別,無論怎么進行追加或追減,最終該變數的資料型別還是byte型別,但有可能會損失;

12.2 字串連接運算子

關于java中"+"運算子:

1、+運算子在java語言當中有兩個作用:

*加法運算,求和;

*字串的連接運算;

2、"+"兩邊的資料都是數字的話一定是加法運算;

3、"+"兩邊的資料只要有一個資料是字串,一定會進行字串的連接運算,連接運算之后的結果還是一個字串型別

靜態輸出

e.g.System.out.println(10+20);//30

System.out.println(10+20+"30");//"3030"

System.out.println(10+(20+"30");//"102030"

System.out.println("10+20="+a+b);

"10+20="是字串;

"10+20="+a先運算字串+a等于個字串"10+20=10";

"10+20="+a+b再運算+b等于個字串"10+20=1020";

System.out.println("10+20="+(a+b));

此時先運算(a+b)=30,在進行字串"10+20="+30="10+20=30";

動態輸出

System.out.println(a+"+"+b+"="+(a+b));

12.3 三元運算子/三目運算子/條件運算子

e.g.1

10,'男'不是一個完整的java陳述句;

boolean sex=false;
sex ? '男' : '女';

編譯會報錯;

修改如下:

boolean sex=false;
char c = sex ? '男' : '女';
System.out.println(c);

e.g.2

boolean sex=false;
char c = sex ? "男" : '女';
System.out.println(c);

編譯報錯,型別不兼容,但可以直接用

System.out.println(sex ? "男" : '女');

13、用戶控制端輸入

第一步:創建鍵盤掃描器物件

java.util.scanner s = new java.util.Scanner(System.in);

第二步:呼叫Scanner物件的next()方法開始接收用戶鍵盤輸入

敲完回車鍵 鍵入的資訊會自動賦值給識別符號

String userInputContent = s.next();【以字串的形式接收】

int num = s.nextInt();【以整型的形式接收】

//識別符號的命名規范:見名知意

13.1 Scanner類中的方法

  • 優點一: 可以獲取鍵盤輸入的字串 ;

  • 優點二: 有現成的獲取int,float等型別資料,非常強大,也非常方便;

Scanner s = new Scanner(System.in); 
System.out.println("ScannerTest, Please Enter Name:"); 
String name = sc.nextLine();  //讀取字串型輸入 
Scanner s = new Scanner(System.in); 
System.out.println("ScannerTest, Please Enter Age:"); 
int age = sc.nextInt();    //讀取整型輸入 
Scanner s = new Scanner(System.in); 
System.out.println("ScannerTest, Please Enter Salary:"); 
float salary = sc.nextFloat(); //讀取float型輸入 
Scanner s = new Scanner(System.in); System.out.println("Your Information is as below:"); 
System.out.println("Name:" + name +"\n" + "Age:"+age + "\n"+"Salary:"+salary); 

13.2 System.in和System.out方法

  • 缺點一: 該方法能獲取從鍵盤輸入的字符,但只能針對一個字符的獲取

  • 缺點二: 獲取的只是char型別的,如果想獲得int,float等型別的輸入,比較麻煩,

try{ 
  System.out.print("Enter a Char:"); 
  char i = (char)System.in.read(); 
  System.out.println("Yout Enter Char is:" + i); 
} 
catch(IOException e){ 
  e.printStackTrace(); 
} 

13.3 InputStreamReader和BufferedReader方法

  • 優點: 可以獲取鍵盤輸入的字串

  • 缺點: 如何要獲取的是int,float等型別的仍然需要轉換

System.out.println("ReadTest, Please Enter Data:"); 
InputStreamReader is = new InputStreamReader(System.in); //new構造InputStreamReader物件 
BufferedReader br = new BufferedReader(is); //拿構造的方法傳到BufferedReader中 
try{ //該方法中有個IOExcepiton需要捕獲 
  String name = br.readLine(); 
  System.out.println("ReadTest Output:" + name); 
} 
catch(IOException e){ 
  e.printStackTrace(); 
} 

13.4 nextLine( )和next( )的區別

nextLine( )方法回傳的是Enter鍵之前的所有字符,它是可以得到帶空格的字串的, next( )會自動消去有效字符前的空格,只回傳輸入的字符,不能得到帶空格的字串,


14、方法

14.1 方法的定義,語法結構

[修飾符串列] 回傳值型別 方法名(形式引數串列){

方法體;

}

注意:

1)修飾符串列可選項,不是必須的,目前統一寫成public static;

2)方法內的修飾符串列當中有static關鍵字時,呼叫方法:類名.方法名(實際引數串列);當方法在該類中時,"類名."可以省略;

3)方法名:首字母小寫,后面每個字母大寫,遵循駝峰規則;

4)建議一個源檔案當中只定義一個class,比較清晰;

14.2 方法在執行程序中,JVM記憶體的分配和變化

14.2.1 方法的定義和執行:

方法只定義,不呼叫是不會執行的,并且在JVM中也不會給該方法分配"運行所屬"的記憶體空間;只有呼叫的時候才會分配所屬的內空間;

14.2.2 JVM記憶體劃分上主要的記憶體空間:

方法區記憶體、堆記憶體、堆疊記憶體(還有其他的記憶體空間);

14.2.3 堆疊資料結構 :

*堆疊:stack,是一種資料結構;

*資料結構是資料的存盤形態;

*常見的資料結構:陣列、佇列、堆疊、鏈表、二叉樹、哈希表/散串列;

14.2.4 方法代碼檔案的存盤位置,記憶體的分配位置:

1)方法代碼片段屬于.class位元組碼檔案的一部分,位元組碼檔案在類的加載的時候,將其放到了方法區當中,所以JVM中的三塊主要的記憶體空間中方法區記憶體最先有資料,存在了代碼片段;

2)代碼片段雖然在方法區當中只要一份,但是可以重復呼叫,每一次呼叫這個方法的時候,需要給該方法分配獨立的活動場所,在堆疊記憶體中分配【堆疊記憶體中分配方法運行的所屬空間】;

3)方法在呼叫的瞬間會給該方法分配獨立的記憶體空間,在堆疊中發生壓堆疊動作,方法執行結束之后,給該方法分配獨立的記憶體空間全部釋放,此時發生彈堆疊動作,

壓堆疊:給方法分配記憶體;

彈堆疊:釋放該方法的記憶體空間;

4)區域變數在在“方法體”中宣告,在堆疊中存盤,運行時在堆疊中分配

e.g.下列程式模型就是一個壓堆疊、彈堆疊的程序;

main begin
m1 begin
m2 begin
m3 begin
m3 over
m2 over
m3 over
main over

14.3 堆疊記憶體的特點

1)堆疊幀永遠指向堆疊頂元素

2)堆疊頂元素處于活躍狀態,其他元素靜止

3)術語: 壓堆疊/入堆疊/push

彈堆疊/出堆疊/pop

4)堆疊資料結構存盤資料的特點:

先進后出;

后進先出;


15、方法執行記憶體分析

public class MethodTest01
{
    public static void main(String[] args)
    {
        int a = 10;
        int b = 20;
        int restValue = sumInt(a,b);
        System.out.println("retValue = "+ retvalue);
    }
    public ststic int sumInt(int i,int j)
    {
        int result = i + j;
        int num = 3;
        int reValue = divide (result,num);
        return retValue;
    }
    public static int divide (int x,int y)
    {
        int z = x / y;
        return z;
    }
}


16、方法多載(overload)

優點:

功能不相同但相似,像是在使用同一個方法一樣,程式員撰寫代碼更加方便,也不需要記憶更多的方法名,代碼更美觀;

(javascript不支持方法多載機制)

public class MethodTest01
{
    public static void main(String[] args)
    {
        System.out.println(sum(1,2));
        System.out.println(sum(1.0,2.0));
        System.out.println(sum(1L,2L));
    }
    public static int sum(int a,int b)
    {
        return a + b;
    }
     public static long sum(long a,long b)
    {
        return a + b;
    }
     public static double sum(double a,double b)
    {
        return a + b;
    }
}

引數的型別不同,對應呼叫的方法也不同,此時區分方法不再依靠方法名了,依靠的是實參的資料型別,

16.1 什么時候考慮使用方法多載?

*功能相似的時候,盡可能讓方法名相同;

【功能不同/不相似的時候,盡可能讓方法名不同】;

16.2 構成方法多載的條件

1)在同一個類中

2)方法名相同

3)引數串列不同

(數量不同、順序不同、型別不同)

16.3 方法多載的影響因素

1)方法多載和方法名+引數串列有關;

2)方法多載和回傳值型別無關;

3)方法多載和修飾符串列無關;

16.4 方法多載的應用

用戶自定義封裝一段代碼,使得在使用時更加便捷快速呼叫;

public class helloworld
{
     public static void main(String[] args)
    {
         U.v(2.0);
     }
}
class U
{
    public static void v(long b){
        System.out.println(b);
    }
    public static void v(double b){
        System.out.println(b);
    }
    public static void v(short b){
        System.out.println(b);
    }
     public static void v(char b){
        System.out.println(b);
    }
     public static void v(String b){
        System.out.println(b);
    }
     public static void v(byte b){
        System.out.println(b);
    }
}

17、方法遞回

缺點:

耗費堆疊記憶體,呼叫一次方法堆疊記憶體就會新分配一塊所屬的記憶體空間;

當沒有結束條件時,堆疊記憶體溢位錯誤,錯誤無法挽回,只要一個結果,就是JVM停止作業;

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

標籤:java

上一篇:Java圖形化界面編程

下一篇:【軟體測驗】自動化測驗到底怎么做(單元測驗自動化,介面自動化,UI自動化)

標籤雲
其他(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)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more