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

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

wordpress 附件自定義南京百度快速排名優(yōu)化

wordpress 附件自定義,南京百度快速排名優(yōu)化,自己做網(wǎng)站 怎么賺錢,網(wǎng)站做端口是什么問題方法重載 請(qǐng)記住下面重載的條件 方法名稱必須相同。參數(shù)列表必須不同(個(gè)數(shù)不同、或類型不同、參數(shù)類型排列順序不同等)。方法的返回類型可以相同也可以不相同。僅僅返回類型不同不足以成為方法的重載。重載是發(fā)生在編譯時(shí)的,因?yàn)榫幾g器可以根…

方法重載

請(qǐng)記住下面重載的條件

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

方法的重寫

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

This關(guān)鍵字

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

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

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

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

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

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

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

繼承

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

多態(tài)

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

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

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

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

竟然指向了 Apple 對(duì)象的引用,這其實(shí)就是多態(tài) ->父類引l用指向子類對(duì)象,因?yàn)?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ù)組實(shí)現(xiàn)的,只不過 Vector 是一個(gè)線程安全的容器, 它對(duì)內(nèi)部的每

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

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

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

倍。

LinkedList

雙向鏈表

Stack

堆棧

HashSet

TreeSet

LinkedHashSet

Map類

Collections類

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

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

匯總圖

泛型

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

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

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

類、接口、方法、通配符

泛型方法的使用

泛型接口的使用

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

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

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

泛型通配符

反射

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

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

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

反射舉例解釋一下

枚舉

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

IO

File類

IO類

注解

AOP

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

AOP 的核心概念

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

AOP 的使用場(chǎng)景

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

AOP 的實(shí)現(xiàn)方式

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

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

Spring AOP 示例

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

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

創(chuàng)建一個(gè)切面類 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)建一個(gè)服務(wù)類

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

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}

運(yùn)行結(jié)果

當(dāng)你運(yùn)行這個(gè)應(yīng)用程序時(shí),你會(huì)看到在 doSomething 方法調(diào)用前后都有日志輸出,這是因?yàn)榍忻嬷械耐ㄖ粓?zhí)行了。

總結(jié)

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

例子

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

實(shí)現(xiàn)步驟:

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

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

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í)行開始時(shí)間long begin = System.currentTimeMillis();//執(zhí)行原始方法Object result = pjp.proceed();//記錄方法執(zhí)行結(jié)束時(shí)間long end = System.currentTimeMillis();//計(jì)算方法執(zhí)行耗時(shí)log.info(pjp.getSignature()+"執(zhí)行耗時(shí): {}毫秒",end-begin);return result;}
}

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

相關(guān)文章:

  • 網(wǎng)站的制作蘇州網(wǎng)站seo服務(wù)
  • 設(shè)計(jì)師網(wǎng)絡(luò)語南京seo
  • 深圳本地做網(wǎng)站優(yōu)化師培訓(xùn)機(jī)構(gòu)
  • 手工包網(wǎng)站建設(shè)策劃書seo排名查詢
  • 十堰的網(wǎng)站建設(shè)杭州seook優(yōu)屏網(wǎng)絡(luò)
  • wordpress https 網(wǎng)站分享企業(yè)網(wǎng)站建設(shè)方案范文
  • 制作一個(gè)網(wǎng)站需要多少錢百度托管公司
  • 手機(jī)網(wǎng)站在哪里找到外貿(mào)推廣平臺(tái)排名
  • wordpress 前端展示seopeixun
  • 做網(wǎng)站的計(jì)劃書有哪些免費(fèi)推廣軟件
  • 微信群如何推廣網(wǎng)站建設(shè)站長(zhǎng)之家seo綜合查詢
  • 上海建筑工程網(wǎng)seo視頻教程百度云
  • 深圳網(wǎng)站托管公司谷歌seo新規(guī)則
  • 松江泗涇網(wǎng)站建設(shè)查看關(guān)鍵詞被搜索排名的軟件
  • 如何建立網(wǎng)站的步驟加強(qiáng)服務(wù)保障滿足群眾急需ruu7
  • app開發(fā)技術(shù)東莞快速優(yōu)化排名
  • 100款免費(fèi)軟件網(wǎng)站大全亞馬遜的免費(fèi)網(wǎng)站
  • 青海旅游的網(wǎng)站建設(shè)搜索引擎下載
  • 深圳昊客網(wǎng)絡(luò)推廣寧波seo優(yōu)化公司排名
  • xxx網(wǎng)站建設(shè)規(guī)劃域名注冊(cè)信息查詢whois
  • 阿里媽媽 網(wǎng)站建設(shè)不完整長(zhǎng)沙網(wǎng)絡(luò)優(yōu)化產(chǎn)品
  • py可以做網(wǎng)站嗎西安seo優(yōu)化顧問
  • 小組做數(shù)據(jù)庫網(wǎng)站成都網(wǎng)站快速排名
  • 網(wǎng)站建設(shè)建設(shè)營(yíng)銷策略的重要性
  • 長(zhǎng)沙專業(yè)網(wǎng)站制作seo推廣具體做什么
  • 建設(shè)購物網(wǎng)站廣告收益平臺(tái)
  • 微網(wǎng)站開發(fā)技術(shù)架構(gòu)競(jìng)價(jià)推廣運(yùn)營(yíng)
  • 順德大良網(wǎng)站建設(shè)開發(fā)海南百度推廣seo
  • 網(wǎng)站能獲取訪問者亞馬遜站外推廣網(wǎng)站
  • 彩票網(wǎng)站開發(fā)合法嗎淄博頭條新聞今天