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

Java實(shí)現(xiàn)簡(jiǎn)單客戶信息管理系統(tǒng)

 更新時(shí)間:2022年05月26日 11:16:48   作者:好湯圓  
這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單客戶信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Java實(shí)現(xiàn)客戶信息管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下

一、目標(biāo)

模擬實(shí)現(xiàn)一個(gè)基于文本界面的《客戶信息管理軟件》

進(jìn)一步掌握編程技巧和調(diào)試技巧,熟悉面向?qū)ο缶幊?/p>

主要涉及以下知識(shí)點(diǎn):

  • 類結(jié)構(gòu)的使用:屬性、方法及構(gòu)造器
  • 對(duì)象的創(chuàng)建與使用
  • 類的封裝性
  • 聲明和使用數(shù)組
  • 數(shù)組的插入、刪除和替換
  • 關(guān)鍵字的使用:this

二、系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

  • CustomerView為主模塊,負(fù)責(zé)菜單的顯示和處理用戶操作
  • CustomerList為Customer對(duì)象的管理模塊,內(nèi)部用數(shù)組管理一組Customer對(duì)象,并提供相應(yīng)的添加、修改、刪除和遍歷方法,供CustomerView調(diào)用
  • Customer為實(shí)體對(duì)象,用來(lái)封裝客戶信息

三、鍵盤訪問(wèn)的實(shí)現(xiàn)

項(xiàng)目中提供了CMUtility.java類,可用來(lái)方便地實(shí)現(xiàn)鍵盤訪問(wèn)。

四、Customer類

Customer為實(shí)體類,用來(lái)封裝客戶信息

該類封裝客戶的以下信息:

  • String name :客戶姓名
  • char gender :性別
  • int age :年齡
  • String phone:電話號(hào)碼
  • String email :電子郵箱

提供各屬性的get/set方法

提供所需的構(gòu)造器(可自行確定)

五、CustomerList類

CustomerList為Customer對(duì)象的管理模塊,內(nèi)部使用數(shù)組管理一組Customer對(duì)象

本類封裝以下信息:

  • Customer[] customers:用來(lái)保存客戶對(duì)象的數(shù)組
  • int total = 0:記錄已保存客戶對(duì)象的數(shù)量

該類至少提供以下構(gòu)造器和方法:

  • public CustomerList(int totalCustomer)
  • public boolean addCustomer(Customer customer)
  • public boolean replaceCustomer(int index, Customer cust)
  • public boolean deleteCustomer(int index)
  • public Customer[] getAllCustomers()
  • public Customer getCustomer(int index)
  • public int getTotal()

六、CustomerView類

CustomerView為主模塊,負(fù)責(zé)菜單的顯示和處理用戶操作

本類封裝以下信息:

CustomerList customerList = new CustomerList(10);

創(chuàng)建最大包含10個(gè)客戶對(duì)象的CustomerList 對(duì)象,供以下各成員方法使用。

該類至少提供以下方法:

  • public void enterMainMenu()
  • private void addNewCustomer()
  • private void modifyCustomer()
  • private void deleteCustomer()
  • private void listAllCustomers()
  • public static void main(String[] args)

七、代碼

CMUtility類

package com.hsy.pack.project;

import java.util.Scanner;

/**
?* CMUtility工具類:
?* 將不同的功能封裝為方法,就是可以直接通過(guò)調(diào)用方法使用它的功能,而無(wú)需考慮具體的功能實(shí)現(xiàn)細(xì)節(jié)。
?*/
public class CMUtility {
? ? private static Scanner scanner = new Scanner(System.in);

? ? /**
? ? ?* 用于界面菜單的選擇。該方法讀取鍵盤,如果用戶鍵入'1'-'5'中的任意字符,則方法返回。返回值為用戶鍵入字符。
? ? ?*/
? ? public static char readMenuSelection() {
? ? ? ? char c;
? ? ? ? for (; ; ) {
? ? ? ? ? ? String str = readKeyBoard(1, false);
? ? ? ? ? ? c = str.charAt(0);
? ? ? ? ? ? if (c != '1' && c != '2' &&
? ? ? ? ? ? ? ? ? ? c != '3' && c != '4' && c != '5') {
? ? ? ? ? ? ? ? System.out.print("選擇錯(cuò)誤,請(qǐng)重新輸入:");
? ? ? ? ? ? } else break;
? ? ? ? }
? ? ? ? return c;
? ? }

? ? /**
? ? ?* 從鍵盤讀取一個(gè)字符,并將其作為方法的返回值。
? ? ?*/
? ? public static char readChar() {
? ? ? ? String str = readKeyBoard(1, false);
? ? ? ? return str.charAt(0);
? ? }

? ? /**
? ? ?* 從鍵盤讀取一個(gè)字符,并將其作為方法的返回值。
? ? ?* 如果用戶不輸入字符而直接回車,方法將以defaultValue 作為返回值。
? ? ?*/
? ? public static char readChar(char defaultValue) {
? ? ? ? String str = readKeyBoard(1, true);
? ? ? ? return (str.length() == 0) ? defaultValue : str.charAt(0);
? ? }

? ? /**
? ? ?* 從鍵盤讀取一個(gè)長(zhǎng)度不超過(guò)2位的整數(shù),并將其作為方法的返回值。
? ? ?*/
? ? public static int readInt() {
? ? ? ? int n;
? ? ? ? for (; ; ) {
? ? ? ? ? ? String str = readKeyBoard(2, false);
? ? ? ? ? ? try {
? ? ? ? ? ? ? ? n = Integer.parseInt(str);
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? } catch (NumberFormatException e) {
? ? ? ? ? ? ? ? System.out.print("數(shù)字輸入錯(cuò)誤,請(qǐng)重新輸入:");
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return n;
? ? }

? ? /**
? ? ?* 從鍵盤讀取一個(gè)長(zhǎng)度不超過(guò)2位的整數(shù),并將其作為方法的返回值。
? ? ?* 如果用戶不輸入字符而直接回車,方法將以defaultValue 作為返回值。
? ? ?*/
? ? public static int readInt(int defaultValue) {
? ? ? ? int n;
? ? ? ? for (; ; ) {
? ? ? ? ? ? String str = readKeyBoard(2, true);
? ? ? ? ? ? if (str.equals("")) {
? ? ? ? ? ? ? ? return defaultValue;
? ? ? ? ? ? }

? ? ? ? ? ? try {
? ? ? ? ? ? ? ? n = Integer.parseInt(str);
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? } catch (NumberFormatException e) {
? ? ? ? ? ? ? ? System.out.print("數(shù)字輸入錯(cuò)誤,請(qǐng)重新輸入:");
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return n;
? ? }

? ? /**
? ? ?* 從鍵盤讀取一個(gè)長(zhǎng)度不超過(guò)limit的字符串,并將其作為方法的返回值。
? ? ?*/
? ? public static String readString(int limit) {
? ? ? ? return readKeyBoard(limit, false);
? ? }

? ? /**
? ? ?* 從鍵盤讀取一個(gè)長(zhǎng)度不超過(guò)limit的字符串,并將其作為方法的返回值。
? ? ?* 如果用戶不輸入字符而直接回車,方法將以defaultValue 作為返回值。
? ? ?*/
? ? public static String readString(int limit, String defaultValue) {
? ? ? ? String str = readKeyBoard(limit, true);
? ? ? ? return str.equals("") ? defaultValue : str;
? ? }

? ? /**
? ? ?* 用于確認(rèn)選擇的輸入。該方法從鍵盤讀取‘Y'或'N',并將其作為方法的返回值。
? ? ?*/
? ? public static char readConfirmSelection() {
? ? ? ? char c;
? ? ? ? for (; ; ) {
? ? ? ? ? ? String str = readKeyBoard(1, false).toUpperCase();
? ? ? ? ? ? c = str.charAt(0);
? ? ? ? ? ? if (c == 'Y' || c == 'N') {
? ? ? ? ? ? ? ? break;
? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? System.out.print("選擇錯(cuò)誤,請(qǐng)重新輸入:");
? ? ? ? ? ? }
? ? ? ? }
? ? ? ? return c;
? ? }

? ? private static String readKeyBoard(int limit, boolean blankReturn) {
? ? ? ? String line = "";

? ? ? ? while (scanner.hasNextLine()) {
? ? ? ? ? ? line = scanner.nextLine();
? ? ? ? ? ? if (line.length() == 0) {
? ? ? ? ? ? ? ? if (blankReturn) return line;
? ? ? ? ? ? ? ? else continue;
? ? ? ? ? ? }

? ? ? ? ? ? if (line.length() < 1 || line.length() > limit) {
? ? ? ? ? ? ? ? System.out.print("輸入長(zhǎng)度(不大于" + limit + ")錯(cuò)誤,請(qǐng)重新輸入:");
? ? ? ? ? ? ? ? continue;
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? }

? ? ? ? return line;
? ? }
}

Customer類

package com.hsy.pack.project;

public class Customer {
? ? private String name;
? ? private char gender;
? ? private int age;
? ? private String phone;
? ? private String email;

? ? public Customer(String name, char gender, int age) {
? ? ? ? this(name, gender, age, "", "");
? ? }

? ? public Customer(String name, char gender, int age, String phone,
? ? ? ? ? ? ? ? ? ? String email) {
? ? ? ? this.name = name;
? ? ? ? this.gender = gender;
? ? ? ? this.age = age;
? ? ? ? this.phone = phone;
? ? ? ? this.email = email;
? ? }

? ? public String getName() {
? ? ? ? return name;
? ? }

? ? public void setName(String name) {
? ? ? ? this.name = name;
? ? }

? ? public char getGender() {
? ? ? ? return gender;
? ? }

? ? public void setGender(char gender) {
? ? ? ? this.gender = gender;
? ? }

? ? public int getAge() {
? ? ? ? return age;
? ? }

? ? public void setAge(int age) {
? ? ? ? this.age = age;
? ? }

? ? public String getPhone() {
? ? ? ? return phone;
? ? }

? ? public void setPhone(String phone) {
? ? ? ? this.phone = phone;
? ? }

? ? public String getEmail() {
? ? ? ? return email;
? ? }

? ? public void setEmail(String email) {
? ? ? ? this.email = email;
? ? }

? ? public String getDetails() {
? ? ? ? return name + "\t" + gender + "\t" + age + "\t\t" + phone + "\t" + email;
? ? }
}

CustomerList類

package com.hsy.pack.project;

public class CustomerList {
? ? private Customer[] customers;
? ? private int total = 0;

? ? public CustomerList(int totalCustomer) {
? ? ? ? customers = new Customer[totalCustomer];
? ? }

? ? public boolean addCustomer(Customer customer) {
? ? ? ? if (total >= customers.length) return false;

? ? ? ? customers[total++] = customer;
? ? ? ? return true;
? ? }

? ? public boolean replaceCustomer(int index, Customer cust) {
? ? ? ? if (index < 0 || index >= total) return false;

? ? ? ? customers[index] = cust;
? ? ? ? return true;
? ? }

? ? public boolean deleteCustomer(int index) {
? ? ? ? if (index < 0 || index >= total) return false;

? ? ? ? for (int i = index; i < total - 1; i++) {
? ? ? ? ? ? customers[i] = customers[i + 1];
? ? ? ? }

? ? ? ? customers[--total] = null;

? ? ? ? return true;
? ? }

? ? public Customer[] getAllCustomers() {
? ? ? ? Customer[] custs = new Customer[total];
? ? ? ? for (int i = 0; i < total; i++) {
? ? ? ? ? ? custs[i] = customers[i];
? ? ? ? }
? ? ? ? return custs;
? ? }

? ? public int getTotal() {
? ? ? ? return total;
? ? }

? ? public Customer getCustomer(int index) {
? ? ? ? if (index < 0 || index >= total) return null;

? ? ? ? return customers[index];
? ? }
}

CustomerView類

package com.hsy.pack.project;

public class CustomerView {
? ? private CustomerList customers = new CustomerList(10);

? ? public CustomerView() {
? ? ? ? Customer cust = new Customer("張三", '男', 30, "010-56253825",
? ? ? ? ? ? ? ? "abc@email.com");
? ? ? ? customers.addCustomer(cust);
? ? }

? ? public void enterMainMenu() {
? ? ? ? boolean loopFlag = true;
? ? ? ? do {
? ? ? ? ? ? System.out
? ? ? ? ? ? ? ? ? ? .println("\n-----------------客戶信息管理軟件-----------------\n");
? ? ? ? ? ? System.out.println(" ? ? ? ? ? ? ? ? ? 1 添 加 客 戶");
? ? ? ? ? ? System.out.println(" ? ? ? ? ? ? ? ? ? 2 修 改 客 戶");
? ? ? ? ? ? System.out.println(" ? ? ? ? ? ? ? ? ? 3 刪 除 客 戶");
? ? ? ? ? ? System.out.println(" ? ? ? ? ? ? ? ? ? 4 客 戶 列 表");
? ? ? ? ? ? System.out.println(" ? ? ? ? ? ? ? ? ? 5 退 ? ? ? 出\n");
? ? ? ? ? ? System.out.print(" ? ? ? ? ? ? ? ? ? 請(qǐng)選擇(1-5):");

? ? ? ? ? ? char key = CMUtility.readMenuSelection();
? ? ? ? ? ? System.out.println();
? ? ? ? ? ? switch (key) {
? ? ? ? ? ? ? ? case '1':
? ? ? ? ? ? ? ? ? ? addNewCustomer();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case '2':
? ? ? ? ? ? ? ? ? ? modifyCustomer();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case '3':
? ? ? ? ? ? ? ? ? ? deleteCustomer();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case '4':
? ? ? ? ? ? ? ? ? ? listAllCustomers();
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? ? ? case '5':
? ? ? ? ? ? ? ? ? ? System.out.print("確認(rèn)是否退出(Y/N):");
? ? ? ? ? ? ? ? ? ? char yn = CMUtility.readConfirmSelection();
? ? ? ? ? ? ? ? ? ? if (yn == 'Y')
? ? ? ? ? ? ? ? ? ? ? ? loopFlag = false;
? ? ? ? ? ? ? ? ? ? break;
? ? ? ? ? ? }
? ? ? ? } while (loopFlag);
? ? }

? ? private void addNewCustomer() {
? ? ? ? System.out.println("---------------------添加客戶---------------------");
? ? ? ? System.out.print("姓名:");
? ? ? ? String name = CMUtility.readString(4);
? ? ? ? System.out.print("性別:");
? ? ? ? char gender = CMUtility.readChar();
? ? ? ? System.out.print("年齡:");
? ? ? ? int age = CMUtility.readInt();
? ? ? ? System.out.print("電話:");
? ? ? ? String phone = CMUtility.readString(15);
? ? ? ? System.out.print("郵箱:");
? ? ? ? String email = CMUtility.readString(15);

? ? ? ? Customer cust = new Customer(name, gender, age, phone, email);
? ? ? ? boolean flag = customers.addCustomer(cust);
? ? ? ? if (flag) {
? ? ? ? ? ? System.out
? ? ? ? ? ? ? ? ? ? .println("---------------------添加完成---------------------");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("----------------記錄已滿,無(wú)法添加-----------------");
? ? ? ? }
? ? }

? ? private void modifyCustomer() {
? ? ? ? System.out.println("---------------------修改客戶---------------------");

? ? ? ? int index = 0;
? ? ? ? Customer cust = null;
? ? ? ? for (; ; ) {
? ? ? ? ? ? System.out.print("請(qǐng)選擇待修改客戶編號(hào)(-1退出):");
? ? ? ? ? ? index = CMUtility.readInt();
? ? ? ? ? ? if (index == -1) {
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }

? ? ? ? ? ? cust = customers.getCustomer(index - 1);
? ? ? ? ? ? if (cust == null) {
? ? ? ? ? ? ? ? System.out.println("無(wú)法找到指定客戶!");
? ? ? ? ? ? } else
? ? ? ? ? ? ? ? break;
? ? ? ? }

? ? ? ? System.out.print("姓名(" + cust.getName() + "):");
? ? ? ? String name = CMUtility.readString(4, cust.getName());

? ? ? ? System.out.print("性別(" + cust.getGender() + "):");
? ? ? ? char gender = CMUtility.readChar(cust.getGender());

? ? ? ? System.out.print("年齡(" + cust.getAge() + "):");
? ? ? ? int age = CMUtility.readInt(cust.getAge());

? ? ? ? System.out.print("電話(" + cust.getPhone() + "):");
? ? ? ? String phone = CMUtility.readString(15, cust.getPhone());

? ? ? ? System.out.print("郵箱(" + cust.getEmail() + "):");
? ? ? ? String email = CMUtility.readString(15, cust.getEmail());

? ? ? ? cust = new Customer(name, gender, age, phone, email);

? ? ? ? boolean flag = customers.replaceCustomer(index - 1, cust);
? ? ? ? if (flag) {
? ? ? ? ? ? System.out
? ? ? ? ? ? ? ? ? ? .println("---------------------修改完成---------------------");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("----------無(wú)法找到指定客戶,修改失敗--------------");
? ? ? ? }
? ? }

? ? private void deleteCustomer() {
? ? ? ? System.out.println("---------------------刪除客戶---------------------");

? ? ? ? int index = 0;
? ? ? ? Customer cust = null;
? ? ? ? for (; ; ) {
? ? ? ? ? ? System.out.print("請(qǐng)選擇待刪除客戶編號(hào)(-1退出):");
? ? ? ? ? ? index = CMUtility.readInt();
? ? ? ? ? ? if (index == -1) {
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }

? ? ? ? ? ? cust = customers.getCustomer(index - 1);
? ? ? ? ? ? if (cust == null) {
? ? ? ? ? ? ? ? System.out.println("無(wú)法找到指定客戶!");
? ? ? ? ? ? } else
? ? ? ? ? ? ? ? break;
? ? ? ? }

? ? ? ? System.out.print("確認(rèn)是否刪除(Y/N):");
? ? ? ? char yn = CMUtility.readConfirmSelection();
? ? ? ? if (yn == 'N')
? ? ? ? ? ? return;

? ? ? ? boolean flag = customers.deleteCustomer(index - 1);
? ? ? ? if (flag) {
? ? ? ? ? ? System.out.println("---------------------刪除完成---------------------");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("----------無(wú)法找到指定客戶,刪除失敗--------------");
? ? ? ? }
? ? }

? ? private void listAllCustomers() {
? ? ? ? System.out.println("---------------------------客戶列表---------------------------");
? ? ? ? Customer[] custs = customers.getAllCustomers();
? ? ? ? if (custs.length == 0) {
? ? ? ? ? ? System.out.println("沒(méi)有客戶記錄!");
? ? ? ? } else {
? ? ? ? ? ? System.out.println("編號(hào)\t姓名\t性別\t年齡\t電話\t\t\t郵箱");
? ? ? ? ? ? for (int i = 0; i < custs.length; i++) {
? ? ? ? ? ? ? ? System.out.println(i + 1 + "\t\t" + custs[i].getName() + "\t" + custs[i].getGender() + "\t\t" + custs[i].getAge() + "\t\t" + custs[i].getPhone() + "\t" + custs[i].getEmail());
? ? ? ? ? ? }
? ? ? ? }

? ? ? ? System.out.println("-------------------------客戶列表完成-------------------------");
? ? }

? ? public static void main(String[] args) {
? ? ? ? CustomerView cView = new CustomerView();
? ? ? ? cView.enterMainMenu();
? ? }
}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 關(guān)于JSqlparser使用攻略(高效的SQL解析工具)

    關(guān)于JSqlparser使用攻略(高效的SQL解析工具)

    這篇文章主要介紹了關(guān)于JSqlparser使用攻略(高效的SQL解析工具),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • 18個(gè)Java8日期處理的實(shí)踐(太有用了)

    18個(gè)Java8日期處理的實(shí)踐(太有用了)

    這篇文章主要介紹了18個(gè)Java8日期處理的實(shí)踐(太有用了),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • Java中抽象類和接口介紹

    Java中抽象類和接口介紹

    大家好,本篇文章主要講的是Java中抽象類和接口介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2022-01-01
  • Spring的嵌套事務(wù)(Propagation.NESTED)到底是個(gè)啥案例代碼講解

    Spring的嵌套事務(wù)(Propagation.NESTED)到底是個(gè)啥案例代碼講解

    SavePoint是數(shù)據(jù)庫(kù)事務(wù)中的一個(gè)概念,?可以將整個(gè)事務(wù)切割為不同的小事務(wù),可以選擇將狀態(tài)回滾到某個(gè)小事務(wù)發(fā)生時(shí)的樣子,本文通過(guò)案例代碼講解Spring的嵌套事務(wù)(Propagation.NESTED)到底是個(gè)啥,感興趣的朋友跟隨小編一起看看吧
    2023-01-01
  • java微信開(kāi)發(fā)中的地圖定位功能

    java微信開(kāi)發(fā)中的地圖定位功能

    本文通過(guò)實(shí)例代碼給大家介紹了java微信開(kāi)發(fā)中的地圖定位功能,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-07-07
  • SpringBoot配置Ollama實(shí)現(xiàn)本地部署DeepSeek

    SpringBoot配置Ollama實(shí)現(xiàn)本地部署DeepSeek

    本文主要介紹了在本地環(huán)境中使用?Ollama?配置?DeepSeek?模型,并在?IntelliJ?IDEA?中創(chuàng)建一個(gè)?Spring?Boot?項(xiàng)目來(lái)調(diào)用該模型,文中通過(guò)圖文示例介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-03-03
  • 使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑

    使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑

    這篇文章主要介紹了使用SpringBoot設(shè)置虛擬路徑映射絕對(duì)路徑的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 基于Java?Agent的premain方式實(shí)現(xiàn)方法耗時(shí)監(jiān)控問(wèn)題

    基于Java?Agent的premain方式實(shí)現(xiàn)方法耗時(shí)監(jiān)控問(wèn)題

    javaagent是在JDK5之后提供的新特性,也可以叫java代理,這篇文章主要介紹了基于Java?Agent的premain方式實(shí)現(xiàn)方法耗時(shí)監(jiān)控問(wèn)題,需要的朋友可以參考下
    2022-10-10
  • 一文帶你了解Java中的SPI機(jī)制

    一文帶你了解Java中的SPI機(jī)制

    SPI 全稱是 Service Provider Interface,是一種 JDK 內(nèi)置的動(dòng)態(tài)加載實(shí)現(xiàn)擴(kuò)展點(diǎn)的機(jī)制,本文主要為大家介紹了SPI機(jī)制的原理與使用,需要的可以參考一下
    2023-04-04
  • StringUtils里的isEmpty方法和isBlank方法的區(qū)別詳解

    StringUtils里的isEmpty方法和isBlank方法的區(qū)別詳解

    這篇文章主要介紹了StringUtils里的isEmpty方法和isBlank方法的區(qū)別詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04

最新評(píng)論

洛隆县| 合川市| 漳平市| 林口县| 祁连县| 昌乐县| 时尚| 邵武市| 肃北| 巨鹿县| 偏关县| 六安市| 无为县| 桦南县| 嘉义县| 锦州市| 娱乐| 油尖旺区| 西峡县| 龙游县| 兴国县| 文登市| 明光市| 巨鹿县| 色达县| 南阳市| 瑞安市| 道真| 广元市| 丹江口市| 扎赉特旗| 辉南县| 都兰县| 双牌县| 桓台县| 灵寿县| 鹤山市| 满洲里市| 宁南县| 齐齐哈尔市| 科技|