最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java實現(xiàn)用位運算維護狀態(tài)碼

 更新時間:2024年03月07日 09:35:27   作者:半畝方塘立身  
位運算是一種非常高效的運算方式,在算法考察中比較常見,那么業(yè)務(wù)代碼中我們?nèi)绾问褂梦贿\算呢,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下吧

位運算是一種非常高效的運算方式。在算法考察中比較常見,它使用位級別的操作來表示和控制狀態(tài),這在管理多個布爾標(biāo)志或狀態(tài)時尤其有用。那么業(yè)務(wù)代碼中我們?nèi)绾问褂梦贿\算呢?

位運算基礎(chǔ)

我們先來回顧一下位運算的基礎(chǔ):

  • 與(AND)運算:只有當(dāng)兩個位都是1時,結(jié)果才是1(a & b)。
  • 或(OR)運算:如果兩個位中至少有一個為1,那么結(jié)果就是1(a | b)。
  • 異或(XOR)運算:如果兩個位不同,則結(jié)果為1(a ^ b)。
  • 非(NOT)運算:反轉(zhuǎn)位的值(~a)。
  • 左移:將位向左移動,右側(cè)填充0(a << b)。
  • 右移:將位向右移動,左側(cè)填充0(a >> b)。

業(yè)務(wù)狀態(tài)碼應(yīng)用

如何通過位運算維護業(yè)務(wù)狀態(tài)碼呢?我們可以在一個整數(shù)中存儲多個布爾值,每個位代表一個不同的狀態(tài)或標(biāo)志。

讓我們將上述課程狀態(tài)的例子修改為管理訂單狀態(tài)的示例。假設(shè)一個訂單有以下幾種狀態(tài):已創(chuàng)建(Created)、已支付(Paid)、已發(fā)貨(Shipped)、已完成(Completed)。

定義狀態(tài)常量

我們首先定義這些狀態(tài)作為常量,并為每個狀態(tài)分配一個位:

  • 已創(chuàng)建(Created): 0001 (1)
  • 已支付(Paid): 0010 (2)
  • 已發(fā)貨(Shipped): 0100 (4)
  • 已完成(Completed): 1000 (8)

Java 實現(xiàn)

接下來,我們在Java中實現(xiàn)一個OrderStatus類來管理這些狀態(tài):

public class OrderStatus {

    private static final int CREATED = 1;   // 0001
    private static final int PAID = 2;      // 0010
    private static final int SHIPPED = 4;   // 0100
    private static final int COMPLETED = 8; // 1000

    private int status;

    public OrderStatus() {
        this.status = CREATED; // 默認(rèn)狀態(tài)為已創(chuàng)建
    }

    // 添加狀態(tài)
    public void addStatus(int status) {
        this.status |= status;
    }

    // 移除狀態(tài)
    public void removeStatus(int status) {
        this.status &= ~status;
    }

    // 檢查是否有特定狀態(tài)
    public boolean hasStatus(int status) {
        return (this.status & status) == status;
    }

    // 示例輸出
    public static void main(String[] args) {
        OrderStatus orderStatus = new OrderStatus();

        System.out.println("-------訂單已支付-----------");
        // 假設(shè)訂單已支付
        orderStatus.addStatus(PAID);
        System.out.println("創(chuàng)建訂單是否創(chuàng)建 " + orderStatus.hasStatus(CREATED));
        System.out.println("創(chuàng)建訂單是否支付 " + orderStatus.hasStatus(PAID));

        // 假設(shè)訂單已發(fā)貨
        System.out.println("-------訂單已發(fā)貨-----------");
        orderStatus.addStatus(SHIPPED);
        System.out.println("創(chuàng)建訂單是否發(fā)貨 " + orderStatus.hasStatus(SHIPPED));

        // 假設(shè)訂單已完成
        System.out.println("-------假設(shè)訂單已完成-----------");
        orderStatus.addStatus(COMPLETED);
        System.out.println("創(chuàng)建訂單是否完成 " + orderStatus.hasStatus(COMPLETED));
    }
}

運行結(jié)果:

在這個例子中,我們通過OrderStatus類使用位運算來管理訂單的不同狀態(tài)。這種方式允許訂單在其生命周期中擁有多個狀態(tài),而且能夠高效地檢查、添加或刪除這些狀態(tài)。當(dāng)訂單狀態(tài)變化時,我們只需要簡單地調(diào)用相應(yīng)的方法來更新狀態(tài)。這樣實現(xiàn)后相信同事肯定對你刮目的!

到此這篇關(guān)于Java實現(xiàn)用位運算維護狀態(tài)碼的文章就介紹到這了,更多相關(guān)Java位運算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java基于UDP實現(xiàn)在線聊天功能

    java基于UDP實現(xiàn)在線聊天功能

    這篇文章主要為大家詳細(xì)介紹了java基于UDP實現(xiàn)在線聊天功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • Java?JNI的高級用法示例詳解

    Java?JNI的高級用法示例詳解

    JNI是Java高級應(yīng)用中不可或缺的技術(shù)之一,它允許Java程序與本地代碼進(jìn)行交互,大大拓寬了Java應(yīng)用的范圍和性能,這篇文章主要介紹了Java?JNI高級用法的相關(guān)資料,需要的朋友可以參考下
    2025-11-11
  • SpringBoot整合liquibase的實現(xiàn)方法

    SpringBoot整合liquibase的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot整合liquibase的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • Java8新增的重復(fù)注解功能示例

    Java8新增的重復(fù)注解功能示例

    這篇文章主要介紹了Java8新增的重復(fù)注解功能,結(jié)合實例形式分析了java8重復(fù)注解的功能、定義、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2019-10-10
  • JavaSE程序邏輯控制完整實例代碼

    JavaSE程序邏輯控制完整實例代碼

    Java程序通過控制語句來執(zhí)行程序流,從而完成一定的任務(wù),這篇文章主要介紹了JavaSE程序邏輯控制的相關(guān)資料,文中通過帶介紹的非常詳細(xì),需要的朋友可以參考下
    2026-06-06
  • 說說Java異步調(diào)用的幾種方式

    說說Java異步調(diào)用的幾種方式

    本文主要介紹了說說Java異步調(diào)用的幾種方式,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • 詳解Java內(nèi)部類與對象的打印概念和流程

    詳解Java內(nèi)部類與對象的打印概念和流程

    在 Java 中,可以將一個類定義在另一個類里面或者一個方法里面,這樣的類稱為內(nèi)部類。廣泛意義上的內(nèi)部類一般來說包括這四種:成員內(nèi)部類、局部內(nèi)部類、匿名內(nèi)部類和靜態(tài)內(nèi)部類
    2021-10-10
  • mybatis-plus更新字段為null的處理方式

    mybatis-plus更新字段為null的處理方式

    這篇文章主要介紹了mybatis-plus更新字段為null的處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Spring session 獲取當(dāng)前賬戶登錄數(shù)的實例代碼

    Spring session 獲取當(dāng)前賬戶登錄數(shù)的實例代碼

    這篇文章主要介紹了Spring session 獲取當(dāng)前賬戶登錄數(shù),本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-04-04
  • Java編碼算法與哈希算法深入分析使用方法

    Java編碼算法與哈希算法深入分析使用方法

    首先,我們一起來學(xué)習(xí)一下編碼算法,舉例說明,ASCII碼就是我們常見的一種編碼,字母a的編碼是十六進(jìn)制的0x61,字母b是0x62,以此類推。哈希算法,可被稱為摘要算法。因此,哈希算法的加密是單向的,不可用密文解密得到明文
    2022-11-11

最新評論

盖州市| 惠水县| 乌鲁木齐县| 德江县| 枣强县| 三江| 通化市| 隆尧县| 阜新| 儋州市| 乃东县| 商水县| 怀来县| 诏安县| 宜良县| 呼图壁县| 洪洞县| 新密市| 萨迦县| 乐都县| 双辽市| 灌南县| 来凤县| 淮安市| 长武县| 济宁市| 靖宇县| 芦溪县| 太湖县| 阿瓦提县| 汤原县| 大余县| 清河县| 禄劝| 梁山县| 镇雄县| 阿图什市| 阿荣旗| 武城县| 屏边| 日喀则市|