国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【Java高級語法】(十三)注解:解碼程序設(shè)計(jì)中的元數(shù)據(jù)利器,在小小的@符里挖呀挖呀挖~用小小的注解做強(qiáng)大的開發(fā)...

這篇具有很好參考價值的文章主要介紹了【Java高級語法】(十三)注解:解碼程序設(shè)計(jì)中的元數(shù)據(jù)利器,在小小的@符里挖呀挖呀挖~用小小的注解做強(qiáng)大的開發(fā)...。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

【Java高級語法】(十三)注解:解碼程序設(shè)計(jì)中的元數(shù)據(jù)利器,在小小的@符里挖呀挖呀挖~用小小的注解做強(qiáng)大的開發(fā)...

1?? 概念

Java 注解(Annotation) 是Java語言中一種元數(shù)據(jù)形式,它提供了一種在代碼中添加元數(shù)據(jù)的方式。注解為程序員提供了向代碼中添加額外信息的能力,這些額外信息可以被編譯器、工具或者運(yùn)行時環(huán)境使用。

2?? 優(yōu)勢和缺點(diǎn)

優(yōu)點(diǎn):

  • 提供了一種更加簡潔和可讀性強(qiáng) 的代碼編寫風(fēng)格;
  • 增強(qiáng)代碼的可維護(hù)性和可重用性,通過使用注解可以減少重復(fù)的代碼;
  • 可以幫助開發(fā)者在編譯時檢測錯誤,提高代碼的健壯性。

缺點(diǎn):

  • 過度使用注解會使代碼變得復(fù)雜和難以理解;
  • 注解的濫用可能導(dǎo)致代碼過于依賴于特定的框架或工具,降低了代碼的可移植性;
  • 注解可能增加代碼的復(fù)雜性,并且可能需要花費(fèi)更多的時間來學(xué)習(xí)和理解其使用方式。

3?? 使用

3.1 元注解

元注解也是一種注解,用于對其他注解進(jìn)行注釋。Java提供了幾種元注解,用于自定義和修飾注解聲明,包括以下幾種:

  • @Retention:指定注解的生命周期,可選值包括SOURCE、CLASSRUNTIME
  • @Target:指定注解可以應(yīng)用的目標(biāo)元素類型,如類、方法、字段等;
  • @Documented:指定注解是否包含在API文檔中;
  • @Inherited:指定子類是否繼承父類的注解;
  • @Repeatable:指定該注解可以被多次應(yīng)用于同一元素。

3.2 自定義注解

在Java中,我們可以自定義注解,以滿足特定的需求。自定義注解使用@interface關(guān)鍵字進(jìn)行聲明。

下面是一個使用上文元注解的簡單演示案例程序,展示了如何在Java中應(yīng)用這些注解來自定義一個注解:

import java.lang.annotation.*;

// 定義一個自定義注解
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Documented
@Inherited
@Repeatable(MyAnnotations.class)
@interface MyAnnotation {
    String value() default "";
}

// 定義一個可重復(fù)注解容器
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@interface MyAnnotations {
    MyAnnotation[] value();
}

// 使用自定義注解
@MyAnnotation("Class Annotation")
public class DemoClass {

    @MyAnnotation("Field Annotation")
    private String field;

    @MyAnnotation("Constructor Annotation")
    public DemoClass() {
        // 構(gòu)造函數(shù)注解
    }

    @MyAnnotation("Method Annotation")
    public void demoMethod() {
        // 方法注解
    }

    public static void main(String[] args) {
        DemoClass obj = new DemoClass();
        Class<? extends DemoClass> clz = obj.getClass();

        // 獲取類上的注解
        MyAnnotation classAnnotation = clz.getAnnotation(MyAnnotation.class);
        System.out.println("Class Annotation: " + classAnnotation.value());

        // 獲取字段上的注解
        try {
            java.lang.reflect.Field field = clz.getDeclaredField("field");
            MyAnnotation fieldAnnotation = field.getAnnotation(MyAnnotation.class);
            System.out.println("Field Annotation: " + fieldAnnotation.value());
        } catch (NoSuchFieldException e) {
            e.printStackTrace();
        }

        // 獲取構(gòu)造函數(shù)上的注解
        try {
            java.lang.reflect.Constructor<?> constructor = clz.getDeclaredConstructor();
            MyAnnotation constructorAnnotation = constructor.getAnnotation(MyAnnotation.class);
            System.out.println("Constructor Annotation: " + constructorAnnotation.value());
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }

        // 獲取方法上的注解
        try {
            java.lang.reflect.Method method = clz.getDeclaredMethod("demoMethod");
            MyAnnotation methodAnnotation = method.getAnnotation(MyAnnotation.class);
            System.out.println("Method Annotation: " + methodAnnotation.value());
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        }
    }
}

這段代碼演示了如何定義和使用自定義注解,并從類、字段、構(gòu)造函數(shù)和方法中獲取注解的值。

首先,我定義了一個自定義注解 @MyAnnotation。注解的定義可以通過多個元注解修飾,這些元注解用于為注解提供額外的信息:

  • @Retention(RetentionPolicy.RUNTIME):指定注解保留的生命周期為運(yùn)行時。這意味著注解將在運(yùn)行時仍然可見,可以通過 Java 反射機(jī)制獲??;
  • @Target({ElementType.TYPE,ElementType.FIELD,ElementType.METHOD,ElementType.CONSTRUCTOR}):指定注解可以應(yīng)用于類、字段、方法和構(gòu)造函數(shù)上;
  • @Documented:指定該注解將包含在 Javadoc 中;
  • @Inherited:指定子類默認(rèn)繼承父類的注解。

之后,在 DemoClass 類上、類中的字段、構(gòu)造函數(shù)和方法上都使用了自定義注解 @MyAnnotation。

main 方法中,首先創(chuàng)建了一個 DemoClass 對象 obj,通過反射獲取 DemoClass 類的實(shí)例對象的運(yùn)行時類型以及類上的注解。

接著,通過反射機(jī)制分別獲取字段上的注解、構(gòu)造函數(shù)上的注解、方法上的注解。并且打印了相應(yīng)注解的值,以演示如何從類、字段、構(gòu)造函數(shù)和方法中獲取注解的值。

通過自定義注解,我們可以根據(jù)需要添加元數(shù)據(jù),并在代碼中使用它。

3.3 常用內(nèi)置注解

Java提供了很多內(nèi)置的注解,我們來介紹幾個常用的注解:

  • @Override:用于標(biāo)記方法覆寫(重寫)父類的方法,可以幫助我們檢查是否正確地覆寫了方法;
  • @Deprecated:用于標(biāo)記過時的方法或類,在程序中使用過時的元素會收到警告提示,鼓勵使用更合適的替代方案;
  • @SuppressWarnings:用于抑制編譯器產(chǎn)生的警告信息,可以讓代碼看起來更整潔,但需謹(jǐn)慎使用;
  • @FunctionalInterface:用于標(biāo)記函數(shù)式接口(只有一個抽象方法),可以確保接口的語義符合函數(shù)式編程的要求。

下面是一個使用Java實(shí)現(xiàn)的演示案例程序,展示了如何使用@Override、@Deprecated、@SuppressWarnings@FunctionalInterface注解:

import java.util.ArrayList;
import java.util.List;

class Parent {
    public void display() {
        System.out.println("Parent class");
    }
}

class Child extends Parent {
    @Override
    public void display() {
        System.out.println("Child class");
    }
}

@Deprecated
class DeprecatedClass {
    @Deprecated
    public void deprecatedMethod() {
        System.out.println("\nThis method is deprecated.");
    }
}

@SuppressWarnings("unused")
class SuppressWarningsClass {
    // unused field
    private int unusedVariable;

    @SuppressWarnings("unchecked")
    public void suppressWarningsMethod() {
        List list = new ArrayList();
        list.add("item");
        System.out.println("\n" + list);
    }
}

@FunctionalInterface
interface FunctionalInterfaceExample {
    void someMethod();
}

public class AnnotationDemo {
    public static void main(String[] args) {
        // @Override example
        Parent parent = new Parent();
        Child child = new Child();

        parent.display();           // Output: Parent class
        child.display();            // Output: Child class

        // @Deprecated example
        DeprecatedClass  deprecatedObject = new DeprecatedClass();
        deprecatedObject.deprecatedMethod();  // Output: This method is deprecated.

        // @SuppressWarnings example
        SuppressWarningsClass suppressWarningsObject = new SuppressWarningsClass();
        suppressWarningsObject.suppressWarningsMethod();  // No warning will be generated

        // @FunctionalInterface example
        FunctionalInterfaceExample functionalInterfaceObject = () -> System.out.println("\nFunctional Interface");
        functionalInterfaceObject.someMethod();  // Output: Functional Interface
    }
}

在這個示例程序中,我們創(chuàng)建了Parent類和Child類,其中Child類使用@Override注解來標(biāo)記覆寫(重寫)了Parent類中的display()方法。這樣在編譯時,如果有錯誤地覆寫了父類的方法,編譯器將會給出錯誤提示。

另外,我們還創(chuàng)建了一個名為DeprecatedClass的過時類,并在其中的方法和類聲明上都使用了@Deprecated注解。當(dāng)我們在程序中使用過時的方法或類時,編譯器會發(fā)出警告,鼓勵我們使用更合適的替代方案。

同樣,我們還創(chuàng)建了一個名為SuppressWarningsClass的類,在該類的方法和字段上使用了@SuppressWarnings注解來抑制編譯器產(chǎn)生的警告信息,以便讓代碼看起來更整潔。但是需要注意,謹(jǐn)慎使用此注解,確保其使用場景合理。

再者,我們創(chuàng)建了一個函數(shù)式接口FunctionalInterfaceExample,并使用@FunctionalInterface注解進(jìn)行標(biāo)記。這個注解可以確保該接口只有一個抽象方法,從而符合函數(shù)式編程的要求。

最后,在main方法中展示了如何使用這些注解的例子,運(yùn)行程序驗(yàn)證結(jié)果如下:

Parent class
Child class

This method is deprecated.

[item]

Functional Interface

4?? 應(yīng)用場景

Java注解廣泛應(yīng)用于各個領(lǐng)域,包括但不限于以下幾個方面:

  • 標(biāo)記/標(biāo)識:注解可以用于對類、方法、字段等進(jìn)行標(biāo)記,以便將來在編譯期、運(yùn)行時或工具處理期間根據(jù)標(biāo)記進(jìn)行特定操作;
  • 配置/設(shè)置:注解可以用于配置代碼,在運(yùn)行時根據(jù)注解的參數(shù)動態(tài)地控制程序的行為;
  • 生成代碼/文檔:通過使用注解,可以自動生成代碼、配置文件或文檔等。

5?? 底層原理

Java注解的底層原理主要涉及兩個關(guān)鍵部分:反射(Reflection)和代理模式(Proxy)。下面逐步介紹這兩個概念,以及它們與Java注解的關(guān)系。

  1. 反射(Reflection)
    反射是Java語言的一種特性,允許程序在運(yùn)行時檢查和修改自身的行為。通過反射,我們可以動態(tài)獲取類的信息、調(diào)用方法和訪問字段等。所以在使用注解時,需要使用反射來解析注解并執(zhí)行相應(yīng)的操作。

  2. 代理模式(Proxy)
    代理模式允許一個對象(代理對象)控制另一個對象(目標(biāo)對象)的訪問。在使用注解時,通常會有一個注解處理器(Annotation Processor)作為代理對象,負(fù)責(zé)在編譯期或運(yùn)行時掃描代碼中的注解,并進(jìn)行相應(yīng)的處理。

Java注解的底層原理如下:

  • 在編譯期:當(dāng)我們在源代碼中添加注解時,編譯器會首先讀取并解析這些注解。然后,在編譯過程中,注解處理器會根據(jù)注解的類型執(zhí)行相應(yīng)的邏輯,并生成一些額外的代碼。
  • 在運(yùn)行時:當(dāng)編譯完成后,生成的字節(jié)碼文件中會包含注解的信息。在運(yùn)行時,Java虛擬機(jī)(JVM)通過反射讀取這些已編譯的注解,并執(zhí)行相應(yīng)的操作。注解處理器也可以在運(yùn)行時掃描類路徑上的字節(jié)碼文件,獲取注解信息并進(jìn)行進(jìn)一步的處理。

總結(jié)來說,Java注解的底層原理主要利用了反射和代理模式。反射機(jī)制使得我們能夠動態(tài)讀取和修改注解信息,而代理模式則通過注解處理器來實(shí)現(xiàn)對注解的解析和處理。這種機(jī)制為開發(fā)人員提供了一種方便且靈活地處理元數(shù)據(jù)的方式,并且在許多框架和工具中得到了廣泛的應(yīng)用。

6?? 擴(kuò)展:那些流行框架中的注解

在各個流行框架中,注解都起著重要的作用。它們?yōu)殚_發(fā)者提供了一種簡潔、靈活和快速的方式來配置和擴(kuò)展應(yīng)用程序。

下面列舉了一些主要流行框架中注解的應(yīng)用范例:

  1. Spring

    • @Component:標(biāo)記類為一個可被Spring容器管理的組件;
    • @Controller:標(biāo)記控制器類,用于處理用戶請求;
    • @RequestMapping:在控制器方法上定義路由規(guī)則與請求的映射關(guān)系;
    • @Service:標(biāo)記服務(wù)層類,在業(yè)務(wù)邏輯中使用;
    • @Repository:標(biāo)記數(shù)據(jù)訪問層類,使得 Spring 可以自動將其納入到 bean 容器;
    • @Autowired:自動將依賴注入到相應(yīng)的類中,簡化了組件間的耦合關(guān)系;
    • @Configuration:標(biāo)記類為Spring配置類;
    • @Bean:標(biāo)記方法返回值為Spring Bean,并由容器管理。
  2. Spring Boot

    • @SpringBootApplication:標(biāo)記引導(dǎo)類,表示一個 Spring Boot 應(yīng)用程序入口點(diǎn);
    • @RestController:結(jié)合了 @Controller@ResponseBody,用于構(gòu)建 RESTful API 控制器;
    • @RequestMapping:指定請求的 URL 路徑和 HTTP 方法與方法的映射關(guān)系;
    • @ConfigurationProperties:綁定屬性文件或環(huán)境變量到 Java Bean,方便地進(jìn)行配置管理;
    • @EnableAutoConfiguration:啟用自動配置,根據(jù)類路徑下的依賴和規(guī)則推斷、添加 Bean。
  3. Spring Cloud

    • @EnableDiscoveryClient:啟用服務(wù)發(fā)現(xiàn);
    • @EnableCircuitBreaker:啟用斷路器;
    • @FeignClient:聲明一個可調(diào)用遠(yuǎn)程服務(wù)的客戶端接口;
    • @EnableZuulProxy:啟用Zuul代理網(wǎng)關(guān);
    • @LoadBalanced:啟用負(fù)載均衡客戶端。
  4. Spring MVC

    • @Controller:標(biāo)記類為MVC控制器;
    • @RequestMapping:將請求映射到控制器的方法上;
    • @RequestParam:將請求參數(shù)映射到方法參數(shù)上;
    • @PathVariable:將URL路徑變量映射到方法參數(shù)上;
    • @ResponseBody:將方法返回值序列化成響應(yīng)主體。
  5. MyBatis

    • @Mapper:標(biāo)記接口為MyBatis的映射器;
    • @Select:定義查詢語句;
    • @Insert:定義插入語句;
    • @Update:定義更新語句;
    • @Delete:定義刪除語句;
    • @Param:指定方法參數(shù)與SQL語句中的參數(shù)對應(yīng)關(guān)系等。
  6. Hibernate

    • @Entity:聲明實(shí)體類;
    • @Table:指定實(shí)體類與數(shù)據(jù)庫表之間的映射關(guān)系;
    • @Column:定義屬性與數(shù)據(jù)庫列之間的映射關(guān)系;
    • @Id:標(biāo)識實(shí)體類的主鍵屬性;
    • @GeneratedValue:指定主鍵生成策略;
    • @ManyToOne:定義多對一關(guān)系。
  7. Junit

    • @Test:標(biāo)記測試方法;
    • @Before:在每個測試方法執(zhí)行前被執(zhí)行的方法;
    • @After:在每個測試方法執(zhí)行后被執(zhí)行的方法;
    • @RunWith:指定測試運(yùn)行器,如使用 Spring 進(jìn)行測試時可以指定 @RunWith(SpringRunner.class);
    • @BeforeEach:在每個測試方法之前運(yùn)行的方法(JUnit 5);
    • @AfterEach:在每個測試方法之后運(yùn)行的方法(JUnit 5);
    • @ParameterizedTest:參數(shù)化測試方法(JUnit 5)。

注解在這些框架中廣泛應(yīng)用,通過提供特定的注解,開發(fā)者可以方便地實(shí)現(xiàn)配置、路由、依賴注入、持久化等相關(guān)功能,大大簡化了開發(fā)過程。同時,注解也為框架提供了更好的擴(kuò)展性和靈活性。

?? 總結(jié)

Java注解提供了一種簡潔、靈活和強(qiáng)大的方式來為代碼添加額外的元數(shù)據(jù)信息。它們能夠提高代碼的可讀性、可維護(hù)性和健壯性。盡管有一些缺點(diǎn),但合理地使用注解將帶來很多好處。隨著時間的推移,注解已經(jīng)成為許多流行框架和庫的核心組成部分。


? 溫習(xí)回顧上一篇(點(diǎn)擊跳轉(zhuǎn))《【Java基礎(chǔ)教程】(二十五)Java新特性篇 · 第五講:正則表達(dá)式——概念及語法、Java操作API、使用技巧與應(yīng)用場景 ~》

? 繼續(xù)閱讀下一篇(點(diǎn)擊跳轉(zhuǎn))《【Java基礎(chǔ)教程】(二十七)Java新特性篇 · 第七講:Lambda表達(dá)式——概念及優(yōu)缺點(diǎn)、語法結(jié)構(gòu)及各類案例、應(yīng)用場景與優(yōu)化技巧~》
文章來源地址http://www.zghlxwxcb.cn/news/detail-497726.html

【Java高級語法】(十三)注解:解碼程序設(shè)計(jì)中的元數(shù)據(jù)利器,在小小的@符里挖呀挖呀挖~用小小的注解做強(qiáng)大的開發(fā)...

到了這里,關(guān)于【Java高級語法】(十三)注解:解碼程序設(shè)計(jì)中的元數(shù)據(jù)利器,在小小的@符里挖呀挖呀挖~用小小的注解做強(qiáng)大的開發(fā)...的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 第十三屆省賽藍(lán)橋杯物聯(lián)網(wǎng)程序設(shè)計(jì)試題

    第十三屆省賽藍(lán)橋杯物聯(lián)網(wǎng)程序設(shè)計(jì)試題

    1、配置根據(jù)試題的要求配置STM32CubeMX (1)引腳配置 將PC14引腳配置為輸入模式 PC14 用戶按鍵引腳 將PA10引腳配置為中斷模式 PA10 LoRa模塊DIO0引腳 將以下引腳配置為輸出模式 PC15 用戶LED引腳 PB5 OLED 電源控制引腳 PA11和PA12 繼電器控制引腳 PA4和PA9 LoRa模塊片選和復(fù)位引腳,初始為高電

    2023年04月10日
    瀏覽(97)
  • Rust 程序設(shè)計(jì)語言學(xué)習(xí)——基礎(chǔ)語法

    Rust 程序設(shè)計(jì)語言學(xué)習(xí)——基礎(chǔ)語法

    Rust 語言是一種高效、可靠的通用高級語言。其高效不僅限于開發(fā)效率,它的執(zhí)行效率也是令人稱贊的,是一種少有的兼顧開發(fā)效率和執(zhí)行效率的語言。 Rust 語言由 Mozilla 開發(fā),最早發(fā)布于 2014 年 9 月。Rust 的編譯器是在 MIT License 和 Apache License 2.0 雙重協(xié)議聲明下的免費(fèi)開源軟

    2024年01月22日
    瀏覽(27)
  • 【高級程序設(shè)計(jì)語言C++】特殊類設(shè)計(jì)

    拷貝只會放生在兩個場景中:拷貝構(gòu)造函數(shù)以及賦值運(yùn)算符重載,因此想要讓一個類禁止拷貝,只需讓該類不能調(diào)用拷貝構(gòu)造函數(shù)以及賦值運(yùn)算符重載即可。 用C++11的話,可以使用特殊的語法來實(shí)現(xiàn)一個不能被拷貝的類。在C++11中,可以使用刪除函數(shù)(deleted function)來禁用拷

    2024年02月10日
    瀏覽(23)
  • SCAU高級語言程序設(shè)計(jì)OJ

    SCAU高級語言程序設(shè)計(jì)OJ

    1018 數(shù)的排序 Description 由鍵盤輸入三個整數(shù)a、b、c,按從小到大的順序輸出這三個數(shù)。 1016 字符變換 Description 由鍵盤輸入5個字符,將其中的大寫字符變成小寫(其它類型的字符不變),最后,按輸入順序輸出這5個字符。 1019 數(shù)的整除 Descrption 由鍵盤輸入5個整數(shù),逐個判斷它

    2024年02月04日
    瀏覽(18)
  • 【高級程序設(shè)計(jì)語言C++】初識模板

    【高級程序設(shè)計(jì)語言C++】初識模板

    概念: 函數(shù)模板代表了一個函數(shù)家族,該函數(shù)模板與類型無關(guān),在使用時被參數(shù)化,根據(jù)實(shí)參類型產(chǎn)生函數(shù)的特定類型版本。 具體格式: templatetypename T1, typename T2,…,typename Tn 返回值類型 函數(shù)名(參數(shù)列表){} 輸出結(jié)果: typename是用來定義模板參數(shù),也可以使用class(切記

    2024年02月15日
    瀏覽(22)
  • 【藍(lán)橋杯嵌入式】第十三屆藍(lán)橋杯嵌入式國賽程序設(shè)計(jì)試題以及詳細(xì)題解

    【藍(lán)橋杯嵌入式】第十三屆藍(lán)橋杯嵌入式國賽程序設(shè)計(jì)試題以及詳細(xì)題解

    ??本屆國賽試題主要包含 LCD 、 LED 、 按鍵 、 EEPROM 、 串口 、 模擬電壓輸入 、 脈沖輸入輸出 七大部分,其中前面三個部分是藍(lán)橋杯嵌入式的“親兒子”(必考部分),而剩下的四個部分都為“干兒子”(考頻相對較高)。 ??相對于本屆省賽兩套試題: ??本套試題 串口數(shù)

    2024年02月02日
    瀏覽(96)
  • 【高級語言程序設(shè)計(jì)(一)】第 7 章:指針

    【高級語言程序設(shè)計(jì)(一)】第 7 章:指針

    目錄 一、指針和指針變量 (1)指針? (2)指針變量 (3)指針變量的定義 (4)指針變量的初始化 (5)指針變量的一般使用 ①?給指針變量賦值 ②?直接使用指針變量 ③?通過指針變量引用所指向的變量 (6)指針的基本運(yùn)算? ①?取地址運(yùn)算符 ②?指針運(yùn)算符 * ③?取地址

    2024年02月07日
    瀏覽(19)
  • 【高級語言程序設(shè)計(jì)(一)】第 10 章:文件

    【高級語言程序設(shè)計(jì)(一)】第 10 章:文件

    目錄 一、文件概述 (1)文件定義 (2)文件命名 (3)文件分類 ①?按照文件的內(nèi)容劃分 ②?按照文件的組織形式劃分 ③?按照文件的存儲形式劃分 ④?按照文件的存儲介質(zhì)劃分 (4)文件存取方式 (5)文件系統(tǒng)? 二、文件的打開和關(guān)閉函數(shù) (1)文件打開函數(shù) ①??庫函數(shù)

    2024年02月08日
    瀏覽(27)
  • Java基礎(chǔ)語法(十三):throw和throws

    目錄 前言 一、throw 二、throws 總結(jié) 在 Java 編程中,異常處理是非常重要的一環(huán),它不僅能夠保護(hù)程序運(yùn)行的穩(wěn)定性,還能夠提高代碼的可讀性和易維護(hù)性。Java 中拋出異常的語句有兩種,分別是 throw 和 throws,本文將詳細(xì)介紹這兩個的使用方法及其區(qū)別。

    2024年02月11日
    瀏覽(19)
  • Verilog學(xué)習(xí)筆記(5):Verilog高級程序設(shè)計(jì)

    Verilog學(xué)習(xí)筆記(5):Verilog高級程序設(shè)計(jì)

    串行加法器: 一個四位串行加法器由4個全加器構(gòu)成。全加器是串行加法器的子模塊,而全加器是由基本的邏輯門構(gòu)成,這些基本的邏輯門就是所說的葉子模塊。這個設(shè)計(jì)中運(yùn)用葉子模塊(基本邏輯門)搭建成子模塊(全加器),再用子模塊搭建成所需要的電路(串行加法器

    2024年02月11日
    瀏覽(28)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包