主頁 > 後端開發 > Java學習筆記【4】基礎語法 - - 關鍵字、變數和資料型別、Scanner類

Java學習筆記【4】基礎語法 - - 關鍵字、變數和資料型別、Scanner類

2021-09-18 13:42:09 後端開發

在這里插入圖片描述

?? ? ? ? ? ? 🚀 🚀 🚀 🚀 🚀
??大家好🤝,我是👉老孫👈,未來學習路上多多關照🤝,一個不善于寫作??卻喜歡用博客記錄人生的程式猿🙉,或許這是一件有意義又有趣的事📖,不為別的,只想看看自己到低能走多遠🌏,是怎么走遠的 ?🏘??
??🔥 🔥 🔥 🔥 🔥 ? ? ? ? ?


Java 基礎語法

  • 一、Java識別符號
    • 1、識別符號(Identifier)
    • 2、定義合法識別符號的規則
    • 3、Java中的名稱命名規范
  • 二、Java關鍵字【53個】
    • 1、關鍵字(keyword)【51】
    • 2. 保留字(reserved word)【2】
    • 3、關鍵字分類(圖片)
    • 4、關鍵字和保留字簡述(表格)
  • 三、變數
    • 1、變數的定義和使用
    • 2、變數的分類
    • 3、常見問題
  • 四、資料型別
    • 1、思維導圖 + 圖片 + 表格
    • 2、整數型別:byte、short、int、long
    • 3、浮點型別:float、double
    • 4、字符型別:char
      • 4.1、字符char
      • 4.2、常見轉義字符
    • 5、布爾型別:boolean
    • 6、ASCII 碼
    • 7、Unicode 編碼
    • 8、UTF-8
    • 9、字串型別String
  • 五、Scanner類輸入與輸出
    • 1、輸入與輸出
    • 2、Scanner類的使用
  • 六、格式化輸出 printf
    • 1、保留xx位小數
    • 2、楊輝三角(資料靠左或右)


前期內容回顧:

  • Java學習筆記【1】Java概述
  • Java學習筆記【2】JDK環境配置
  • Java學習筆記【3】第一個 Java 程式Hello World!

請添加圖片描述

一、Java識別符號

1、識別符號(Identifier)

Java對各種 變數、方法 和 類 等要素命名時使用的字符序列稱為 識別符號

  • 比如:變數名、類名、方法名、介面名、包名 . . .
  • 技巧:凡是自己可以起名字的地方都叫識別符號

2、定義合法識別符號的規則

如果不遵守如下規則,編譯不通過,需要大家嚴格遵守 !

  • 由26個英文字母大小寫、0~9、_ 或 $ 組成
  • 數字不可以開頭
  • 不可以使用關鍵字和保留字,但能包含關鍵字和保留字(比如:staticpublic)
  • Java中嚴格區分大小寫,長度無限制
  • 識別符號不能包含空格

3、Java中的名稱命名規范

如果不遵守如下規范,編譯可以通過!建議大家遵守!

  1. 包名:多單詞組成時所有的字母都小寫:xxyyyzz
  2. 類名、介面名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz【大駝峰】
  3. 變數名、方法名:多單詞組成時,所有單詞的首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz【小駝峰】
  4. 常量名:所有字母都大寫,多單詞組成時,單詞之間用下劃線連接:XXX_YYY_ZZZ
    ?

【注意】

  1. 在起名字時,為了提高可讀性,要盡量有意義,“見名知意”,
  2. Java采用Unicode字符集,因此識別符號也可以使用漢字宣告,但不建議使用,
package com.Java_conclusion.contact;	//包名:Java_conclusion.contact

public class Grammar_Identifier {		//類名:Grammar_Identifier
    
	static final double PI = 3.1415; //類常量1
    public static final double ONE_TWO_THREE = 1.23456789; //類常量2

    public static void main(String [] args)
    {
        final int MY_YEAR = 18; //常量

        int myNumber = 1001;	//變數名:myNumber
        System.out.println(myNumber);

        //下面2種情況編譯可以通過!  但不要這要寫,可讀性差!
        int mynumber1 = 1002;
        System.out.println(mynumber1);
        int 學號 = 1003;
        System.out.println(學號);

        System.out.println(hello()); //Java你好!666
    }

    public static int hello(){ //方法名:hello
        System.out.print("Java你好!");
        return 666;
    }
    
    interface USB{ //創建一個介面,介面名:USB
        void start();
        void stop();
    }
    
    public interface ChineseName{} //介面名:ChineseName
   
}

請添加圖片描述

二、Java關鍵字【53個】

1、關鍵字(keyword)【51】

  • 關鍵字的定義和特點
    • 定義:被Java語言賦予了特殊含義,用做專門用途的字串(單詞)
    • 特點:關鍵字中所有字母都為小寫

2. 保留字(reserved word)【2】

  • 現有的 Java版本尚未使用,但以后版本可能會作為關鍵字使用,

  • 自己命名識別符號是要避免使用這些關鍵字:goto、const

3、關鍵字分類(圖片)

在這里插入圖片描述
在這里插入圖片描述

true、false、null 不算關鍵字,但可以當做關鍵字使用,

4、關鍵字和保留字簡述(表格)

關鍵字含義
1abstract抽象類或方法
2assert用來查找內部程式錯誤
3boolean布爾型別
4break跳出一個switch或回圈
5byte8位整數型別
6caseswitch的一個分支
7catch捕獲例外的try塊子句
8charUnicode字符型別
9class定義一個型別別
10const未使用(保留字)
11continue在回圈末尾繼續
12defaultswitch 的預設子句
13dodo/while回圈最前面的陳述句
14double雙精度浮點數型別
15elseif陳述句的else子句
16enum列舉型別
17extends定義一個類的父類
18final一個常量,或不能覆寫的一個類或方法
19finallytry塊中總會執行的部分
20false用于定義資料型別值的字面值
21float單精度浮點數型別
22for一種回圈型別
23goto未使用(保留字)
24if一個條件陳述句
25implements定義一個類實作的介面
26import匯入一個包
27instanceof測驗一個物件是否為一個類的實體
28int32位整數型別
29interface一種抽象型別,其中包含可以由類實作的方法
30long64位長整數型別
31native由宿主系統實作的一個方法
32new分配一個新物件或陣列
33null一個空參考(需要說明,null 從技術上講是一個直接量,而不是關鍵字)
34package包含類的一個包
35private這個特性只能由該類的方法訪問
36protected這個特性只能由該類、其子類以及同一個包中的其他類的方法訪問
37public這個特性可以由所有類的方法訪問
38return從一個方法回傳
39short16位整數型別
40static這個特性是這個類特有的,而不屬于這個類的物件
41strictfp對浮點數計算使用嚴格的規則
42super超類物件或建構式
43switch—個選擇陳述句
44synchronized對執行緒而言是原子的方法或代碼塊
45this當前類的一個方法或建構式的隱含引數
46throw拋出一個例外
47throws一個方法可能拋出的例外
48transient標志非永久的資料
49true用于定義資料型別值的字面值
50try捕獲例外的代碼塊
51void指示一個方法不回傳任何值
52volatile確保一個欄位可以由多個執行緒訪問
53while一種回圈

請添加圖片描述

三、變數

1、變數的定義和使用

變數的概念:

  • 記憶體中的一個存盤區域
  • 該區域的資料可以在同一型別范圍內不斷變化
  • 變數是程式中最基本的存盤單元,包含變數型別、變數名和存盤的值

變數的作用:用于在記憶體中保存資料

使用變數注意:

  • Java中每個變數必須先宣告,后使用
  • 變數的作用域:其定義所在的一對{ }內
  • 變數只有在其作用域內才有效,
  • 同一個作用域內,不能定義重名的變數
//Java定義變數的格式:
資料型別 變數名 = 變數值;
public class Grammar_Variable {
	public static void main(String [] args)
	{
		//變數的定義:變數的宣告 和 初始化分開進行
		int myNumber; //變數的宣告
		myNumber = 1001; //變數的賦值(初始化)
		//變數的使用
		System.out.println(myNumber);

		//變數的定義:宣告并初始化同時進行
		int myAge = 12;
		//變數的使用
		System.out.println(myAge);
	}
}

2、變數的分類

1?? 按宣告的位置的不同

  • 成員變數:在方法體外,類體內宣告的變數,
  • 區域變數:在方法體內部宣告的變數,

注意:二者在初始化值方面的異同:

  • 同:都有生命周期
  • 異:區域變數除形參外,需顯式初始化,

在這里插入圖片描述

2?? 按資料型別分類:

  • 基本資料型別:數值型、字符型、布爾型
  • 參考資料型別:類、介面、陣列

在這里插入圖片描述

3、常見問題

  • 交換2個變數的值的3種方法
//交換2個變數的值:有3種方法
int n = 10;
int m = 15;

//方法1:常常使用方法(推薦)
int temp = n;
       n = m;
       m = n;

//方法2:好處:不用定義臨時變數
//弊端: 相加操作可能超出存盤范圍 
//		有局限性:只適合于數值型別
n = n + m;		//n=25 = 10 + 15;
m = n - m;		//m=10 = 25 - 15;
n = n - m;		//n=15 = 25 - 10;

//方法3:使用位運算子
//有局限性:只能適合于數值型別
n = n ^ m;
m = n ^ m;
n = n ^ m;

請添加圖片描述

四、資料型別

1、思維導圖 + 圖片 + 表格

對于每一種資料都定義了明確的具體資料型別(強型別語言),在記憶體中分配了不同大小的記憶體空間,

1?? 思維導圖

在這里插入圖片描述

2?? 基本數值型別取值范圍(圖片):

在這里插入圖片描述

  • 一位元組 = 8位,即1byte = 8bit
  • bit: 計算機中的最小存盤單位,byte:計算機中基本存盤單元,

2、整數型別:byte、short、int、long

Java各整數型別有固定的表數范圍和欄位長度,不受具體OS的影響,以保證java程式的可移植性,
java的整型常量默認為 int 型,宣告long型常量須后加‘l’或‘L’
java程式中變數通常宣告為int型,除非不足以表示較大的數,才使用long

	@Test
    public void test1() {
        //1、整型:byte(1位元組 = 8bit)、short、int、long
        //① byte范圍:-128 ~ 127
        //② 宣告long整型變數,必須以 "l" 或 "L" 結尾
        byte b1 = 12;
        byte b2 = -128;
        short s1 = 128;
        int i1 = 1234;
        long l1 = 66668888L;
        System.out.println("b1=" + b1 + "\tb1=" + b2);
        System.out.println("s1=" + s1 + "\ti1=" + i1 + "\tl1=" + l1);

    }

3、浮點型別:float、double

與整數型別類似,Java 浮點型別也有固定的表數范圍和欄位長度,不受具體作業系統的影響,

float 取值范圍:-3.4028235E38 ~ -1.4E-45、1.4E-45 ~ 3.4028235E38
有效數字7位(或8位):前7位有效數字是真實值,第8位是估算值,可能和原始一致,可能是四舍五入上來的,

double 取值范圍:-1.7976931348623157E308 ~ -4.9E-432、4.9E-324 ~ 1.7976931348623157E308
有效數字15位(或16位):前15位有效數字是真實值,第16位是估算值,可能和原始一致,可能是四舍五入上來的 ,

浮點型常量有兩種表示形式:

  • 十進制數形式:如:5.12 512.0f .512 (必須有小數點)
  • 科學計數法形式:如:5.12e2 512E2 100E-2

指數形式:由兩部分組成、十進制小數形式或十進制整型常量部分和指數部分,其中指數部分是在eE(相當于數學中冪底數 10)后跟整數階碼(即可帶符號的整數指數),例如:2E15 表示數值 2 * 1015、3.14E+1表示數值 3.14 * 1015、2E-1表示數值 2 *10-1

	@Test
    public void test() {
        //2、浮點型:float(7位有效數字)、double
        //① 定義float型別變數時,變數要以 "f" 或 "F"結尾
        //② float 表示的資料范圍比long大
        float f1 = 66.6F;
        double d1 = 88.8;
        System.out.println("f1=" + f1 + "\td1=" + d1);

    }

4、字符型別:char

4.1、字符char

char 型資料用來表示通常意義上“字符”(2位元組)
Java中的所有字符都使用Unicode編碼,故一個字符可以存盤一個字母,一個漢字,或其他書面語的一個字符,
char型別是可以進行運算的,因為它都對應有Unicode碼,

字符型變數的三種表現形式:

  • 字符常量是用單引號(‘ ’)括起來的單個字符,例如:char c1 = ‘a’; char c2 = ‘中’; char c3 = ‘9’;
  • Java中還允許使用轉義字符‘\’來將其后的字符轉變為特殊字符型常量,例如:char c3 = ‘\n’; // '\n’表示換行符
  • 直接使用 Unicode 值來表示字符型常量:‘\uXXXX’,其中,XXXX代表一個十六進制整數,如:\u000a 表示 \n,

4.2、常見轉義字符

轉義字符主要用來表示那些用一般字符不便于表示的控制代碼,構成字符常量的控制字符必須用轉義字符表示,這種“控制字符”在螢屏上是不能顯示的,轉義字符雖然包含兩個或多個字符,但它只代表一個字符,轉義字符的意思是將 \后面的字符轉換成另外的意義,

轉義字符含義(字符值)作用
\'單撇號輸出單撇號 '
\"雙撇號輸出雙撇號"
\?問號輸出問號字符?
\\反斜線輸出反斜線字符\
\b退格(backspace)將游標當前位置后退一個字符
\n換行將游標當前位置移動到下一行的開頭
\t水平制表符將游標當前位置移動到下一個Tab位置1
\r回車將游標當前位置移動到本行的開頭0
@Test
    public void test4() {
        //3、字符型:char(1字符=2位元組=16位)
        //① 定義char型變數,通常使用一對 '' ,內部只能寫一個字符
        char c1 = 'a';
        char c2 = '1';
        char c3 = '中';
        System.out.println(c1);
        System.out.println(c2);
        System.out.println(c3);

        //② 表示方式:1、宣告一個字符  2、轉義字符  3、直接使用 Unicode 值來表示字符常量
        char c4 = '\n';
        char c5 = '\t';
        char c6 = '\u0043'; //大寫字母C
        System.out.println("Hello" + c5 + "World!" + c4);
        System.out.println(c6);

    }

5、布爾型別:boolean

boolean 型別用來判斷邏輯條件,一般用于程式流程控制

  • if條件控制陳述句;
  • while回圈控制陳述句;
  • do-while回圈控制陳述句;
  • for回圈控制陳述句

boolean型別資料只允許取值true和false,無null,

  • 不可以使用0或非 0 的整數替代false和true
  • Java虛擬機中沒有任何供boolean值專用的位元組碼指令,Java語言表達所操作的boolean值,在編譯之后都使用java虛擬機中的int資料型別來代替:true用1表示,false用0表示,
	@Test
    public void test4() {
        //4、布爾型:boolean
        //① 只能取兩個值:true 或 false
        //② 常常在條件判斷、回圈結構中使用
        //如:if(0):錯誤  if(1 == 1):對
        boolean bb1 = true;
        System.out.println("布爾型:"+ bb1);

        boolean isMarried = true;
        if(isMarried) {
            System.out.println("很遺憾,你就不能參加單身party了!");
        }else {
            System.out.println("你可以多談談女朋友!");
        }

    }

6、ASCII 碼

  • 在計算機內部,所有資料都使用二進制表示,每一個二進制位(bit)有 0 和 1 兩種狀態,因此 8 個二進制位就可以組合出 256 種狀態,這被稱為一個位元組(byte),一個位元組一共可以用來表示 256 種不同的狀態,每一個狀態對應一個符號,就是 256 個符號,從0000000 到 11111111,
  • ASCII碼:上個世紀60年代,美國制定了一套字符編碼,對英語字符與二進制位之間的關系,做了統一規定,這被稱為ASCII碼,ASCII碼一共規定了128個字符的編碼,比如空格“SPACE”是32(二進制00100000),大寫的字母A是65(二進制01000001),這128個符號(包括32個不能列印出來的控制符號),只占用了一個位元組的后面7位,最前面的1位統一規定為0,
  • 缺點:不能表示所有字符,相同的編碼表示的字符不一樣:比如,130在法語編碼中代表了é,在希伯來語編碼中卻代表(?) 了字母Gimel

請添加圖片描述

7、Unicode 編碼

  • 亂碼:世界上存在著多種編碼方式,同一個二進制數字可以被解釋成不同的符號,因此,要想打開一個文本檔案,就必須知道它的編碼方式,否則用錯誤的編碼方式解讀,就會出現亂碼,
  • Unicode:一種編碼,將世界上所有的符號都納入其中,每一個符號都給予一個獨一無二的編碼,使用 Unicode 沒有亂碼的問題,
  • Unicode 的缺點:Unicode 只規定了符號的二進制代碼,卻沒有規定這個二進制代應該如何存盤:無法區別 Unicode 和 ASCII:計算機無法區分三個位元組表示一個符號還是分別表示三個符號,另外,我們知道,英文字母只用一個位元組表示就夠了,如果unicode統一規定,每個符號用三個或四個位元組表示,那么每個英文字母前都必然有二到三個位元組是0,這對于存盤空間來說是極大的浪費,

8、UTF-8

  • UTF-8 是在互聯網上使用最廣的一種 Unicode 的實作方式,
  • UTF-8 是一種變長的編碼方式,它可以使用 1-6 個位元組表示一個符號,根據不同的符號而變化位元組長度,
  • UTF-8的編碼規則:
    • 對于單位元組的UTF-8編碼,該位元組的最高位為0,其余7位用來對字符進行編碼(等同于ASCII碼),
    • 對于多位元組的UTF-8編碼,如果編碼包含 n 個位元組,那么第一個位元組的前 n 位為1,第一個位元組的第 n+1 位為0,該位元組的剩余各位用來對字符進行編碼,在第一個位元組之后的所有的位元組,都是最高兩位為"10",其余6位用來對字符進行編碼,

9、字串型別String

應用型別有3類:類,陣列,介面(這些參考型別的默認值都是null)

  • 字串型別:String
  • String屬于參考資料型別,翻譯為:字串
  • 宣告String型別變數時,使用雙引號: ""
  • 一個字串可以串接另一個字串,也可以串接其他資料型別
String name = "Star";
public class Grammar_String {
	public static void main(String [] args)
	{
		String s1 = "Hello World!";
		System.out.println(s1);
		
		String s2 = "a";
		String s3 = ""; //空
		System.out.println(s2);
		System.out.println(s3);
		
		//char c = ''; //編譯不能通過
		//---------------------------------
		
		int number = 1001;
		String numberStr = "學號:";
		String info = numberStr + number;  // + 連接運算
		boolean b1 = true;
		String info1 =info + b1;  //連接運算  info:資訊(information)
		System.out.println(info1);
		
		//練習1
		char c = 'a';
		int num = 10;
		String str = "Hello";
		System.out.println(c + num + str);
		System.out.println(c + str + num);
		System.out.println(c + (num + str));
		System.out.println((c + num) + str);
		System.out.println(str + num + c);
		
		//練習二
		System.out.println( (int)'\t' ); //9
		System.out.println( (int)'*' );  //42
		System.out.println("*       *");
		System.out.println('*' + '\t' + '*'); //42+9+42
		System.out.println('*' + "\t" + '*');
		System.out.println('*' + '\t' + "*");  //42+9
		System.out.println('*' + ('\t' + "*"));
		
	}
}

請添加圖片描述

五、Scanner類輸入與輸出

1、輸入與輸出

//如何從鍵盤獲取不同型別的變數
import java.util.Scanner //導包
Scanner scan = new Scanner(System.in); //Scanner的實體化(打開掃描儀)
String name = scan.next();
int age = scan.nextInt();

//輸出
System.out.println();//輸出內容并換行
System.out.printf();//輸出內容不換行

2、Scanner類的使用

具體實作步驟:

  1. 導包: import java.util.Scanner
  2. Scanner的實體化:Scanner scan = new Scanner(System.in);
  3. 呼叫 Scanner類 的相關方法:next() / nextXxx ,獲取指定型別變數

注意:需要根據相應的方法,來輸入指定型別的值,如果輸入的資料型別與要的型別不匹配時, 會報例外: InputMisMatchException,導致程式終止,

//第一步:導包  import java.util.Scanner;
import java.util.Scanner;

public class Java1_VariableScanner {
	public static void main(String [] args)
	{
		//第二步:Scanner的實體化
		//      scan 用戶自已定義
		Scanner scan = new Scanner(System.in);
		
		//第三步:呼叫Scanner類的相關方法
		//1、字串【特殊】
		System.out.println("請輸入你的姓名:");  //輸入123也對
		String name = scan.next();
		System.out.println(name);
		
		//2、字符:【特殊】
		//注意:對于char型的獲取,Scanner沒有提供相關的方法,只能獲取一個字串
		System.out.println("請輸入你的性別:(男/女)");
		String gender = scan.next();	//gender:性別
		char genderChar = gender.charAt(0);	   //獲取索引為0位置上的字符
		System.out.println(genderChar);
		
		
		//3、整型【nextInt】
		System.out.println("請輸入你的芳齡:");  //輸入浮點型18.8會報錯
		int age = scan.nextInt();
		System.out.println(age);
		
		//4、浮點型【netDobule】
		System.out.println("請輸入你的體重:");	//輸入整型100不會報錯
		double weight = scan.nextDouble();
		System.out.println(weight);
		
		//5、布爾型【nextBoolean】
		System.out.println("你是否相中我了呢?(true/false)");
		boolean islove = scan.nextBoolean();
		System.out.println(islove);
	
	}
}

請添加圖片描述

六、格式化輸出 printf

我們一般會使用轉義字符來控制輸出的格式,對于轉義字符可以調整輸出內容的格式,如果使用格式化輸出printf可以更好的控制輸出的內容格式,

System.out.println("hello\tworld");
System.out.printf("hello\tworld\n");

?? 運 行 ??
在這里插入圖片描述

1、保留xx位小數

格式化輸出:保留xx位小數

	@Test
    public void test3() {
        float a = 9.55f;
        float b = 8.8f;
        float c = 6f;
        System.out.println("從小到大排序后輸出結果:");
        System.out.printf("只保留整數:    %.0f    %.0f    %.0f\n",a,b,c);   //結果遵循四舍五入
        System.out.printf("保留一位小數:  %.1f   %.1f  %.1f\n",a,b,c);
        System.out.printf("保留不同位小數:%.0f    %.1f  %.2f\n",a,b,c);
    }

?? 運 行 ??
在這里插入圖片描述

2、楊輝三角(資料靠左或右)

格式化輸出:楊輝三角(資料靠左或右)

System.out.printf("%-5d",a);// %-m.nd形式
//m資料總寬度,n小數位數,
//負號:輸出數字或字符靠左
	@Test
    public void test2(){
        int[][] yangHui = new int[10][];

        for(int i = 0;i < yangHui.length;i++){
            yangHui[i] = new int[i + 1];
            yangHui[i][0] = yangHui[i][i] = 1;
            for(int j = 1;j < yangHui[i].length - 1;j++){
                yangHui[i][j] = yangHui[i-1][j-1] + yangHui[i-1][j];
            }
        }

        for(int[] arr : yangHui){
            for(int a : arr){
//                System.out.print(a + "\t");
                System.out.printf("%-5d",a);// %-m.nd形式
            }
            System.out.println();
        }

?? 運 行 ??

  • %-5d 資料靠左
  • %5d 資料靠右

在這里插入圖片描述

請添加圖片描述

最后推薦文章:

  • 電腦常用快捷鍵和操作你值得擁有!
  • 相見恨晚的強大截圖軟體:Snipaste


😜 相 見 就 是 【 猿 分 】 🐒
.
👀 感謝您閱讀完此文章 👀
.
? 希望能夠對你有所幫助 🎯
.
? 如果文章中有錯誤的地方請指正 ??
.
💪 感謝支持,一起加油,共同進步 🏃

請添加圖片描述

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

標籤:java

上一篇:?【Code皮皮蝦】通俗易懂,一次遍歷 + 雙指標怒解【通過洗掉字母匹配到字典里最長單詞】

下一篇:??0基礎小白也能看得懂的資料結構之堆疊???建議收藏?

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