国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁 > news >正文

北京網(wǎng)站建設(shè)工作室哪家好正規(guī)營銷培訓(xùn)

北京網(wǎng)站建設(shè)工作室哪家好,正規(guī)營銷培訓(xùn),娛樂網(wǎng)站開發(fā),網(wǎng)站如何添加統(tǒng)計代碼是什么意思方法重載 請記住下面重載的條件 方法名稱必須相同。參數(shù)列表必須不同(個數(shù)不同、或類型不同、參數(shù)類型排列順序不同等)。方法的返回類型可以相同也可以不相同。僅僅返回類型不同不足以成為方法的重載。重載是發(fā)生在編譯時的,因為編譯器可以根…

方法重載

請記住下面重載的條件

  • 方法名稱必須相同。
  • 參數(shù)列表必須不同(個數(shù)不同、或類型不同、參數(shù)類型排列順序不同等)。
  • 方法的返回類型可以相同也可以不相同。
  • 僅僅返回類型不同不足以成為方法的重載。
  • 重載是發(fā)生在編譯時的,因為編譯器可以根據(jù)參數(shù)的類型來選擇使用哪個方法。

方法的重寫

  • 重寫的方法必須要和父類保持一致,包括返回值類型,方法名,參數(shù)列表也都一樣。
  • 重寫的方法可以使用 @Override 注解來標(biāo)識
  • 子類中重寫方法的訪問權(quán)限不能低于父類中方法的訪問權(quán)限。

This關(guān)鍵字

這段代碼比較精妙,精妙在哪呢,我一個 eatApple0方法竟然可以調(diào)用多次,你在后面還可以繼續(xù)調(diào)

用,這就很神奇了,為啥呢? 其實就是 this 在作票了,我在 eatApple 方法中加了一個 return

this 的返回值,也就是說哪個對象調(diào)用 eatApple 方法都能返回對象的自身。

main 方法中傳遞了一個 int 值為 10 的參數(shù),它表示的就是蘋果的數(shù)量,并把這個數(shù)量賦給了 num 全局變量。所以 num 的值現(xiàn)在就是 10。

你會發(fā)現(xiàn)上面這段代碼使用的不是this,而是this(參數(shù))。它相當(dāng)于調(diào)用了其他構(gòu)造方法,然后傳遞參數(shù)進(jìn)去。這里注意一點:this0必須放在構(gòu)造方法的第一行,否則編譯不通過

  1. public Apple(int num):
    • 這個構(gòu)造方法接收一個整數(shù)參數(shù) num,表示蘋果的數(shù)量。
    • 它調(diào)用了另一個構(gòu)造方法 Apple(int num, String color),并傳入了 num 和一個固定的字符串 "紅色 " 作為參數(shù)。
    • 這里的 this(num, "紅色 ") 表示調(diào)用 Apple(int num, String color) 構(gòu)造方法,其中 this 指的是當(dāng)前正在創(chuàng)建的對象。
  1. public Apple(String color):
    • 這個構(gòu)造方法接收一個字符串參數(shù) color,表示蘋果的顏色。
    • 它調(diào)用了另一個構(gòu)造方法 Apple(int num, String color),并傳入了默認(rèn)數(shù)量 1color 作為參數(shù)。
    • 這里的 this(1, color) 表示調(diào)用 Apple(int num, String color) 構(gòu)造方法,其中 this 指的是當(dāng)前正在創(chuàng)建的對象。
  1. public Apple(int num, String color):
    • 這個構(gòu)造方法接收兩個參數(shù):一個整數(shù) num 和一個字符串 color。
    • 在這個構(gòu)造方法中,this 關(guān)鍵字被用來給成員變量 numcolor 分別賦值為傳入的參數(shù) numcolor。
    • 這里的 this.num = num;this.color = color; 中的 this 指的是當(dāng)前正在創(chuàng)建的對象,而 numcolor 是傳入構(gòu)造方法的參數(shù)。

  • Apple myApple = new Apple(5); 會創(chuàng)建一個數(shù)量為 5、顏色為紅色的蘋果。
  • Apple myGreenApple = new Apple("綠色"); 會創(chuàng)建一個數(shù)量為 1、顏色為綠色的蘋果。
  • Apple myApples = new Apple(10, "黃色"); 會直接創(chuàng)建一個數(shù)量為 10、顏色為黃色的蘋果。

繼承

繼承的關(guān)鍵字是extends

多態(tài)

多態(tài)指的是同一個行為具有多個不同表現(xiàn)形式。是指一個類實例(對象)的相同方法在不同情形下具有不同表現(xiàn)形式。封裝和繼承是多態(tài)的基礎(chǔ),也就是說,多態(tài)只是一種表現(xiàn)形式而已。

多態(tài)的實現(xiàn)具有三種充要條件

  • 繼承
  • 重寫父類方法
  • 父類引用指向子類對象

你可以發(fā)現(xiàn) main 方法中有一個很神奇的地方, Fruit fruit = new Apple( ) , Fruit 類型的對象

竟然指向了 Apple 對象的引用,這其實就是多態(tài) ->父類引l用指向子類對象,因為 Apple 繼承于

Fruit,并且重寫了 eat 方法,所以能夠表現(xiàn)出來多種狀態(tài)的形式。

static關(guān)鍵字

final關(guān)鍵字

接口

interface

抽象類

abstract

異常

常見的Exception

RuntimeException 和 CheckedException

與 Exception 有關(guān)的 Java 關(guān)鍵字

throws 和 throw

try 、 finally 、 catch

集合

Iterable接口

頂層接口

ArrayList

Vector

Vector 同 ArrayList 一樣,都是基于數(shù)組實現(xiàn)的,只不過 Vector 是一個線程安全的容器, 它對內(nèi)部的每

個方法都簡單粗暴的上鎖,避免多線程引起的安全性問題,但是通常這種同步方式需要的開銷比較大

因此,訪問元素的效率要遠(yuǎn)遠(yuǎn)低于 ArrayList。

還有一點在于擴(kuò)容上,ArrayList 擴(kuò)容后的數(shù)組長度會增加 50%,而 Vector 的擴(kuò)容長度后數(shù)組會增加

倍。

LinkedList

雙向鏈表

Stack

堆棧

HashSet

TreeSet

LinkedHashSet

Map類

Collections類

Collections 不屬于 Java 框架繼承樹上的內(nèi)容,它屬于單獨的分支, Collections 是一個包裝類,它的作

用就是為集合框架提供某些功能實現(xiàn),此類只包括靜態(tài)方法操作或者返回 collections。

匯總圖

泛型

泛型其實就是一種參數(shù)化的集合,它限制了你添加進(jìn)集合的類型。泛型的本質(zhì)就是一種參數(shù)化類型。多

態(tài)也可以看作是泛型的機(jī)制。一個類繼承了父類,那么就能通過它的父類找到對應(yīng)的子類,但是不能通

過其他類來找到具體要找的這個類。泛型的設(shè)計之處就是希望對象或方法具有最廣泛的表達(dá)能力。

類、接口、方法、通配符

泛型方法的使用

泛型接口的使用

問題:接口中方法不是不能有方法體嗎,為什么max有

從 Java 8 開始,引入了兩種特殊類型的接口方法,它們可以包含方法體:

  1. 默認(rèn)方法 (default 方法):這些方法允許為接口方法提供默認(rèn)實現(xiàn)。默認(rèn)方法在接口中定義,并使用 default 關(guān)鍵字標(biāo)記。
  2. 靜態(tài)方法 (static 方法):這些方法允許在接口中定義靜態(tài)方法,它們的行為類似于類中的靜態(tài)方法,而不是對象的方法。

泛型通配符

反射

Java 反射機(jī)制是在程序的運行過程中,對于任何一個類,都能夠知道它的所有屬性和方法;對于任意

一個對象,都能夠知道調(diào)用它的任意屬性和方法,這種動態(tài)獲取信息以及動態(tài)調(diào)用對象方法的功能稱為

java語言的反射機(jī)制。

反射舉例解釋一下

枚舉

values() 方法顯示順序的值。

IO

File類

IO類

注解

AOP

AOP(Aspect-Oriented Programming,面向切面編程)是一種編程范式,它旨在通過分離橫切關(guān)注點(cross-cutting concerns)來提高代碼的模塊化程度。AOP 允許開發(fā)者將與業(yè)務(wù)邏輯無關(guān)的功能(如日志記錄、事務(wù)管理、權(quán)限控制等)從業(yè)務(wù)邏輯中解耦出來,封裝成獨立的組件。

AOP 的核心概念

  • 切面(Aspect):封裝了橫切關(guān)注點的模塊。例如,日志記錄或事務(wù)管理等。
  • 連接點(Join Point):程序執(zhí)行過程中的特定點,如方法調(diào)用或異常拋出等。
  • 通知(Advice):在特定連接點上執(zhí)行的動作。通知可以是前置通知(before)、后置通知(after)、環(huán)繞通知(around)等。
  • 切入點(Pointcut):匹配連接點的表達(dá)式,用來指定哪些連接點應(yīng)應(yīng)用通知。
  • 目標(biāo)對象(Target Object):被通知的對象。
  • 代理(Proxy):由 AOP 框架創(chuàng)建的對象,用來攔截目標(biāo)對象的方法調(diào)用,并插入通知。

AOP 的使用場景

  1. 日志記錄:在方法開始和結(jié)束時記錄日志。
  2. 性能監(jiān)控:測量方法執(zhí)行的時間。
  3. 事務(wù)管理:自動管理事務(wù)邊界。
  4. 權(quán)限驗證:在方法調(diào)用前進(jìn)行權(quán)限檢查。
  5. 緩存管理:自動緩存方法結(jié)果。

AOP 的實現(xiàn)方式

AOP 可以通過多種方式實現(xiàn),包括但不限于:

  • Spring AOP:Spring 框架提供的 AOP 支持,廣泛用于 Java 應(yīng)用程序中。
  • AspectJ:一種強(qiáng)大的 AOP 框架,支持編譯時、加載時和運行時的織入。

Spring AOP 示例

以下是一個使用 Spring AOP 的簡單示例,展示了如何為一個服務(wù)類的方法添加日志記錄通知。

步驟 1: 創(chuàng)建一個切面類

創(chuàng)建一個切面類 LoggingAspect,該類包含前置通知和后置通知。

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;@Aspect
@Component
public class LoggingAspect {@Around("execution(* com.example.service.*.*(..))")
11    public Object logAround(ProceedingJoinPoint joinPoint) throws Throwable {12        System.out.println("Before method: " + joinPoint.getSignature().getName());13        try {14            Object result = joinPoint.proceed();15            System.out.println("After method: " + joinPoint.getSignature().getName());16            return result;17        } catch (Throwable ex) {18            System.out.println("Error in method: " + joinPoint.getSignature().getName());19            throw ex;20        }21    }
22}
步驟 2: 創(chuàng)建一個服務(wù)類

創(chuàng)建一個服務(wù)類 Service,該類包含一個方法。

java深色版本1import org.springframework.stereotype.Service;
2
3@Service
4public class Service {
5
6    public void doSomething() {
7        System.out.println("Doing something...");
8    }
9}
步驟 3: 配置 Spring

確保你的 Spring 配置正確啟用了 AOP 支持。

java深色版本1import org.springframework.context.annotation.Configuration;
2import org.springframework.context.annotation.EnableAspectJAutoProxy;
3
4@Configuration
5@EnableAspectJAutoProxy
6public class AppConfig {
7    // 配置類
8}
步驟 4: 使用服務(wù)類

在主類中使用 Service 類。

java深色版本1import org.springframework.beans.factory.annotation.Autowired;
2import org.springframework.boot.CommandLineRunner;
3import org.springframework.boot.SpringApplication;
4import org.springframework.boot.autoconfigure.SpringBootApplication;
5
6@SpringBootApplication
7public class Application implements CommandLineRunner {
8
9    @Autowired
10    private Service service;
11
12    public static void main(String[] args) {
13        SpringApplication.run(Application.class, args);
14    }
15
16    @Override
17    public void run(String... args) throws Exception {
18        service.doSomething();
19    }
20}

運行結(jié)果

當(dāng)你運行這個應(yīng)用程序時,你會看到在 doSomething 方法調(diào)用前后都有日志輸出,這是因為切面中的通知被執(zhí)行了。

總結(jié)

AOP 是一種強(qiáng)大的工具,可以幫助開發(fā)者更好地組織和管理代碼中的橫切關(guān)注點。通過將這些關(guān)注點從業(yè)務(wù)邏輯中分離出來,可以提高代碼的可維護(hù)性和可擴(kuò)展性。Spring AOP 是實現(xiàn) AOP 的一種流行方式,適用于大多數(shù)基于 Spring 的 Java 應(yīng)用程序。

例子

需求:統(tǒng)計各個業(yè)務(wù)層方法執(zhí)行耗時。

實現(xiàn)步驟:

  1. 導(dǎo)入依賴:在pom.xml中導(dǎo)入AOP的依賴
  2. 編寫AOP程序:針對于特定方法根據(jù)業(yè)務(wù)需要進(jìn)行編程

為演示方便,可以自建新項目或?qū)胩峁┑?code>springboot-aop-quickstart項目工程

pom.xml

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId>
</dependency>

AOP程序:TimeAspect

@Component
@Aspect //當(dāng)前類為切面類
@Slf4j
public class TimeAspect {@Around("execution(* com.itheima.service.*.*(..))") public Object recordTime(ProceedingJoinPoint pjp) throws Throwable {//記錄方法執(zhí)行開始時間long begin = System.currentTimeMillis();//執(zhí)行原始方法Object result = pjp.proceed();//記錄方法執(zhí)行結(jié)束時間long end = System.currentTimeMillis();//計算方法執(zhí)行耗時log.info(pjp.getSignature()+"執(zhí)行耗時: {}毫秒",end-begin);return result;}
}

http://aloenet.com.cn/news/44762.html

相關(guān)文章:

  • php網(wǎng)站開發(fā)外包百度網(wǎng)盤app手機(jī)版
  • 網(wǎng)站建設(shè)騰訊課堂網(wǎng)站推廣如何引流
  • 百度網(wǎng)盟推廣案例鎮(zhèn)江百度關(guān)鍵詞優(yōu)化
  • 如何自己用wordpress建網(wǎng)站黑龍seo網(wǎng)站優(yōu)化
  • 寧波專業(yè)平臺網(wǎng)站建設(shè)網(wǎng)絡(luò)推廣公司專業(yè)網(wǎng)絡(luò)
  • 給個網(wǎng)站可以在線做企業(yè)推廣的公司
  • 好的設(shè)計師網(wǎng)站有哪些友情鏈接搜讀
  • 微信在線使用登錄進(jìn)一步優(yōu)化落實
  • 有哪些好用的網(wǎng)站微信小程序開發(fā)費用一覽表
  • 中山做網(wǎng)站建設(shè)聯(lián)系電話中國公關(guān)公司前十名
  • 學(xué)校網(wǎng)站建設(shè)畢業(yè)論文企業(yè)網(wǎng)絡(luò)營銷案例
  • 萍鄉(xiāng)建站公司微信推廣
  • 合肥網(wǎng)站關(guān)鍵詞推廣業(yè)務(wù)推廣公司
  • 做商城網(wǎng)站要什么手續(xù)費百度關(guān)鍵詞搜索指數(shù)查詢
  • 軟件測試員是干什么的優(yōu)化
  • 廣州上宏網(wǎng)站建設(shè)汽車行業(yè)網(wǎng)站建設(shè)
  • 企業(yè)網(wǎng)站設(shè)計的深圳公司營銷策劃
  • 什么是企業(yè)網(wǎng)站策劃案網(wǎng)店推廣的作用是什么
  • 做網(wǎng)站服務(wù)怎么賺錢2022最近比較火的營銷事件
  • 做網(wǎng)站工作室找客戶難看seo
  • 甜品網(wǎng)站設(shè)計思想文章代寫
  • 上海網(wǎng)站建設(shè)的重慶seo優(yōu)化效果好
  • 哪些網(wǎng)站做裝修外鏈群發(fā)
  • 長春網(wǎng)站制作優(yōu)勢吉網(wǎng)傳媒寧德市
  • 做一公司網(wǎng)站上優(yōu)化seo
  • 自建站多少錢寧波免費建站seo排名
  • 北京常用網(wǎng)站seo點擊排名軟件哪里好
  • 如何利用國外網(wǎng)站做自媒體新聞 今天
  • 長沙專業(yè)做網(wǎng)站公司有哪些武漢服裝seo整站優(yōu)化方案
  • 最近日本mv字幕免費觀看視頻中國優(yōu)化網(wǎng)