主頁 > 後端開發 > JAVA -01(簡單知識介紹)

JAVA -01(簡單知識介紹)

2023-03-20 07:14:19 後端開發

JAVA -01

前期準備

介紹

  1. 1972年C誕生【兩大問題:指標;記憶體管理】
  2. 1982年C++誕生【面向物件;兼容C;圖形領域和游戲,但是更復雜】
  3. 1995年JAVA誕生【沒有指標沒有記憶體管理;面向物件;型別安全;高質量類別庫;跨平臺(JVM實作);applet圖形界面程式】

小碎點

  • 三高問題:高可用、高性能、高并發

Java特性

  1. 簡單性【易學】
  2. 面向物件
  3. 可移植性【一次撰寫多次運行】
  4. 高性能【及時編譯】
  5. 分布式【TCP/IP處理、URL呼叫、遠程呼叫】
  6. 動態性【反射機制】
  7. 多執行緒【互動、實時】
  8. 安全性【防病毒、防篡改、例外機制】
  9. 健壯性
  10. 既是編譯型又是解釋型語言
    11. 大小寫敏感

Java的三大版本

  • JavaSE:標準版(桌面程式、控制臺開發)
  • JavaME:嵌入式開發(手機、小家電)
  • JavaEE: 企業級開發(web端、服務器開發)

JDK、JRE、JVM

1. JDK:Java Development Kit 【Java開發包】
2. JRE:Java Runtime Environment 【Java運行時環境】
3. JVM:Java Virtual Machine 【Java虛擬機】

JDK7和JDK8之間的區別

JDK7

  1. JDK7新特性,數字之間可以用下劃線分割

JDK8


JDK卸載

  1. 洗掉安裝目錄
  2. 洗掉環境變數配置JAVA_HOME
  3. 洗掉path下的關于java的目錄
  4. java -version檢查

JDK安裝

  1. 百度搜索jdk8,找到下載地址
  2. 同意協議、下載對應版本安裝包
  3. 雙擊安裝
  4. 安裝目錄建議找易找到的,并記住安裝路徑
  5. 配置環境變數
    1. 我的電腦 --->右鍵 --->屬性 --->高級系統設定
    2. 環境變數 --->系統變數 --->新建系統變數--->JAVA_HOME--->安裝路徑
  6. 配置path變數
    1. 系統變數里面找到path --->新建%JAVA_HOME%\bin --->新建%JAVA_HOME%\jre\bin
    2. 打開cmd ---> java -version 檢查,出現安裝的版本及成功

控制臺輸出HelloWorld【第一個java程式】

  1. 新建一個檔案【檔案名HelloWorld檔案名和檔案里的class后面的要一致】,將后綴改為.java

  2. 在里面撰寫代碼

  3. public class HelloWorld{    //HelloWorld與檔案名一致
    	public static void main(String[] args){
    		System.out.println("Hello,World!");
    	}
    }
    
  4. 控制臺進到檔案目錄,進行編譯

  5. javac HelloWorld.java
    
  6. 運行

  7. java HelloWorld
    
  8. image

使用IDEA開發

  1. 下載安裝包,安裝

  2. 安裝時需要根據電腦版本選擇是 “.32” 還是 “.64” ,還有勾選 ".java" ,

  3. 破解

使用IDEA快捷鍵

1、psvm + enter	可以快速補充 
    public static void main(String[] args) {
    }

2、sout + enter	可以快速補充
    System.out.println();

3、Ctrl + d	復制當前行到下一行

Java基礎語法

注釋

1、//單行注釋  //
2、//多行注釋  /* 注釋 */
3、//JavaDOC /**  檔案注釋 */

識別符號【關鍵字】

1、所有識別符號首字母必須字母(A-Z,a-z)美元符號($),下劃線(—)開始
2、首字母之后可以任意
3、大小寫敏感
4、不能使用關鍵字作為變數名和方法名
5、String不是關鍵字,是一個類

資料型別

1、java是強型別語言【變數使用復合型別且必須先定義再使用】
2、兩大類【基本型別、參考型別】
3、primitive type 基本型別 【byte(1B)、short(2B)、int(4B)、long(8B)、float(4B)、double(8B)、char(2B)、boolean(1b)】【long型別要在后面加上L,float要在后面加F】
4、reference type 參考型別 【類、介面、陣列】

public class Demo01 {
    public static void main(String[] args) {
        //====================================================
        //int型  【int(4B)】
        //====================================================
        int i = 10;
        int i2 = 010;  //八進制0
        int i3 = 0x10;  //十六進制 0x

        System.out.println(i);
        System.out.println(i2);
        System.out.println(i3);
        System.out.println("====================");

        //====================================================
        //float型   &&  double型  【float(4B)、double(8B)】
        //====================================================
        float f = 0.1f;
        double d = 1.0/10;

        System.out.println(f);
        System.out.println(d);
        System.out.println(f==d);
        System.out.println("====================");

        //====================================================
        //浮點數拓展? 銀行業務怎么表示?錢
        //BigDecimal  數學工具類
        //====================================================
        //float 有限  離散  舍入誤差  大約  接近但不等于
        //最好完全避免使用浮點數標記!!!
        //最好完全避免使用浮點數標記!!!
        //最好完全避免使用浮點數標記!!!
        float d1 = 23169541465661f;
        float d2 = d1 + 1 ;
        System.out.println(d1==d2);
        System.out.println(d1);
        System.out.println(d2);
        System.out.println("====================");

        //====================================================
        //char型   【char(2B)】
        //字符拓展?
        //所有字符本質還是數字  編碼 Unicode 2位元組  0-65536  Excel  2^16 = 65536
        //====================================================
        char c1 = 'a';
        char c2 = '中';
        System.out.println(c1);
        System.out.println((int)c1);
        System.out.println(c2);
        System.out.println((int)c2);
        System.out.println("====================");

        //轉義字符
        // \t   制表符 tab
        // \n   換行
        System.out.println("hello\thello");
        System.out.println("hello\nhello");
        System.out.println("====================");

        //====================================================
        //boolea型  【boolean(1b)】
        //====================================================
        boolean flag = false;
        if(flag == true){ }  //新手
        if(flag){}  //老手
        //上面兩個if判斷功能一致

        //====================================================
        //String   不是資料型別,它是一個類!!!!!!
        //====================================================
        String s1 = new String("nihao");
        String s2 = new String("nihao");
        String s3 = "nihao";
        String s4 = "nihao";
        System.out.println(s1==s2);
        System.out.println(s3==s4);
        System.out.println("====================");

    }
}

自己找找看有哪些轉義符?

  • 位(bit):計算機內部最小存盤單位
  • 位元組(byte):計算資料處理基本單位,習慣B表示
  • 1B = 8bit

型別轉換

注意點:
1、不能對boolean型別進行轉換
2、不能將最想型別轉換為不相干的型別
3、轉換的時候可能存在記憶體溢位、或者精度問題

強制轉換 高到低 (型別)變數名

低--->高:byte , short , char , int ,long , float , double

自動型別轉換 低到高【不需要處理】

package base;

public class Demo02 {
    public static void main(String[] args) {

        //強制轉換 高到低     (型別)變數名
        //自動型別轉換 低到高
        int i = 128;
        byte b = (byte)i;  //記憶體溢位
        double d = i;

        System.out.println(i);
        System.out.println(b);
        System.out.println(d);
        System.out.println("===============================");

        System.out.println((int)23.7);
        System.out.println((int)-45.75f);
        System.out.println("===============================");

        char c = 'a';
        int i2 = c+1;
        System.out.println(i2);
        System.out.println((char)i2);
        System.out.println("===============================");

        //操作比較大的數,注意溢位
        //JDK7新特性,數字之間可以用下劃線分割
        int money = 10_0000_0000;
        int years = 20;
        int total = money*years;  //負數,計算溢位
        long total2 = money*years;  //負數,計算之后轉換為long型別,同樣會溢位
        long total3 = money*((long)years);  //先將years強轉為long,再計算
        System.out.println(total);
        System.out.println(total2);
        System.out.println(total3);

        /*
        小寫的L(即l)也可以,但是在撰寫軟體里,他和1非常相似,為避免認錯,代碼規范易讀都用L來標記long型別
         */

    }
}

變數、常量、作用域

注意點:
1、每個變數都要有型別
2、變數名必須是合法的識別符號
3、變數生命是一條完整的陳述句,所以必須以分號結束
4、不建議一行定義多個變數

  • 類變數:加了static關鍵字
  • 實體變數:從屬于物件,在類中有效,可以不初始化就使用,會有默認值【boolean默認false ,除了基本型別其余的是null】
  • 區域變數:使用之前必須實體化并賦值,作用域只在它宣告的方法內部有用(即它所在的{}內有用)
package base;

public class Demo03 {
    //變數  type varName [=value][{varName[=value]}];

    //常量一般用大寫  final

    static double salary = 2500;
    String name;
    int age;

    //修飾符不存在先后順序
    static final double PI = 3.14;

    public static void main(String[] args) {
        int i = 10;
        System.out.println(i);
        Demo03 demo = new Demo03();
        System.out.println(demo.name);
        System.out.println(demo.age);
        System.out.println(salary);

        System.out.println(PI);
    }

    //外部方法
    public  void  add(){
		//***
    }
}

運算子

算數運算子:+ - * / %(取余/模) ++(自增,一元運算子) --(自減,一元運算子)
賦值運算子:=
關系運算子:> < >= <= == != instanceof
邏輯運算子:&& || !        
位運算子:& | ^ ~ >> << >>>(了解!!!)
條件運算子:? :
擴展賦值運算子:+= -= *= /=
package base;

public class Demo04 {

    public static void main(String[] args) {

        //二元運算子
        int a = 10;
        int b = 20;
        int c = 25;
        int d = 25;

        System.out.println(a+b);
        System.out.println(a-b);
        System.out.println(a*b);
        System.out.println(a/(double)b);
        System.out.println("================================");

        long aa = 123123123123L;
        int bb = 123;
        short cc = 10;
        byte dd = 8;

        System.out.println(aa+bb+cc+dd);  //long  最高
        System.out.println(bb+cc+dd);   //int
        System.out.println(cc+dd);  //int
        System.out.println("================================");

        //關系運算子回傳結果 true false
        int a2 = 10;
        int b2 = 20;
        int c2 = 21;

        System.out.println(a2>b2);
        System.out.println(a2<b2);
        System.out.println(a2==b2);
        System.out.println(a2!=b2);
        System.out.println(c2%b2);
        System.out.println("================================");

        //一元運算子  ++ --
        int x = 1;                  //x=1
        int y = x++;                //y=1,x=2【先將x賦給y,在x+1】
        System.out.println(x);      //x=2
        int z = ++x;                //x=3【先x+1,再將x賦給z】

        System.out.println(x);
        System.out.println(y);
        System.out.println(z);
        System.out.println("================================");

        //冪運算 2^3 = 8  很多運算,需要使用工具類
        double m = Math.pow(2,3);
        System.out.println(m);
        System.out.println("================================");

        //邏輯運算子
        boolean f1 = true;
        boolean f2 = false;

        System.out.println(f1&&f2);
        System.out.println(f1||f2);
        System.out.println(!(f1&&f2));
        System.out.println("================================");

		擴展賦值運算子
        int xy = 10;
    	int xz = 20;
   		a+=b;   //a=a+b
    	a-=b;   //a=a-b
    	System.out.println(a+b);

        //三元運算子
        //xx ? yy : zz  如果xx為真則結果為yy,否則結果為zz
        int score = 80;
        String type = score < 60 ? "不及格" : "及格";
        System.out.println(type);

        /*
        運算子的優先級,一元運算子最優
         */

    }
}

運算子優先級

短路原則

    boolean f1 = true;
    boolean f2 = false;
    //短路原則
    System.out.println(f2&&f1);     //因為邏輯與是全為真則結果為真,所以在判斷法等于false時,就不會再執行f1的判斷了
    //驗證短路原則
    int flag = 5;
    boolean f3 = (flag < 4)&&(flag++ < 4);
    System.out.println(f3);
    System.out.println(flag);
    System.out.println("================================");

位運算 效率高【跟底層二級制打交道】

<< **左移 ** 相當于*2

>> **右移 ** 相當于/2

        /*
        A = 0011 1100
        B = 0000 1101
        A&B = 0000 1100            全為1,則為1
        A|B = 0011 1101            都為0,則為0
        A^B = 0011 0001      異或  相同則為0,否則為1
         ~B = 1111 0010      取反
    
        2*8 = 16  = 2*2*2*2
        <<      左移   相當于*2
        >>      右移   相當于/2
    
        0000 0001   1
        0000 0010   2
        0000 0011   3
        0000 0100   4
        0000 0101   5
        0000 0110   6
        0000 0111   7
        0000 1000   8
        0001 0000   16
         */
    
        System.out.println(2 << 3);
        System.out.println("===============================");

面試題

  • new物件,判斷是否相等
		String s1 = new String("nihao");
        String s2 = new String("nihao");
        String s3 = "nihao";
        String s4 = "nihao";
        System.out.println(s1==s2);
        System.out.println(s3==s4);

輸出結果:

flash

true


  • 字串連接符 + ,String
    System.out.println(" "+a+b);和System.out.println(a+b+" ");輸出區別
    前者輸出1020,后面的a+b中的+變成了連接符
    后者輸出30,a+b里面的+是運算子
int a = 10;
int b = 20;
System.out.print("\" \"+a+b:");
System.out.println(" "+a+b);
System.out.print("a+b+\" \"
System.out.println(a+b+" ");

輸出結果:
" "+a+b:1020
a+b+" ":30


  • ++位置

? y = x++;和z = ++x;輸出區別(各自結果)

int x = 1;                  //x=1
int y = x++;                //y=1,x=2【先將x賦給y,在x+1】
System.out.println(x);      //x=2
int z = ++x;                //x=3【先x+1,再將x賦給z】

System.out.println(x);	//3
System.out.println(y);	//1
System.out.println(z);	//3

輸出結果:

3

1

3

命名規范

  1. 見名知意
  2. 類名:首字母大寫和駝峰原則
  3. 常量:全部大寫,單詞之間下劃線
  4. 類成員變數:首字母小寫和駝峰原則(除首字母外,之后的單詞首字母大寫)
  5. 區域變數:首字母小寫和駝峰原則
  6. 方法名:首字母大寫和駝峰原則

包機制

  • 為了更好地組織類

  • 一般利用公司與組織的倒名作為包名(http://baidu.com就是com.baidu)

  • import 導包

  • 防止命名空間重復

JavaDOC

  • Javadoc命令是用來生成自己的API檔案

  • 可用的引數資訊:

    1. @author 作者名
    2. @version 版本號
    3. @since 知名需要最早使用的jdk版本
    4. @param 引數名
    5. @return 回傳值情況
    6. @throws 例外宣告情況
  • cmd輸出API幫組檔案方式

  進到檔案位置(namespace位置)
  javadoc -encoding UTF-8 -charset UTF-8 檔案名.java【要生成API的java類名】

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

標籤:其他

上一篇:Pandas 常用操作

下一篇:Collection單列集合總結

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