Java 修飾符詳解:吐血整理,帶你從底層語法和開發案例疏通這 11 種常見修飾符

文章目錄

  • 前言
  • 一、11 種常見的 Java 修飾符
    • 1.1、修飾符應用表
    • 1.2、修飾符訪問權限對比
  • 二、public 修飾符
    • 2.1、public 修飾符語法說明
    • 2.2、public 修飾符開發應用
  • 三、private 修飾符
    • 3.1、private 修飾符語法說明
    • 3.2、private 修飾符開發應用
  • 四、protected 修飾符
    • 4.1、protected 修飾符語法說明
    • 4.2、protected 修飾符開發應用
  • 五、default 修飾符(不加任何訪問權限修飾符)
    • 5.1、default 修飾符語法說明
    • 5.2、default 修飾符開發應用
  • 六、static 修飾符
    • 6.1、類(靜態)變量與實例變量
      • 6.1.1、類(靜態)變量與實例變量語法說明
      • 6.1.2、類(靜態)變量與實例變量開發應用
    • 6.2、類(靜態)方法與實例方法
      • 6.2.1、類(靜態)方法與實例方法語法說明
      • 6.2.2、類(靜態)方法與實例方法開發應用
    • 6.3、static 靜態代碼段
      • 6.3.1、static 靜態代碼段語法說明
      • 6.3.2、static 靜態代碼段開發應用
    • 6.4、static 內部類
  • 七、final 修飾符
    • 7.1、final 修飾符語法說明
    • 7.2、final 修飾符開發應用
  • 八、abstract 修飾符
    • 8.1、abstract 修飾符語法說明
    • 8.2、abstract 修飾符開發應用
  • 九、接口(特殊的抽象類)
    • 9.1、接口語法說明
    • 9.2、接口開發應用
    • 9.3、抽象類和接口的區別是什么?
    • 9.4、什么是適配器?
  • 總結


前言

在 Java 的語言體系中共有 11 種常見的修飾符,其在我們日常的開發中一般有四種使用情況:成員變量、成員方法、代碼塊和內部類,那么在應用過程中我們還應該具體注意些什么?通過本文中我們將從最基礎的底層和原理來理解和疏通這些常見修飾符語法說明以及在常見的開發中如何使用。

在這里插入圖片描述


一、11 種常見的 Java 修飾符

1.1、修飾符應用表

修飾符構造方法方法數據解釋
(default)類、構造方法、方法或數據域在所在的包中可見
public類、構造方法、方法或數據域在任何包任何程序中都可見
private構造方法、方法或數據域只在所在的類中可見
protected構造方法、方法或數據域在所屬的包中可見,或者在任何包中該類的子類中可見
static定義類方法、類數據域或靜態初始化模塊
final終極類不能擴展。終極方法不能在子類中修改。終極數據域是常量
abstract抽象類必須被擴展。抽象方法必須在具體的子類中實現
native用native修飾的方法表明它是用Java以外的語言實現的
synchronized同一時間只有一個線程可以執行這個方法
strictfp使用精確浮點數計算模式,保證在所有的Java虛擬機中計算結果都相同
transient標記實例數據域,使其不進行序列化

1.2、修飾符訪問權限對比

public > protected > default > private

說明:以下僅介紹我們常用的 7 種修飾符語法說明以及開發應用說明,另外 4 種用法查看修飾符應用表即可。

二、public 修飾符

2.1、public 修飾符語法說明

  • 修飾類、方法、變量。
  • 可以在任意位置訪問,公共的。

2.2、public 修飾符開發應用

  • 開發中,通常類和業務方法都使用 public 修飾。

三、private 修飾符

3.1、private 修飾符語法說明

  • 修飾方法、變量、還可以修飾內部類。
  • 只能在本類中訪問,私有的。

3.2、private 修飾符開發應用

  • 開發中,通常實體類(Entity,Vo)中的成員變量使用 private 修飾,會提供訪問這些變量的方法 getter 或 setter,原則上要求不準定義私有的方法。
  • 一個實體數據的表通常對應一個實體類。

四、protected 修飾符

4.1、protected 修飾符語法說明

  • 修飾方法、變量、還可以修飾內部類。
  • 同一個包可以訪問、子類可以訪問(子類和父類不在同一個包也可以訪問)。

4.2、protected 修飾符開發應用

  • 開發中,通常方法或變量是用來繼承的,都使用 protected 修飾。
  • 在繼承中,方法的重寫,子類方法的訪問權限必須大于或等于父類方法的訪問權限,舉例代碼如下:
class Fu {public void play() {}
}class Son extends Fu {void play() {}
}

五、default 修飾符(不加任何訪問權限修飾符)

說明:使用 default 修飾符與不加任何訪問權限修飾符效果是一樣的。

5.1、default 修飾符語法說明

  • 修飾類、方法、變量。
  • 只能在同一個包中訪問,子類也必須在同一個包中。

5.2、default 修飾符開發應用

  • 項目中,類、方法、變量根據需求,通常都會指定訪問權限。

六、static 修飾符

由于static 修飾符作用較多,我們對其拆開進行逐步分析。

6.1、類(靜態)變量與實例變量

  • 類變量:被存儲在方法區中,“只有一份”,被所有對象共享。當類被加載的時候,立即被存儲在方法區中,當類被卸載,類變量立即釋放內存。
  • 實例變量:在創建對象之后,被分配到堆內存中,實例變量屬于某個具體的對象。當創建對象,實例變量出現在堆內存中,當對象被垃圾回收,實例變量立即釋放內存。

比如我們創建兩個對象,代碼如下:

Cell c1 = new Cell(4,5);
Cell c2 = new Cell(5,6);

當創建對象 c1,c2 時,實例變量(4,5),(5,6)出現在堆內存中,當對象 c1,c2 被垃圾回收,實例變量立即釋放內存。

6.1.1、類(靜態)變量與實例變量語法說明

  • Java 中 可以通過 static 關鍵字修飾變量達到全局變量的效果
  • static 修飾的變量(靜態變量)屬于類,在類第一次通過類加載器到 jvm 時被分配至方法區,所以我們也稱其為類變量。

在這里插入圖片描述

  • 沒有 static 修飾的變量,稱為實例變量。

6.1.2、類(靜態)變量與實例變量開發應用

  • 類變量可以由類名直接訪問,開發中推薦使用類名的全稱。

比如我們定義一個實體類,代碼如下:

public class Student {// 實例變量,在創建對象之后,被分配到堆內存中,實例變量屬于某個具體的對象// 當創建對象,實例變量出現在堆內存中,當對象被垃圾回收,實例變量立即釋放內存String name;// 類變量,被存儲在方法區中,"只有一份",被所有對象共享static String jtName;public void print() {System.out.println(this.name);System.out.println(jtName);}
}

下次使用靜態變量 jtName 時,我們直接使用 Student 這個類名直接調用即可。
同時我們也就可以理解下面兩個對象的屬性取值是一樣的,代碼如下:

public class Demo01 {public static void main(String[] args) {// TODO Auto-generated method stubStudent stu1 = new Student();stu1.name = "張三";stu1.jtName = "王老師";Student stu2 = new Student();// 一般直接取類名// stu2.jtName = "盧老師";Student.jtName = "盧老師";System.out.println(stu1.name);// 張三System.out.println(stu2.name);// nullSystem.out.println(stu1.jtName);// 盧老師System.out.println(stu2.jtName);// 盧老師}
}

6.2、類(靜態)方法與實例方法

  • 靜態方法:static 修飾的方法屬于類方法,不需要創建對象就可以調用。static 方法中不能使用 this 和 super 等關鍵字,不能調用非 static 方法,只能訪問所屬類的靜態成員變量和靜態方法。靜態方法(類方法),當類被加載,靜態方法立即被加載到方法區中,類方法可以由類名直接調用。
  • 實例方法:沒有 static 修飾的方法,實例方法,當創建對象之后,實例方法立即被加載到方法區中,多個實例共享一份實例方法。

6.2.1、類(靜態)方法與實例方法語法說明

  • 類方法中,不能使用 this 關鍵字,類方法中不隱含調用該方法對象的參數。
  • 實例方法可以直接調用靜態方法,靜態方法不可以直接訪問實例成員,必須創建對象,由對象訪問。
  • 所有對象共享的數據,定義為靜態變量,否則定義為實例變量方法,方法中沒有訪問實例成員,可以定義為靜態方法。

6.2.2、類(靜態)方法與實例方法開發應用

  • 項目中,通常工具類中的方法,都是靜態的。

6.3、static 靜態代碼段

6.3.1、static 靜態代碼段語法說明

  • JVM 在加載類時會執行 static 靜態代碼段,常用于初始化靜態變量。
  • static 代碼只會在類被加載時執行且執行一次。
  • 靜態優于對象。

6.3.2、static 靜態代碼段開發應用

  • 開發中,通常用于加載靜態資源,讀取配置文件等操作,在靜態代碼段中實現。

比如我們定義一個工具類,代碼如下:

public class SomeUtil {// 默認的無參構造public SomeUtil() {System.out.println("創建對象!");}// 靜態優于對象// 靜態代碼段 當類被加載,立即被執行,一個類在同一個進程中,只加載一次static {System.out.println("加載靜態資源!");}// 實例代碼段{System.out.println("實例代碼段!");}public static void do1() {System.out.println("do1....");}public static void do2() {System.out.println("do2....");}public static void do3() {System.out.println("do3....");}public static void main(String[] args) {SomeUtil.do1();SomeUtil.do2();SomeUtil.do3();SomeUtil s1 = new SomeUtil();SomeUtil s2 = new SomeUtil();}
}

執行 main 方法,根據輸出的內容我們可以明確看出執行的順序。靜態代碼段只執行一次,然后是靜態方法被執行,最后是 new 的對象執行無參構造和實例代碼段,new 一次執行一次。

同時也可以得出我們的結論:靜態優于對象,如下圖所示:

在這里插入圖片描述

6.4、static 內部類

  • static 內部類可以不依賴外部類實例對象而被實例化,而內部類需要在外部類實例化后才能被實例化。
  • 靜態內部類不能訪問外部類的普通變量,只能訪問外部類的靜態成員變量和靜態方法。

七、final 修飾符

7.1、final 修飾符語法說明

  • final 類,不能被繼承。
  • final 方法,不能被重寫。
  • final 修飾的變量,是常量。

7.2、final 修飾符開發應用

  • 開發中,我們使用 final 定義數據字典。

比如:在如下 Card 類中我們定義數據字典,用于 main 函數的輸出和查詢。

說明:數據字典是指對數據的數據項、數據結構、數據流、數據存儲、處理邏輯等進行定義和描述,其目的是對數據流程圖中的各個元素做出詳細的說明,使用數據字典為簡單的建模項目。簡而言之,數據字典是描述數據的信息集合,是對系統中使用的所有數據元素的定義的集合。

舉例使用 final 定義數據字典,代碼如下:

public class Card {// 開發中,使用final定義數據字典。public static final int SPADE = 1;public static final int HEART = 2;public static final int BLACK = 5;public static final int FLOWER = 6;public static final int THREE = 0;public static final int EIGHT = 5;public static final int JACK = 8;public static final int QUEEN = 9;public static final int KING = 10;public static final int ACE = 11;public static final int DUCE = 12;public static final int JOKER = 13;private int suit;private int num;public Card() {}public Card(int suit, int num) {this.suit = suit;this.num = num;}public int getSuit() {return suit;}public void setSuit(int suit) {this.suit = suit;}public int getNum() {return num;}public void setNum(int num) {this.num = num;}public static void main(String[] args) {Card card = new Card(Card.HEART, Card.THREE);System.out.println(card.getNum());}
}

八、abstract 修飾符

8.1、abstract 修飾符語法說明

  • 抽象的,可以修飾類,修飾方法

修飾抽象類

  • 抽象類存在的意義在于被繼承。
  • 抽象類不可以創建對象。
  • abstract 不能和 final 一起使用 。

修飾抽象方法

  • 抽象方法,只有定義沒有實現。
  • 如果一個類中有抽象方法,這個類必須是抽象類。
  • 一個抽象類中,可以沒有抽象方法。
  • 抽象類的子類,必須實現父類中所有的抽象方法。

8.2、abstract 修飾符開發應用

  • 抽象類中既可以有默認實現的方法,又可以有沒有實現的方法。
  • 接口的適配器——用子類去實現接口中的方法。

九、接口(特殊的抽象類)

9.1、接口語法說明

  • 特殊的抽象類接口中的方法都是抽象方法,接口中的變量都是靜態常量。
  • 定義接口使用 interface 關鍵字。
  • 實現接口使用 implements 關鍵字。
  • 類實現了接口,必須實現接口中所有的方法。

如下我們定義了一個接口 MyInterface,代碼如下:

public interface MyInterface {// 接口是高一級別的抽象。不能被實例化,所以只能定義常量// 定義了變量需要實例化,賦值才能使用,跟接口違背// 特殊的抽象類 接口中的方法都是抽象方法 接口中的變量都是靜態常量int I = 10;// 如果類中所有的方法都是抽象方法,使用接口void method1();void method2();
}

這里我們 MyImpClass 類實現了接口,就必須實現接口中所有的方法,代碼如下:

import java.io.Serializable;/*** 其實適配器只是一個類,它實現了某種接口,提供了方法體。 * 這樣,再用到這個接口時,可以直接繼承適配器,這樣就不需要把接口中的每一個方法再填充一遍了。* 只需要在這個類中復寫一下需要用的方法。這樣簡單,方便。* * @author bailu*  */
public class MyImpClass implements MyInterface, Serializable {// Serializable序列化private static final long serialVersionUID = 1L;// 重寫接口的方法——適配器,@Overridepublic void method1() {System.out.println(I);}@Overridepublic void method2() {}
}

9.2、接口開發應用

  • 如果類中所有的方法都是抽象方法,使用接口。
  • 接口是用來制定標準或規范。
  • 可以降低組件之間的耦合度,擴展組件的功能。
  • 體現了設計模式中的開閉原則。

9.3、抽象類和接口的區別是什么?

  • 抽象類中,可以定義抽象方法和非抽象方法。接口中,所有的方法都是抽象方法。
  • 一個類只能繼承一個抽象類。一個類可以實現多個接口,多個接口使用逗號分隔。

如下的類既實現了接口 MyInterface,同時實現了 Serializable 序列化序列化,代碼如下:

import java.io.Serializable;/**- 其實適配器只是一個類,它實現了某種接口,提供了方法體。 - 這樣,再用到這個接口時,可以直接繼承適配器,這樣就不需要把接口中的每一個方法再填充一遍了。- 只需要在這個類中復寫一下需要用的方法。這樣簡單,方便。- - @author bailu-  */
public class MyImpClass implements MyInterface, Serializable {// Serializable序列化private static final long serialVersionUID = 1L;// 重寫接口的方法——適配器,@Overridepublic void method1() {System.out.println(I);}@Overridepublic void method2() {}
}
  • 抽象類之間也可以繼承,但是也只是支持單繼承。
  • 接口之間也可以繼承,一個接口可以繼承多個接口。

9.4、什么是適配器?

適配器只是一個類,它實現了接口,提供了方法體。再用到這個接口時,可以直接繼承適配器,這樣就不需要把接口中的每一個方法再填充一遍了,只需要在這個類中復寫一下需要用的方法。

接口很好地體現了設計模式中的開閉原則。

比如,我們做一個在線商城系統,就需要調用第三方支付——銀行或者是支付寶的支付接口。我們就需要第三方為我們提供接口,里面定義了抽象的方法以及實現接口的方法——適配器,我們通過調用適配器里面的方法來完成支付,代碼如下:

ZsBankInter obj = 獲取實現類對象;
obj.send();
京東、淘寶
銀行接口ZsBankInter  
send()class DoSend implements ZsBankInter{send()具體的方法
}

總結

修飾符在 Java 語言中有四種使用情況:成員變量、成員方法、代碼塊和內部類。以上我們總結了在日常的開發過程中會遇到的 11 種常見的修飾符,并從最基礎的底層和原理理解和疏通這些常見修飾符語法說明以及常見的開發應用案例。其中具體的內容還有很多,本文就暫不一一列舉,待日后根據開發需要補充完畢。

在這里插入圖片描述


我是白鹿,一個不懈奮斗的程序猿。望本文能對你有所裨益,歡迎大家的一鍵三連!若有其他問題、建議或者補充可以留言在文章下方,感謝大家的支持!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/530737.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/530737.shtml
英文地址,請注明出處:http://en.pswp.cn/news/530737.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java 反射機制詳解:私有方法調用頭大?如何通過反射調用類中的私有方法?

文章目錄前言一、私有方法在本類中直接調用1.1、在本類中實例化,調用私有方法1.2、嘗試在其他類直接調用私有方法(錯誤示范)二、使用反射實例化類強制調用私有方法2.1、使用類加載器加載被調用的類2.2、使用 Object 類對獲取的類進行實例化2.…

jQuery 遍歷:思路總結,項目場景中如何處理/控制獲取的 each 遍歷次數?

文章目錄前言一、項目場景分析二、實體類定義描述(僅關鍵代碼)2.1、實體類定義描述2.2、邏輯處理與分析2.3、遍歷數據如何修改的問題暴露三、處理思路3.1、源碼分析 jQuery 中的 each 遍歷3.2、如何解決 jQuery 中控制獲取 each 的遍歷次數總結前言 前臺…

JavaScript 事件:Web 表單如何實現禁用右鍵、復制粘貼/剪切和輸入框自動填充?

文章目錄前言一、禁用鼠標右鍵1.1、分析說明1.2、操作原理1.3、實現效果1.4、實現代碼1.5、補充:JS 中的 button 事件屬性二、禁用復制粘貼2.1、分析說明2.2、實現代碼三、禁用輸入框自動填充功能3.1、分析說明3.2、實現效果3.3、實現代碼總結前言 我們在項目中&…

MySQL 模糊查詢:MySQL 數據庫 like 語句通配符模糊查詢小結

MySQL 報錯:Parameter index out of range (1 > number of parameters, which is 0)——MySQL 數據庫 like 語句通配符模糊查詢小結 文章目錄MySQL 報錯:Parameter index out of range (1 > number of parameters, which is 0)——…

內網擊穿之 HTTP 穿透:網站沒上線?如何讓全世界的人都可以訪問你本地的網站?

文章目錄前言一、內網穿透原理與工具介紹1.1、內網穿透工作原理1.2、內網穿透工具介紹二、啟動內網穿透工具2.1、命令及配置介紹2.2、查看映射信息三、進行訪問測試3.1、遠程訪問本地站點資源3.2、關閉內網穿透總結前言 對于大多數程序員來說,網站一經開發測試后&am…

SSM 整合 3:一個 Spring 入門程序帶你來了解什么是控制反轉(IoC)/依賴注入(DI)?

文章目錄 前言一、使用 Eclipse 創建動態 Web 項目并導入所需 jar 包二、創建接口 TestDao 和實現類2.1、創建接口 TestDao2.2、創建接口的實現類 TestDaoImpl三、創建 Spring 配置文件 applicationContext.xml3.1、如何從官方文檔找配置文件約束信息四、創建測試類并輸出運行結…

軟件設計原則:內聚、耦合有哪幾種類型?內聚度、耦合度如何比較?

文章目錄前言一、何為內聚?1.1、7 種內聚類型及其描述二、何為耦合?2.1、7 種耦合類型及其描述總結前言 高內聚、低耦合是我們在軟件設計過程中必須遵循的一個重要原則,在整個軟件工程中占有很大的比重。而對于內聚和耦合你還是僅僅局限于“高…

數據庫管理工具:如何使用 Navicat Premium 轉儲(導出)和運行(導入)*.sql 文件?

文章目錄前言一、轉儲(導出)數據庫 SQL 文件1.1、選擇“轉儲 SQL 文件”1.2、選擇導出文件存放位置1.3、查看轉儲 SQL 文件界面1.4、查看 SQL 輸出文件1.5、查看輸出文件詳情信息二、運行(導入)數據庫 SQL 文件2.1、新建數據庫2.2…

JSP 編譯原理:JSP 是 Servlet?如何用 Eclipse 查看 JSP 編譯生成的 Servlet 源文件?

文章目錄前言一、JSP 文件編譯流程原理二、創建并運行待測試 JSP 頁面三、查找 JSP 編譯文件輸出位置3.1、打開動態項目運行配置3.2、查看 JSP 編譯文件輸出位置3.3、查看 JSP 編譯輸出文件四、JSP 編譯輸出 Servlet 的論證五、訪問 JSP 文件的流程總結前言 相信大家都了解&…

MVC 模式/Servlet/JSP 編譯原理剖析:Servlet 組件到底屬于 MVC 模式的哪一層?

文章目錄前言一、回憶什么是 MVC 模式?1.1、Model、View、Controller 組件介紹1.2、明確 View 與 Controller 組件區別二、什么是 Servlet?2.1、Servlet 的組件定義2.2、Servlet 組件處于 Controller 層?三、老師說 Servlet 是 View 層的&…

操作系統原理:進程 PV 操作如何計算?全網最全三種前驅圖計算類型總結

文章目錄前言一、PV 操作定義1.1、P 操作定義1.2、V 操作定義二、串聯進程(單線前驅圖)2.1、什么是單線前驅圖?2.2、如何計算單線前驅圖的 PV?2.2.1、計算前驅節點 PV2.2.2、計算中間節點 PV2.2.3、計算尾節點 PV三、并聯進程&…

Spring 容器:三種方式解決 Resource leak: ‘applicationContext‘ is never closed 問題

文章目錄前言一、Spring 容器警告產生的場景二、Spring 容器未關閉后果分析2.1、肉眼可見的警告2.2、導致的內存泄漏2.2.1、什么是內存泄漏?2.2.2、如何判斷內存泄漏?2.2.3、Java 中的 GC(垃圾回收)2.2.4、Java 中會導致內存泄漏的…

SSM 整合 4:Spring IoC 容器基于的兩個重要接口 BeanFactory 和 ApplicationContext

文章目錄 前言一、BeanFactory 接口1.1、加載 Spring 配置文件創建 BeanFactory 接口實例1.2、開發中的運用以及使用說明二、ApplicationContext 接口2.1、ClassPathXmlApplicationContext 創建接口實例2.2、FileSystemXmlApplicationContext 創建接口實例2.3、通過 Web 服務器…

SRA 案例:關于華為開發者聯盟基礎服務文檔內容的改進建議(華為開發者聯盟文檔深度體驗官)

文章目錄前言一、文檔中心的外鏈跳轉問題1.1、問題描述1.2、造成的問題1.3、改進建議二、圖片失真和無法放大查看問題2.1、問題描述2.2、造成的問題2.3、改進建議三、個別 SDK 詞匯缺少必要的說明3.1、問題描述3.2、造成的問題3.3、改進建議四、郵箱信息的優化4.1、問題描述4.2…

騰訊位置服務:有何優勢?如何使用平臺創建應用和服務調用的 Key?

文章目錄前言一、騰訊位置服務的優勢1.1、提供豐富的地圖產品1.2、提供行業解決方案1.3、提供其他生態維度的支持1.4、海量的數據基礎1.5、豐富的開發文檔二、初識騰訊位置服務2.1、用戶的注冊與登錄(附專屬邀請碼)2.2、開發者信息的完善三、創建服務平臺…

畢業生當頭一棒?憶本科四年,高校畢業生與就業單位基本要求差多少?工作還是考研?

文章目錄前言一、大學本科前兩年的生活1.1、庸庸碌碌、中規中矩1.2、收獲了愛情二、大三的改變2.1、學會自律2.2、學會自我總結2.3、眼光要具有前瞻性三、畢業答辯3.1、個人設計答辯3.2、團隊設計答辯四、南京之行4.1、銘記歷史,感恩先輩4.2、加強自我認知與提升五、…

Gitee 答疑:為什么從 Gitee 平臺 Pull 代碼到 STS/Eclipse 后文件亂碼?逐步排查

文章目錄前言一、產生亂碼場景1.1、錯誤描述1.2、解決思路二、解決方式2.1、檢查 Git 平臺上的源碼2.2、Git 的運行原理2.3、修改 IDE 的文本編碼格式2.4、重新打開目的文件問題解決2.5、仍存在問題看這里(重新拉區合并)總結前言 我們從 Gitee 平臺 Pull…

flash 異常修復:QQ 的 flash 圖標顯示異常?QQ 秀、表情加載異常?一招解決

文章目錄前言一、產生錯誤場景1.1、flash 圖標顯示異常1.2、解決思路二、安裝合適版本的 Flash Player2.1、選擇合適版本的 Flash Player2.2、安裝 Flash Player三、重啟 QQ 客戶端四、flash 動畫加載異常4.1、動畫加載異常原因分析4.2、下載安裝 flash 修復工具4.3、使用 Flas…

電腦廣告多?Windows 自帶惡意軟件刪除工具還不會使用?有必要安裝殺毒軟件嗎?

文章目錄前言一、啟動惡意軟件刪除工具二、掃描類型的選擇三、啟動軟件掃描四、惡意軟件刪除工具的說明五、對于惡意軟件處理的建議總結前言 可能有些小伙伴發現,哎?為什么我的電腦彈窗廣告這么多?難不成小視頻看多了?電腦中毒了&…

《軟件項目管理(第二版)》第 8 章——項目團隊與干系人 重點部分總結

文章目錄 前言一、簡答題二、論述題總結前言 學習了項目的開發與發布之后,我們就可以單獨對一個項目進行開發了,但是在企業中開發中,除了編碼之外,還需要項目管理、團隊協作開發等,這就是軟件項目管理板塊要學習的內容。本文是對《軟件項目管理(第二版)》第 8 章——項目…