主頁 > 前端設計 > Java基礎編程及思維導圖

Java基礎編程及思維導圖

2020-10-09 10:09:18 前端設計

java基礎編程及其思維導圖

  • 感謝尚硅谷宋紅康老師
  • java學習導圖
  • 一、java基本語法
    • 1.關鍵字與識別符號
    • 2.變數分類
    • 3.運算子
    • 4.流程控制
  • 二、陣列
    • 1.陣列概述
    • 2.一維陣列
    • 3.二維陣列
    • 4.陣列常見演算法
    • 5.Arrays工具類使用
  • 三、面向物件
    • java類及其類成員
    • 三大特性(封裝、繼承、多型)
    • 關鍵字

感謝尚硅谷宋紅康老師

第一次在B站上看見 宋紅康老師 的視頻,真的是不一樣感覺!不一樣的識訓!跟著你學習java編程方面知識有種隨其自然、水到成渠的感覺,謝謝您!宋紅康老師!
如果正在學習java小伙伴,推薦學習B站尚硅谷宋紅康老師視頻!(絕對沒有推銷,因為自己也不認識宋老師!只看過視頻!)

java學習導圖

在這里插入圖片描述

提示:基礎程式設計與面向物件編程屬于Java基礎編程,而應用程式開發與java新特性屬于java高級編程,


一、java基本語法

在這里插入圖片描述

1.關鍵字與識別符號

在這里插入圖片描述

關鍵字
	定義:被Java語言賦予了特殊含義,用做專門用途的字串(單詞)
	特點:所有字母都是小寫
	舉例:int、float、double.....
保留字
	定義:先階段Java版本未使用,但以后版本可能會當關鍵字使用
	現有保留字:goto、const
識別符號
	定義:凡是自己起的名字都叫識別符號
	涉及結構:包名、類名、介面名、變數名、屬性名、常量名
	系統命名規則
		由26個英文字母大小寫、0-9、_與$組成
		數字不可以開頭
		不能與關鍵字與保留字同名、但可以包含關鍵字與保留字
		嚴格區分大小寫
		不能有空格
	命名規范
		包名:多單詞組成時,所有字母都小寫 xxxyyy
		類名、介面名:多單詞組成時,所有首字母都大寫  XxxYyy
		變數名、方法名:多單詞組成時,第一個單詞首字母小寫,其它單詞首字母都大寫 xxxYyyZzz
		常量:所有字母都大寫,多單詞組成時,加_連接 XXX_YYY

2.變數分類

在這里插入圖片描述

變數分類
資料型別分類
	基本資料型別
		數值型
			整數型
				byte:一個位元組 -128-127
				short :兩個位元組
				int:四位元組(默認int型)
				long:八位元組(末尾加L)
			浮點數
				float:四位元組(末尾加F)
				double:八位元組(默認double型)
		字符型:char
		布爾型:boolean
	參考資料型別
		類
		介面
		陣列
所處位置分類
	成員變數
		實體變數(非static修飾)
		類變數(static修飾)
	區域變數
		形參
		方法區域變數
		代碼塊區域變數

定義變數格式
變數型別 變數名 = 變數值;
變數型別 變數名;變數名 = 變數值;

變數使用注意點

① 變數必須先宣告,后使用
② 變數都定義在其作用域內,在作用域內,它是有效的,換句話說,出了作用域,就失效了
③ 同一個作用域內,不可以宣告兩個同名的變數

基本資料變數運算規則

  1. 自動型別轉換:

    結論:當容量小的資料型別的變數與容量大的資料型別的變數做運算時,結果自動提升為容量大的資料型別,

    byte 、char 、short --> int --> long --> float --> double

    特別的:當byte、char、short三種型別的變數做運算時,結果為int型

說明:此時的容量大小指的是,表示數的范圍的大和小,比如:float容量要大于long的容量

  1. 強制型別轉換:

1.需要使用強轉符:()
2.注意點:強制型別轉換,可能導致精度損失,

3.運算子

在這里插入圖片描述
算術運算子: + - + - * / % (前)++ (后)++ (前)-- (后)-- +
特別說明:
1.(前)++ :先自增1,后運算
(后)++ :先運算,后自增1
2.(前)-- :先自減1,后運算
(后)-- :先運算,后自減1
3.連接符:+:只能使用在String與其他資料型別變數之間使用,

賦值運算子:= += -= *= /= %=
特別說明:
1.運算的結果不會改變變數本身的資料型別
2.
開發中,如果希望變數實作+1的操作,有幾種方法?(前提:int num = 10;)
//方式一:num = num + 1;
//方式二:num += 1;
//方式三:num++; (推薦)

比較運算子: == != > < >= <= instanceof
特別說明:
1.比較運算子的結果是boolean型別
2.> < >= <= :只能使用在數值型別的資料之間,
3. == 和 !=: 不僅可以使用在數值型別資料之間,還可以使用在其他參考型別變數之間,

邏輯運算子:& && | || ! ^
特別說明的:
1.邏輯運算子操作的都是boolean型別的變數,而且結果也是boolean型別

2.區分& 與 &&
相同點1:& 與 && 的運算結果相同
相同點2:當符號左邊是true時,二者都會執行符號右邊的運算
不同點:當符號左邊是false時,&繼續執行符號右邊的運算,&&不再執行符號右邊的運算,
開發中,推薦使用&&

3.區分:| 與 ||
相同點1:| 與 || 的運算結果相同
相同點2:當符號左邊是false時,二者都會執行符號右邊的運算
不同點3:當符號左邊是true時,|繼續執行符號右邊的運算,而||不再執行符號右邊的運算
開發中,推薦使用||

位運算子:<< >> >>> & | ^ ~

特別說明:

  1. 位運算子操作的都是整型的資料
  2. << :在一定范圍內,每向左移1位,相當于 * 2
    >>: 在一定范圍內,每向右移1位,相當于/2

三元運算子:(條件運算式)? 運算式1 : 運算式2
特別說明

  1. 說明
    ① 條件運算式的結果為boolean型別
    ② 根據條件運算式真或假,決定執行運算式1,還是運算式2.
    如果運算式為true,則執行運算式1,
    如果運算式為false,則執行運算式2,
    ③ 運算式1 和運算式2要求是一致的,
    ④ 三元運算子可以嵌套使用
  1. 凡是可以使用三元運算子的地方,都可以改寫為if-else
    反之,不成立,
  1. 如果程式既可以使用三元運算子,又可以使用if-else結構,那么優先選擇三元運算子,原因:簡潔、執行效率高,

4.流程控制

在這里插入圖片描述
分支結構:
1.if-else條件判斷結構

結構一:
if (條件運算式) {
執行運算式
}

結構二:二選一
if (條件運算式) {
執行運算式1
}else{
執行運算式2
}

結構三:n選一
if (條件運算式) {
執行運算式1
}else if (條件運算式) {
執行運算式2
}else if (條件運算式) {
執行運算式3
}

else{
執行運算式n
}

2.switch-case選擇結構

switch (運算式) {
case 常量1:
執行陳述句1;
break;
case 常量2:
執行陳述句2;
break;

default:
執行陳述句n;
break;
}

回圈結構:

1.回圈結構的四要素

① 初始化條件
② 回圈條件 —>是boolean型別
③ 回圈體
④ 迭代條件
說明:通常情況下,回圈結束都是因為②中回圈條件回傳false了,

2.三種回圈結構:

2.1 for回圈結構

for(①;②;④){

}
執行程序:① - ② - ③ - ④ - ② - ③ - ④ - … - ②

2.2 while回圈結構


while(②){
③;
④;
}
執行程序:① - ② - ③ - ④ - ② - ③ - ④ - … - ②
說明:
寫while回圈千萬小心不要丟了迭代條件,一旦丟了,就可能導致死回圈!

for和while回圈總結:

  1. 開發中,基本上我們都會從for、while中進行選擇,實作回圈結構,
  2. for回圈和while回圈是可以相互轉換的!
    區別:for回圈和while回圈的初始化條件部分的作用范圍不同
  3. 我們寫程式,要避免出現死回圈,

2.3 do-while回圈結構


do{
③;
④;
}while(②);
執行程序:① - ③ - ④ - ② - ③ - ④ - … - ②

說明:
1.do-while回圈至少會執行一次回圈體!
2.開發中,使用for和while更多一些,較少使用do-while

二、陣列

在這里插入圖片描述

1.陣列概述

在這里插入圖片描述
1.陣列理解: 陣列(Array),是多個相同型別資料一定順序排列的集合,并使用一個名字命名,并通過編號的方式對這些資料進行統一管理,

2.陣列相關的概念:

陣列名
元素
角標、下標、索引
陣列的長度:元素的個數

3.陣列的特點:

  1. 陣列是序排列的
  2. 陣列屬于參考資料型別的變數,陣列的元素,既可以是基本資料型別,也可以是參考資料型別
  3. 創建陣列物件會在記憶體中開辟一整塊連續的空間
  4. 陣列的長度一旦確定,就不能修改,

4. 陣列的分類:
① 照維數:一維陣列、二維陣列、,,,
② 照陣列元素的型別:基本資料型別元素的陣列、參考資料型別元素的陣列

2.一維陣列

在這里插入圖片描述
1.一維陣列的宣告與初始化

	int[] ids;//宣告
	//1.1 靜態初始化:陣列的初始化和陣列元素的賦值操作同時進行
	ids = new int[]{1001,1002,1003,1004};
	//1.2動態初始化:陣列的初始化和陣列元素的賦值操作分開進行
	String[] names = new String[5];

    int[] arr4 = {1,2,3,4,5};//型別推斷

錯誤的方式:
// int[] arr1 = new int[];
// int[5] arr2 = new int[5];
// int[] arr3 = new int[3]{1,2,3};

2.一維陣列元素的參考:通過角標的方式呼叫,
陣列的角標(或索引從0開始的,到陣列的長度-1結束)

3.陣列的屬性:length
System.out.println(names.length);//5
System.out.println(ids.length);

說明:
陣列一旦初始化,其長度就是確定的,arr.length
陣列長度一旦確定,就不可修改,

4.一維陣列的遍歷
for(int i = 0;i < names.length;i++){
System.out.println(names[i]);
}

5.一維陣列元素的默認初始化值
> 陣列元素是整型:0
> 陣列元素是浮點型:0.0
> 陣列元素是char型:0或’\u0000’,而非’0’
> 陣列元素是boolean型:false
> 陣列元素是參考資料型別:null

3.二維陣列

在這里插入圖片描述
1.如何理解二維陣列?
陣列屬于參考資料型別
陣列的元素也可以是參考資料型別
一個一維陣列A的元素如果還是一個一維陣列型別的,則,此陣列A稱為二維陣列,

2.二維陣列的宣告與初始化

int[] arr = new int[]{1,2,3};//一維陣列
	//靜態初始化
	int[][] arr1 = new int[][]{{1,2,3},{4,5},{6,7,8}};
	//動態初始化1
	String[][] arr2 = new String[3][2];
	//動態初始化2
	String[][] arr3 = new String[3][];
//也是正確的寫法:
	int[] arr4[] = new int[][]{{1,2,3},{4,5,9,10},{6,7,8}};
	int[] arr5[] = {{1,2,3},{4,5},{6,7,8}};//型別推斷

錯誤的方式:
// String[][] arr4 = new String[][4];
// String[4][3] arr5 = new String[][];
// int[][] arr6 = new int[4][3]{{1,2,3},{4,5},{6,7,8}};

3.如何呼叫二維陣列元素:
System.out.println(arr1[0][1]);//2
System.out.println(arr2[1][1]);//null

	arr3[1] = new String[4];
	System.out.println(arr3[1][0]);
System.out.println(arr3[0]);//

4.遍歷二維陣列元素

for(int i = 0; i < arr.length;i++)
for(int j = 0;j < arr[i].length;j++){
System.out.print(arr[i][j] + " ")
}

4.陣列常見演算法

1.陣列的創建與元素賦值
楊輝三角(二維陣列)、回形數(二維陣列)、6個數,1-30之間隨機生成且不重復,

2.針對于數值型的陣列:
最大值、最小值、總和、平均數等

3.陣列的賦值與復制
int[] array1,array2;
array1 = new int[]{1,2,3,4};
3.1 賦值:

array2 = array1;
如何理解:將array1保存的陣列的地址值賦給了array2,使得array1和array2共同指向堆空間中的同一個陣列物體,

3.2 復制:

array2 = new int[array1.length];
for(int i = 0;i < array2.length;i++){
array2[i] = array1[i];
}
如何理解:我們通過new的方式,給array2在堆空間中新開辟了陣列的空間,將array1陣列中的元素值一個一個的賦值到array2陣列中,

5.Arrays工具類使用

1.理解:
① 定義在java.util包下,
② Arrays:提供了很多操作陣列的方法,

2.使用:

//1.boolean equals(int[] a,int[] b):判斷兩個陣列是否相等,
		int[] arr1 = new int[]{1,2,3,4};
		int[] arr2 = new int[]{1,3,2,4};
		boolean isEquals = Arrays.equals(arr1, arr2);
		System.out.println(isEquals);
		
		//2.String toString(int[] a):輸出陣列資訊,
		System.out.println(Arrays.toString(arr1));
		
			
		//3.void fill(int[] a,int val):將指定值填充到陣列之中,
		Arrays.fill(arr1,10);
		System.out.println(Arrays.toString(arr1));
		

		//4.void sort(int[] a):對陣列進行排序,
		Arrays.sort(arr2);
		System.out.println(Arrays.toString(arr2));
		
		//5.int binarySearch(int[] a,int key)
		int[] arr3 = new int[]{-98,-34,2,34,54,66,79,105,210,333};
		int index = Arrays.binarySearch(arr3, 210);
		if(index >= 0){
			System.out.println(index);
		}else{
			System.out.println("未找到");
		}

三、面向物件

在這里插入圖片描述

java類及其類成員

1.類的設計中,兩個重要結構之一:屬性

對比:屬性 vs 區域變數

1.相同點:
1.1 定義變數的格式:資料型別 變數名 = 變數值
1.2 先宣告,后使用
1.3 變數都其對應的作用域

2.不同點:

2.1 在類中宣告的位置的不同
屬性:直接定義在類的一對{}內
區域變數:宣告在方法內、方法形參、代碼塊內、構造器形參、構造器內部的變數

2.2 關于權限修飾符的不同
屬性:可以在宣告屬性時,指明其權限,使用權限修飾符,
常用的權限修飾符:private、public、預設、protected —>封裝性
目前,大家宣告屬性時,都使用預設就可以了,
區域變數:不可以使用權限修飾符,

2.3 默認初始化值的情況:
屬性:類的屬性,根據其型別,都默認初始化值,
整型(byte、short、int、long:0)
浮點型(float、double:0.0)
字符型(char:0 (或’\u0000’))
布爾型(boolean:false)

		參考資料型別(類、陣列、介面:null)

	區域變數:沒默認初始化值,
	意味著,我們在呼叫區域變數之前,一定要顯式賦值,
		特別地:形參在呼叫時,我們賦值即可,

2.4 在記憶體中加載的位置:
屬性:加載到堆空間中 (非static)
區域變數:加載到堆疊空間

2.類的設計中,兩個重要結構之二:方法
方法:描述類應該具的功能,

1.舉例:
  • public void eat(){}
  • public void sleep(int hour){}
  • public String getName(){}
  • public String getNation(String nation){}

2. 方法的宣告:權限修飾符 回傳值型別 方法名(形參串列){
方法體
}

3. 說明:
3.1 關于權限修飾符:默認方法的權限修飾符先都使用public
Java規定的4種權限修飾符:private、public、預設、protected -->封裝性再細說

3.2 回傳值型別: 回傳值 vs 沒回傳值

3.2.1 如果方法回傳值,則必須在方法宣告時,指定回傳值的型別,同時,方法中,需要使用 return關鍵字來回傳指型別的變數或常量:“return 資料”,如果方法沒回傳值,則方法宣告時,使用void來表示,通常,沒回傳值的方法中,就不需要使用return.但是,如果使用的話,只能“return;”表示結束此方法的意思,

構造器(或構造方法):
構造器的作用:

  • 1.創建物件
  • 2.初始化物件的資訊

使用說明:
1.如果沒顯式的定義類的構造器的話,則系統默認提供一個空參的構造器
2.定義構造器的格式:權限修飾符 類名(形參串列){}
3.一個類中定義的多個構造器,彼此構成多載
4.一旦我們顯式的定義了類的構造器之后,系統就不再提供默認的空參構造器
5.一個類中,至少會有一個構造器,

三大特性(封裝、繼承、多型)

面向物件的特征一:封裝與隱藏

1.為什么要引入封裝性?
我們程式設計追求“高內聚,低耦合”,
高內聚 :類的內部資料操作細節自己完成,不允許外部干涉;
低耦合 :僅對外暴露少量的方法用于使用,

隱藏物件內部的復雜性,只對外公開簡單的介面,便于外界呼叫,從而提高系統的可擴展性、可維護性,通俗的說,把該隱藏的隱藏起來,該暴露的暴露出來,這就是封裝性的設計思想,

2.封裝性思想具體的代碼體現:
體現一:將類的屬性xxx私化(private),同時,提供公共的(public)方法來獲取(getXxx)和設定(setXxx)此屬性的值
private double radius;
public void setRadius(double radius){
this.radius = radius;
}
public double getRadius(){
return radius;
}
體現二:不對外暴露的私有的方法
體現三:單例模式(將構造器私有化)
體現四:如果不希望類在包外被呼叫,可以將類設定為預設的,

3.Java規定的四種權限修飾符
在這里插入圖片描述

3.1 權限從小到大順序為:private < 預設 < protected < public
3.2 具體的修飾范圍:
3.3 權限修飾符可用來修飾的結構說明:

4.種權限都可以用來修飾類的內部結構:屬性、方法、構造器、內部類
修飾類的話,只能使用:預設、public

面向物件特征二:繼承性

1.繼承性的格式:
class A extends B{}

  • A:子類、派生類、subclass
  • B:父類、超類、基類、superclass

2.子類繼承父類以后有哪些不同?

2.1體現:一旦子類A繼承父類B以后,子類A中就獲取了父類B中宣告的所有的屬性和方法,
特別的,父類中宣告為private的屬性或方法,子類繼承父類以后,仍然認為獲取了父類中私的結構,只因為封裝性的影響,使得子類不能直接呼叫父類的結構而已,

2.2 子類繼承父類以后,還可以宣告自己特有的屬性或方法:實作功能的拓展,

  • 子類和父類的關系,不同于子集和集合的關系,
  • extends:延展、擴展

3.Java中繼承性的說明

3.1.一個類可以被多個子類繼承,

3.2.Java中類的單繼承性:一個類只能有一個父類
3.3.子父類是相對的概念,
3.4.子類直接繼承的父類,稱為:直接父類,間接繼承的父類稱為:間接父類
3.5.子類繼承父類以后,就獲取了直接父類以及所間接父類中宣告的屬性和方法

面向物件的特性三:多型性

1.多型性的理解:可以理解為一個事物的多種形態,

2.何為多型性:
物件的多型性:父類的參考指向子類的物件(或子類的物件賦給父類的參考)
舉例:
Person p = new Man();
Object obj = new Date();

3.多型性的使用:虛擬方法呼叫
有了物件的多型性以后,我們在編譯期,只能呼叫父類中宣告的方法,但在運行期,我們實際執行的是子類重寫父類的方法,
總結:編譯,看左邊;運行,看右邊,

4.多型性的使用前提:
① 類的繼承關系 ② 方法的重寫

6.多型性使用的注意點:
物件的多型性,只適用于方法,不適用于屬性(編譯和運行都看左邊)

關鍵字

關鍵字:this
1.可以呼叫的結構:屬性、方法;構造器

2.this呼叫屬性、方法:
this理解為:當前物件 或 當前正在創建的物件

2.1 在類的方法中,我們可以使用"this.屬性"或"this.方法"的方式,呼叫當前物件屬性或方法,但是通常情況下,我們都擇省略"this.",特殊情況下,如果方法的形參和類的屬性同名時,我們必須顯式的使用"this.變數"的方式,表明此變數是屬性,而非形參,

2.2 在類的構造器中,我們可以使用"this.屬性"或"this.方法"的方式,呼叫當前正在創建的物件屬性或方法,但是,通常情況下,我們都擇省略"this.",特殊情況下,如果構造器的形參和類的屬性同名時,我們必須顯式的使用"this.變數"的方式,表明此變數是屬性,而非形參,

3.this呼叫構造器:

① 我們在類的構造器中,可以顯式的使用"this(形參串列)"方式,呼叫本類中指定的其他構造器
② 構造器中不能通過"this(形參串列)“方式呼叫自己
③ 如果一個類中有n個構造器,則最多有 n - 1構造器中使用了"this(形參串列)”
④ 規定:"this(形參串列)“必須宣告在當前構造器的首行
⑤ 構造器內部,最多只能宣告一個"this(形參串列)”,用來呼叫其他的構造器

關鍵字:abstract
abstract: 抽象的
1.可以用來修飾:類、方法
2.具體的:
abstract修飾類:抽象類

  此類不能實體化
 抽象類中一定有構造器,便于子類實體化時呼叫(涉及:子類物件實體化的全程序)
  開發中,都會提供抽象類的子類,讓子類物件實體化,完成相關的操作 --->抽象的使用前提:繼承性

abstract修飾方法:抽象方法

抽象方法只方法的宣告,沒方法體
包含抽象方法的類,一定是一個抽象類,反之,抽象類中可以沒有抽象方法的,
   若子類重寫了父類中的所的抽象方法后,此子類方可實體化
   若子類沒重寫父類中的所的抽象方法,則此子類也是一個抽象類,需要使用abstract修飾

3.注意點:

1.abstract不能用來修飾:屬性、構造器等結構
2.abstract不能用來修飾私方法、靜態方法、final的方法、final的類

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

標籤:其他

上一篇:單向鏈表

下一篇:LeetCode239. 滑動視窗最大值

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

熱門瀏覽
  • vue移動端上拉加載

    可能做得過于簡單或者比較low,請各位大佬留情,一起探討技術 ......

    uj5u.com 2020-09-10 04:38:07 more
  • 優美網站首頁,頂部多層導航

    一個個人用的瀏覽器首頁,可以把一下常用的網站放在這里,平常打開會比較方便。 第一步,HTML代碼 <script src=https://www.cnblogs.com/szharf/p/"js/jquery-3.4.1.min.js"></script> <div id="navigate"> <ul> <li class="labels labels_1"> ......

    uj5u.com 2020-09-10 04:38:47 more
  • 頁面為要加<!DOCTYPE html>

    最近因為寫一個js函式,需要用到$(window).height(); 由于手寫demo的時候,過于自信,其實對前端方面的認識也不夠體系,用文本檔案直接敲出來的html代碼,第一行沒有加上<!DOCTYPE html> 導致了$(window).height();的結果直接是整個document的高 ......

    uj5u.com 2020-09-10 04:38:52 more
  • WordPress網站程式手動升級要做好資料備份

    WordPress博客網站程式在進行升級前,必須要做好網站資料的備份,這個問題良家佐言是遇見過的;在剛開始接觸WordPress博客程式的時候,因為升級問題和博客網站的修改的一些嘗試,良家佐言是吃盡了苦頭。因為購買的是西部數碼的空間和域名,每當佐言把自己的WordPress博客網站搞到一塌糊涂的時候 ......

    uj5u.com 2020-09-10 04:39:30 more
  • WordPress程式不能升級為5.4.2版本的原因

    WordPress是一款個人博客系統,受到英文博客愛好者和中文博客愛好者的追捧,并逐步演化成一款內容管理系統軟體;它是使用PHP語言和MySQL資料庫開發的,用戶可以在支持PHP和MySQL資料庫的服務器上使用自己的博客。每一次WordPress程式的更新,就會牽動無數WordPress愛好者的心, ......

    uj5u.com 2020-09-10 04:39:49 more
  • 使用CSS3的偽元素進行首字母下沉和首行改變樣式

    網頁中常見的一種效果,首字改變樣式或者首行改變樣式,效果如下圖。 代碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, ......

    uj5u.com 2020-09-10 04:40:09 more
  • 關于a標簽的講解

    什么是a標簽? <a> 標簽定義超鏈接,用于從一個頁面鏈接到另一個頁面。 <a> 元素最重要的屬性是 href 屬性,它指定鏈接的目標。 a標簽的語法格式:<a href=https://www.cnblogs.com/summerxbc/p/"指定要跳轉的目標界面的鏈接">需要展示給用戶看見的內容</a> a標簽 在所有瀏覽器中,鏈接的默認外觀如下: 未被訪問的鏈接帶 ......

    uj5u.com 2020-09-10 04:40:11 more
  • 前端輪播圖

    在需要輪播的頁面是引入swiper.min.js和swiper.min.css swiper.min.js地址: 鏈接:https://pan.baidu.com/s/15Uh516YHa4CV3X-RyjEIWw 提取碼:4aks swiper.min.css地址 鏈接:https://pan.b ......

    uj5u.com 2020-09-10 04:40:13 more
  • 如何設定html中的背景圖片(全屏顯示,且不拉伸)

    1 <style>2 body{background-image:url(https://uploadbeta.com/api/pictures/random/?key=BingEverydayWallpaperPicture); 3 background-size:cover;background ......

    uj5u.com 2020-09-10 04:40:16 more
  • Java學習——HTML詳解(上)

    HTML詳解 初識HTML Hyper Text Markup Language(超文本標記語言) 1 <!--DOCTYPE:告訴瀏覽器我們要使用什么規范--> 2 <!DOCTYPE html> 3 <html lang="en"> 4 <head> 5 <!--meta 描述性的標簽,描述一些 ......

    uj5u.com 2020-09-10 04:40:33 more
最新发布
  • 我的第一個NPM包:panghu-planebattle-esm(胖虎飛機大戰)使用說明

    好家伙,我的包終于開發完啦 歡迎使用胖虎的飛機大戰包!! 為你的主頁添加色彩 這是一個有趣的網頁小游戲包,使用canvas和js開發 使用ES6模塊化開發 效果圖如下: (覺得圖片太sb的可以自己改) 代碼已開源!! Git: https://gitee.com/tang-and-han-dynas ......

    uj5u.com 2023-04-20 07:59:23 more
  • 生產事故-走近科學之消失的JWT

    入職多年,面對生產環境,盡管都是小心翼翼,慎之又慎,還是難免捅出簍子。輕則滿頭大汗,面紅耳赤。重則系統停擺,損失資金。每一個生產事故的背后,都是寶貴的經驗和教訓,都是專案成員的血淚史。為了更好地防范和遏制今后的各類事故,特開此專題,長期更新和記錄大大小小的各類事故。有些是親身經歷,有些是經人耳傳口授 ......

    uj5u.com 2023-04-18 07:55:04 more
  • 記錄--Canvas實作打飛字游戲

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 打開游戲界面,看到一個畫面簡潔、卻又富有挑戰性的游戲。螢屏上,有一個白色的矩形框,里面不斷下落著各種單詞,而我需要迅速地輸入這些單詞。如果我輸入的單詞與螢屏上的單詞匹配,那么我就可以獲得得分;如果我輸入的單詞錯誤或者時間過長,那么我就會輸 ......

    uj5u.com 2023-04-04 08:35:30 more
  • 了解 HTTP 看這一篇就夠

    在學習網路之前,了解它的歷史能夠幫助我們明白為何它會發展為如今這個樣子,引發探究網路的興趣。下面的這張圖片就展示了“互聯網”誕生至今的發展歷程。 ......

    uj5u.com 2023-03-16 11:00:15 more
  • 藍牙-低功耗中心設備

    //11.開啟藍牙配接器 openBluetoothAdapter //21.開始搜索藍牙設備 startBluetoothDevicesDiscovery //31.開啟監聽搜索藍牙設備 onBluetoothDeviceFound //30.停止監聽搜索藍牙設備 offBluetoothDevi ......

    uj5u.com 2023-03-15 09:06:45 more
  • canvas畫板(滑鼠和觸摸)

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>canves</title> <style> #canvas { cursor:url(../images/pen.png),crosshair; } #canvasdiv{ bo ......

    uj5u.com 2023-02-15 08:56:31 more
  • 手機端H5 實作自定義拍照界面

    手機端 H5 實作自定義拍照界面也可以使用 MediaDevices API 和 <video> 標簽來實作,和在桌面端做法基本一致。 首先,使用 MediaDevices.getUserMedia() 方法獲取攝像頭媒體流,并將其傳遞給 <video> 標簽進行渲染。 接著,使用 HTML 的 < ......

    uj5u.com 2023-01-12 07:58:22 more
  • 記錄--短視頻滑動播放在 H5 下的實作

    這里給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 短視頻已經無數不在了,但是主體還是使用 app 來承載的。本文講述 H5 如何實作 app 的視頻滑動體驗。 無聲勝有聲,一圖頂百辯,且看下圖: 網址鏈接(需在微信或者手Q中瀏覽) 從上圖可以看到,我們主要實作的功能也是本文要講解的有: ......

    uj5u.com 2023-01-04 07:29:05 more
  • 一文讀懂 HTTP/1 HTTP/2 HTTP/3

    從 1989 年萬維網(www)誕生,HTTP(HyperText Transfer Protocol)經歷了眾多版本迭代,WebSocket 也在期間萌芽。1991 年 HTTP0.9 被發明。1996 年出現了 HTTP1.0。2015 年 HTTP2 正式發布。2020 年 HTTP3 或能正... ......

    uj5u.com 2022-12-24 06:56:02 more
  • 【HTML基礎篇002】HTML之form表單超詳解

    ??一、form表單是什么

    ??二、form表單的屬性

    ??三、input中的各種Type屬性值

    ??四、標簽 ......

    uj5u.com 2022-12-18 07:17:06 more