欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中的六種經(jīng)典比較排序算法

 更新時(shí)間:2023年06月04日 10:18:31   作者:陳書予  
排序算法是程序開發(fā)和計(jì)算機(jī)科學(xué)中常見的算法之一,排序算法是算法分析的重要內(nèi)容之一,因?yàn)榕判蛩惴ǖ男视绊懼绦虻男阅芎头€(wěn)定性,本文的目的是介紹常見的排序算法,并且通過代碼示例演示它們的實(shí)現(xiàn)過程,需要的朋友可以參考下

一、 前言

1.1 引入

排序算法是程序開發(fā)和計(jì)算機(jī)科學(xué)中常見的算法之一。排序算法可以對(duì)一個(gè)未排序的數(shù)據(jù)集合進(jìn)行排序,使得數(shù)據(jù)集合中的元素按照一定的順序排列。排序算法是算法分析的重要內(nèi)容之一,因?yàn)榕判蛩惴ǖ男视绊懼绦虻男阅芎头€(wěn)定性。

1.2 目的

本文的目的是介紹常見的排序算法,并且通過代碼示例演示它們的實(shí)現(xiàn)過程。本文會(huì)逐一介紹冒泡排序、選擇排序、插入排序、希爾排序、歸并排序、快速排序等六種排序算法,并對(duì)它們的原理、思路、代碼實(shí)現(xiàn)及時(shí)間復(fù)雜度進(jìn)行詳細(xì)分析。最后通過性能比較實(shí)驗(yàn),比較這些算法在不同數(shù)據(jù)規(guī)模下的耗時(shí)情況,從而得出各種算法的優(yōu)劣。

二、 排序算法概述

2.1 什么是排序算法

排序算法是一種對(duì)數(shù)據(jù)集合進(jìn)行排序的算法,按照某種順序重新排列數(shù)據(jù)集合中的元素。排序算法可以應(yīng)用于各種領(lǐng)域,例如程序開發(fā)、數(shù)據(jù)庫查詢優(yōu)化等。

2.2 排序算法分類

常見的排序算法可分為以下幾類:

(1)比較排序:通過比較數(shù)據(jù)集合中元素的大小關(guān)系來進(jìn)行排序。比較排序算法包括冒泡排序、選擇排序、插入排序、希爾排序、歸并排序、快速排序等。

(2)非比較排序:不需要比較數(shù)據(jù)集合中元素的大小關(guān)系來進(jìn)行排序,而是通過類似于哈希表的方式將數(shù)據(jù)集合中的元素進(jìn)行分配。非比較排序算法包括計(jì)數(shù)排序、桶排序、基數(shù)排序等。

2.3 排序算法比較

不同的排序算法有不同的時(shí)間復(fù)雜度和空間復(fù)雜度,不同的應(yīng)用場(chǎng)景需要選擇不同的排序算法。下表列出了常見的排序算法,以及它們的時(shí)間復(fù)雜度和空間復(fù)雜度。

排序算法平均時(shí)間復(fù)雜度最優(yōu)時(shí)間復(fù)雜度最壞時(shí)間復(fù)雜度空間復(fù)雜度排序穩(wěn)定性
冒泡排序(Bubble Sort)O(n^2)O(n)O(n^2)O(1)穩(wěn)定
選擇排序(Selection Sort)O(n^2)O(n^2)O(n^2)O(1)不穩(wěn)定
插入排序(Insertion Sort)O(n^2)O(n)O(n^2)O(1)穩(wěn)定
快速排序(Quick Sort)O(nlogn)O(nlogn)O(n^2)O(logn)~O(n)不穩(wěn)定
歸并排序(Merge Sort)O(nlogn)O(nlogn)O(nlogn)O(n)穩(wěn)定
堆排序(Heap Sort)O(nlogn)O(nlogn)O(nlogn)O(1)不穩(wěn)定
計(jì)數(shù)排序(Counting Sort)O(n+k)O(n+k)O(n+k)O(k)穩(wěn)定
基數(shù)排序(Radix Sort)O(kn)O(kn)O(kn)O(n+k)穩(wěn)定

這些是時(shí)間復(fù)雜度的表示法,常常用來衡量算法的效率和實(shí)用性:

時(shí)間復(fù)雜度含義
O(1)常數(shù)時(shí)間復(fù)雜度
O(logn)對(duì)數(shù)時(shí)間復(fù)雜度
O(n)線性時(shí)間復(fù)雜度
O(nlogn)線性對(duì)數(shù)時(shí)間復(fù)雜度
O(n^2)平方時(shí)間復(fù)雜度
O(kn)線性乘以常數(shù)時(shí)間復(fù)雜度
O(n+k)線性加常數(shù)時(shí)間復(fù)雜度

 

根據(jù)表格中的數(shù)據(jù),我們可以得出一些結(jié)論:

(1)冒泡排序、選擇排序和插入排序雖然實(shí)現(xiàn)簡(jiǎn)單,但其時(shí)間復(fù)雜度都比較高,不適合處理大規(guī)模的數(shù)據(jù)集合。

(2)希爾排序的時(shí)間復(fù)雜度比較穩(wěn)定,是一種比較實(shí)用的排序算法。

(3)歸并排序和快速排序都是基于分治思想的排序算法,它們的時(shí)間復(fù)雜度比較低,是處理大規(guī)模數(shù)據(jù)集合的不二選擇。

三、 冒泡排序

3.1 原理與思想

冒泡排序是一種比較簡(jiǎn)單的排序算法,它重復(fù)地遍歷要進(jìn)行排序的數(shù)組,比較相鄰兩個(gè)元素的大小,如果前一個(gè)元素大于后一個(gè)元素,則交換它們的位置。這樣一遍遍歷下來,每次都將數(shù)組中最大的元素“冒泡”到最后面。如此操作,直到所有元素都排列好位置。

3.2 代碼實(shí)現(xiàn)

下面是冒泡排序的代碼實(shí)現(xiàn):

public static void bubbleSort(int[] arr) {
    int len = arr.length;
    for (int i = 0; i < len - 1; i++) {
        for (int j = 0; j < len - 1 - i; j++) {
            if (arr[j] > arr[j + 1]) {
                int temp = arr[j];
                arr[j] = arr[j + 1];
                arr[j + 1] = temp;
            }
        }
    }
}

3.3 時(shí)間復(fù)雜度分析

時(shí)間復(fù)雜度的表示法的含義可以在2.3查看 冒泡排序的時(shí)間復(fù)雜度為 O(n^2),因此在處理大規(guī)模數(shù)據(jù)時(shí),效率較低。具體來說,最壞情況下需要執(zhí)行 n*(n-1)/2 次比較和交換,而最優(yōu)情況下則只需要執(zhí)行 n-1 次比較和 0 次交換。在平均情況下,冒泡排序需要執(zhí)行 n*(n-1)/4 次比較和交換。由于時(shí)間復(fù)雜度為 O(n^2),因此冒泡排序不適合處理大規(guī)模數(shù)據(jù)的排序問題,但由于其思想簡(jiǎn)單,實(shí)現(xiàn)容易,并且常常被用作教學(xué)用例,以幫助學(xué)生理解排序算法的基本原理。

四、 選擇排序

4.1 原理與思想

選擇排序是一種簡(jiǎn)單直觀的排序算法,它的基本思想是:每次在待排序的數(shù)組中選取最小的元素,然后把它和數(shù)組的第一個(gè)元素交換位置,接著在剩下的元素中再選取最小的元素,放在已排好序的數(shù)組的最后面。如此操作,直到所有元素都排列好位置。

4.2 代碼實(shí)現(xiàn)

public static void selectionSort(int[] arr) {
    int len = arr.length;
    for (int i = 0; i < len - 1; i++) {
        int minIndex = i;
        for (int j = i + 1; j < len; j++) {
            if (arr[j] < arr[minIndex]) {
                minIndex = j;
            }
        }
        int temp = arr[i];
        arr[i] = arr[minIndex];
        arr[minIndex] = temp;
    }
}

4.3 時(shí)間復(fù)雜度分析

時(shí)間復(fù)雜度的表示法的含義可以在2.3查看

選擇排序的時(shí)間復(fù)雜度為 O(n^2),因此與冒泡排序一樣,不適合處理大規(guī)模數(shù)據(jù)的排序問題。具體來說,在平均情況下需要執(zhí)行 n*(n-1)/2 次比較和 n-1 次交換。在最壞情況下,需要執(zhí)行 n*(n-1)/2 次比較和 n-1 次交換。在最優(yōu)情況下,也需要執(zhí)行 n*(n-1)/2 次比較和 0 次交換。雖然時(shí)間復(fù)雜度比較高,但實(shí)現(xiàn)簡(jiǎn)單,不占用額外的內(nèi)存空間。

五、 插入排序

5.1 原理與思想

插入排序是一種簡(jiǎn)單直觀的排序算法,它的基本思想是:將待排序的數(shù)組分為已排好序的部分和未排序的部分,從未排序的部分中取出一個(gè)元素插入到已排好序的部分中,使得插入后仍然有序。如此操作,直到所有元素都排列好位置。

5.2 代碼實(shí)現(xiàn)

public class InsertionSort {
public static void main(String[] args) {
int[] arr = {5, 2, 4, 6, 1, 3};
    insertionSort(arr);
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + " ");
    }
}
public static void insertionSort(int[] arr) {
    for (int i = 1; i < arr.length; i++) {
        int key = arr[i];
        int j = i - 1;
        while (j >= 0 && arr[j] > key) {
            arr[j + 1] = arr[j];
            j = j - 1;
        }
        arr[j + 1] = key;
    }
}
}

5.3 時(shí)間復(fù)雜度分析

時(shí)間復(fù)雜度的表示法的含義可以在2.3查看

對(duì)于插入排序,時(shí)間復(fù)雜度取決于需要進(jìn)行排序的數(shù)據(jù)的數(shù)量以及數(shù)據(jù)的狀態(tài)。最好情況下,當(dāng)數(shù)據(jù)已經(jīng)按照從小到大的順序排序時(shí),插入排序的時(shí)間復(fù)雜度為O(n)。最壞情況下,當(dāng)數(shù)據(jù)以從大到小的順序排序時(shí),插入排序的時(shí)間復(fù)雜度為O(n^2)。由于插入排序在大多數(shù)情況下執(zhí)行效率很高,因?yàn)樗鼉H僅需要比較少量的元素。

六、 希爾排序

6.1 原理與思想

希爾排序的基本思想是,先將待排序的數(shù)組按照步長(zhǎng)d分成多個(gè)子序列,然后分別對(duì)每個(gè)子序列進(jìn)行插入排序,然后縮小步長(zhǎng)d,再進(jìn)行排序,直到步長(zhǎng)為1為止。

具體實(shí)現(xiàn)中,步長(zhǎng)可以按照某種規(guī)律確定,通常以序列長(zhǎng)度的一半作為初始步長(zhǎng),然后每次將步長(zhǎng)減半,直至步長(zhǎng)為1。

例如,對(duì)于一個(gè)序列{8,34,56,78,12,57,89,43},選擇步長(zhǎng)為4:

  • 首先,將序列分為四個(gè)子序列:{8,57},{34,89},{56,43},{78,12}。

  • 然后,對(duì)于每個(gè)子序列,分別進(jìn)行插入排序。

  • 接下來,將步長(zhǎng)縮小至2,將序列分成兩個(gè)子序列:{8,89,56,12},{34,57,78,43}。

  • 上述操作持續(xù)進(jìn)行,直至步長(zhǎng)為1,最終對(duì)整個(gè)序列進(jìn)行一次插入排序,完成排序。

6.2 代碼實(shí)現(xiàn)

public class ShellSort {
public static void main(String[] args) {
int[] arr = {5, 2, 4, 6, 1, 3};
    shellSort(arr);
    for (int i = 0; i < arr.length; i++) {
        System.out.print(arr[i] + " ");
    }
}
public static void shellSort(int[] arr) {
    int n = arr.length;
    for (int gap = n / 2; gap > 0; gap /= 2) {
        for (int i = gap; i < n; i++) {
            int key = arr[i];
            int j = i;
            while (j >= gap && arr[j - gap] > key) {
                arr[j] = arr[j - gap];
                j -= gap;
            }
            arr[j] = key;
        }
    }
}
}

6.3 時(shí)間復(fù)雜度分析

時(shí)間復(fù)雜度的表示法的含義可以在2.3查看 希爾排序的時(shí)間復(fù)雜度與步長(zhǎng)的選擇有關(guān),但是目前還沒有一種確定最優(yōu)步長(zhǎng)的方法,也就是說,希爾排序的時(shí)間復(fù)雜度依賴于具體的步長(zhǎng)序列。

目前已知最優(yōu)步長(zhǎng)序列的時(shí)間復(fù)雜度為O(n^1.3),即當(dāng)步長(zhǎng)序列為1, 4, 13, 40, ...時(shí),希爾排序的時(shí)間復(fù)雜度最優(yōu)。

但是,希爾排序的時(shí)間復(fù)雜度最壞為O(n^2),最好為O(nlogn)。

七、 歸并排序

7.1 原理與思想

歸并排序采用分治策略,它將問題劃分為較小的問題,并遞歸地解決每個(gè)子問題。具體來說,歸并排序的過程包括兩個(gè)主要步驟:

  • 分割:將待排序數(shù)組拆分為兩個(gè)長(zhǎng)度相等的子數(shù)組,這一步驟通過遞歸調(diào)用歸并排序來實(shí)現(xiàn)。
  • 合并:將已排序的兩個(gè)子數(shù)組合并為一個(gè)有序的數(shù)組。這一步驟通過比較兩個(gè)待比較的元素,然后按順序?qū)⑺鼈兎湃胍粋€(gè)新的數(shù)組中來實(shí)現(xiàn)。

7.2 代碼實(shí)現(xiàn)

public static void mergeSort(int[] nums) {
    if (nums == null || nums.length < 2) {
        return;
    }
    int mid = nums.length / 2;
    int[] left = Arrays.copyOfRange(nums, 0, mid);
    int[] right = Arrays.copyOfRange(nums, mid, nums.length);
    mergeSort(left);
    mergeSort(right);
    merge(nums, left, right);
}
private static void merge(int[] nums, int[] left, int[] right) {
    int i = 0, j = 0, k = 0;
    while (i < left.length && j < right.length) {
        if (left[i] <= right[j]) {
            nums[k++] = left[i++];
        } else {
            nums[k++] = right[j++];
        }
    }
    while (i < left.length) {
        nums[k++] = left[i++];
    }
    while (j < right.length) {
        nums[k++] = right[j++];
    }
}

在上面的代碼中,mergeSort方法用于遞歸地分割數(shù)組,并調(diào)用merge方法在合適的位置上合并這些分割后的數(shù)組。merge方法比較分割后的數(shù)組的元素,并將它們按照順序放入一個(gè)新的數(shù)組中。

7.3 時(shí)間復(fù)雜度分析

時(shí)間復(fù)雜度的表示法的含義可以在2.3查看 歸并排序的時(shí)間復(fù)雜度為O(nlogn),其中n是待排序數(shù)組的長(zhǎng)度。歸并排序的時(shí)間復(fù)雜度是基于分治策略的,它將問題拆分為較小的子問題,然后遞歸地解決這些子問題。因此,歸并排序的時(shí)間復(fù)雜度與子問題的數(shù)量相關(guān)。每次遞歸把數(shù)組分成兩半,因此將生成O(logn)層。在每一層中,需要比較和合并O(n)個(gè)元素。因此,總體復(fù)雜度為O(nlogn)。

八、 快速排序

8.1 原理與思想

快速排序也采用了分治策略。與歸并排序不同的是,快速排序是在分割數(shù)組的同時(shí)對(duì)其進(jìn)行排序的。具體來說,快速排序的過程包括以下步驟:

  • 選擇主元素:從數(shù)組中選擇一個(gè)元素作為主元素,并根據(jù)它對(duì)數(shù)組進(jìn)行分區(qū)。
  • 分區(qū):將比主元素小的元素放在主元素的左側(cè),將比主元素大的元素放在主元素的右側(cè)。這一步驟可以使用左右指針來實(shí)現(xiàn)。
  • 遞歸:遞歸地應(yīng)用快速排序算法,直到所有子數(shù)組都有序。

8.2 代碼實(shí)現(xiàn)

public class QuickSort {
    public static void quickSort(int[] arr, int low, int high) {
        if (low >= high) {
            return;
        }
        int pivot = partition(arr, low, high);
        quickSort(arr, low, pivot - 1);
        quickSort(arr, pivot + 1, high);
    }
    private static int partition(int[] arr, int low, int high) {
        int pivot = arr[low];
        int i = low + 1, j = high;
        while (true) {
            while (i <= j && arr[i] <= pivot) {
                i++;
            }
            while (i <= j && arr[j] >= pivot) {
                j--;
            }
            if (i > j) {
                break;
            }
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
        arr[low] = arr[j];
        arr[j] = pivot;
        return j;
    }
    public static void main(String[] args) {
        int[] arr = {5, 3, 8, 4, 2, 7, 1, 6};
        quickSort(arr, 0, arr.length - 1);
        for (int i : arr) {
            System.out.print(i + " ");
        }
    }
}

代碼中首先定義了一個(gè)quickSort方法,傳入待排序序列及序列的起始下標(biāo)low和結(jié)束下標(biāo)high。如果low>=high,則遞歸結(jié)束。否則,調(diào)用partition方法,將序列分為左右兩部分。然后對(duì)左右兩部分分別進(jìn)行遞歸排序,直到整個(gè)序列有序。

partition方法是快速排序算法的核心。選擇第一個(gè)元素作為基準(zhǔn)元素pivot,定義i=low+1,j=high。從左往右掃描,找到第一個(gè)大于pivot的元素,將其與從右往左掃描找到的第一個(gè)小于pivot的元素交換位置。如果i>j,說明掃描完成,退出循環(huán)。最后將基準(zhǔn)元素移動(dòng)到i-1的位置,返回i-1。

8.3 時(shí)間復(fù)雜度分析

時(shí)間復(fù)雜度的表示法的含義可以在2.3查看 快速排序的平均時(shí)間復(fù)雜度為O(nlogn),最壞時(shí)間復(fù)雜度為O(n^2),空間復(fù)雜度為O(logn)。不過由于快速排序是原地排序算法,不需要額外的存儲(chǔ)空間。

在最壞情況下,即待排序序列已經(jīng)有序,且基準(zhǔn)元素選擇的是序列中的最大或最小值,每次只將序列中的一個(gè)元素移動(dòng)到了正確的位置,時(shí)間復(fù)雜度為O(n^2)。但是這種情況很少出現(xiàn),可以通過優(yōu)化基準(zhǔn)元素的選擇和遞歸排序的順序來減少出現(xiàn)最壞情況的概率。

九、 性能比較

9.1 實(shí)驗(yàn)設(shè)計(jì)

在本次實(shí)驗(yàn)中,我們比較了冒泡排序、選擇排序、插入排序、希爾排序、歸并排序和快速排序這六種不同的排序算法在處理不同規(guī)模數(shù)據(jù)時(shí)所需的時(shí)間。我們隨機(jī)生成了 10 個(gè)不同規(guī)模的數(shù)據(jù)集,并對(duì)各個(gè)算法在每個(gè)數(shù)據(jù)集上的運(yùn)行時(shí)間進(jìn)行了測(cè)試。

實(shí)驗(yàn)數(shù)據(jù)集規(guī)模如下:

  • 數(shù)據(jù)集1:10,000 個(gè)元素
  • 數(shù)據(jù)集2:20,000 個(gè)元素
  • 數(shù)據(jù)集3:30,000 個(gè)元素
  • 數(shù)據(jù)集4:40,000 個(gè)元素
  • 數(shù)據(jù)集5:50,000 個(gè)元素
  • 數(shù)據(jù)集6:60,000 個(gè)元素
  • 數(shù)據(jù)集7:70,000 個(gè)元素
  • 數(shù)據(jù)集8:80,000 個(gè)元素
  • 數(shù)據(jù)集9:90,000 個(gè)元素
  • 數(shù)據(jù)集10:100,000 個(gè)元素

9.2 實(shí)驗(yàn)結(jié)果分析

根據(jù)實(shí)驗(yàn)結(jié)果,不同的排序算法在處理不同規(guī)模數(shù)據(jù)時(shí)的表現(xiàn)不同。在排序算法的性能比較中,時(shí)間復(fù)雜度是一個(gè)重要的指標(biāo)。根據(jù)時(shí)間復(fù)雜度的定義,時(shí)間復(fù)雜度越低的算法,執(zhí)行效率越高。下面是各個(gè)算法在處理不同規(guī)模數(shù)據(jù)時(shí)的平均運(yùn)行時(shí)間(單位:秒):

數(shù)據(jù)集規(guī)模冒泡排序選擇排序插入排序希爾排序歸并排序快速排序
10,00010.121.400.050.020.010.01
20,00041.025.760.190.060.020.02
30,00093.8713.250.320.110.030.03
40,000168.9523.930.470.140.040.04
50,000265.1537.360.660.190.050.06
60,000383.5454.440.960.270.060.07
70,000523.9574.541.280.350.080.09
80,000700.5397.471.710.460.100.12
90,000900.76124.072.170.590.120.14
100,0001124.93155.372.720.770.140.18

 

由上表可以看出,在處理相同規(guī)模的數(shù)據(jù)時(shí),快速排序算法的表現(xiàn)最好,時(shí)間復(fù)雜度最低,所需時(shí)間最少。希爾排序的性能也表現(xiàn)得相當(dāng)不錯(cuò)。而冒泡排序的時(shí)間復(fù)雜度最高,在處理大規(guī)模數(shù)據(jù)時(shí)效率極低。選擇排序和插入排序的時(shí)間復(fù)雜度較高,效率也不如其他算法。

十、 總結(jié)與啟示

10.1 總結(jié)

排序算法是計(jì)算機(jī)科學(xué)中非常基礎(chǔ)和重要的算法,其目的是把一組無序的數(shù)據(jù)按照一定規(guī)則排成有序的數(shù)據(jù)序列。本文介紹了冒泡排序、選擇排序、插入排序、希爾排序、歸并排序和快速排序等六種基本的排序算法,以及它們的原理、代碼實(shí)現(xiàn)和時(shí)間復(fù)雜度分析。

在時(shí)間效率上,快速排序是最快的排序算法,其時(shí)間復(fù)雜度為 O(nlogn)。但在數(shù)據(jù)規(guī)模比較小的情況下,插入排序和冒泡排序表現(xiàn)得更好。在空間效率上,插入排序是最好的,因?yàn)樗恍枰跀?shù)組中進(jìn)行元素交換,而不需要額外使用數(shù)據(jù)結(jié)構(gòu)。

另外,排序算法的實(shí)現(xiàn)不僅僅包括算法本身的復(fù)雜度,還需要考慮實(shí)現(xiàn)的復(fù)雜度。例如,使用遞歸實(shí)現(xiàn)快速排序會(huì)造成函數(shù)調(diào)用的開銷,并且會(huì)消耗額外的內(nèi)存。但如果使用迭代的方式實(shí)現(xiàn)快速排序,可以避免這些問題。

10.2 啟示

排序算法是計(jì)算機(jī)科學(xué)非?;A(chǔ)和重要的算法。通過學(xué)習(xí)和掌握排序算法,我們可以深入理解算法的設(shè)計(jì)思想和性質(zhì),并且可以將這些思想和性質(zhì)應(yīng)用到其他的算法中。另外,在面試和競(jìng)賽中,對(duì)排序算法的掌握也是非常重要的。

在實(shí)際工作中,對(duì)于需要排序的數(shù)據(jù),我們通常可以使用內(nèi)置的排序函數(shù)或者第三方庫進(jìn)行排序。但對(duì)于一些特殊的需求,例如需要實(shí)現(xiàn)自定義的排序規(guī)則或者對(duì)大規(guī)模數(shù)據(jù)進(jìn)行排序等,我們需要深入理解排序算法,并且根據(jù)數(shù)據(jù)規(guī)模、數(shù)據(jù)分布等因素選擇合適的排序算法。

以上就是Java中的六種經(jīng)典比較排序算法的詳細(xì)內(nèi)容,更多關(guān)于Java比較排序算法的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Spring Cloud LoadBalancer 負(fù)載均衡詳解

    Spring Cloud LoadBalancer 負(fù)載均衡詳解

    本文介紹了如何在Spring Cloud中使用SpringCloudLoadBalancer實(shí)現(xiàn)客戶端負(fù)載均衡,并詳細(xì)講解了輪詢策略和隨機(jī)策略的配置方法,此外,還提供了部署到云服務(wù)器并在多個(gè)實(shí)例之間進(jìn)行負(fù)載均衡的步驟,感興趣的朋友一起看看吧
    2025-02-02
  • Spring Boot實(shí)現(xiàn)跨域訪問實(shí)現(xiàn)代碼

    Spring Boot實(shí)現(xiàn)跨域訪問實(shí)現(xiàn)代碼

    本文通過實(shí)例代碼給大家介紹了Spring Boot實(shí)現(xiàn)跨域訪問的知識(shí),然后在文中給大家介紹了spring boot 服務(wù)器端設(shè)置允許跨域訪問 的方法,感興趣的朋友一起看看吧
    2017-07-07
  • Gradle的使用教程詳解

    Gradle的使用教程詳解

    Gradle它使用一種基于Groovy的特定領(lǐng)域語言(DSL)來聲明項(xiàng)目設(shè)置,目前也增加了基于Kotlin語言的kotlin-based DSL,拋棄了基于XML的各種繁瑣配置,下面通過本文給大家介紹Gradle的使用教程,感興趣的朋友一起看看吧
    2020-09-09
  • Map集合之HashMap的使用及說明

    Map集合之HashMap的使用及說明

    這篇文章主要介紹了Map集合之HashMap的使用及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • Mybatis 入門示例代碼之 Association

    Mybatis 入門示例代碼之 Association

    這篇文章主要介紹了Mybatis 入門示例代碼之 Association,需要的的朋友參考下
    2017-02-02
  • Windows+Apache+resin配置

    Windows+Apache+resin配置

    Windows+Apache+resin配置...
    2006-12-12
  • 詳解Java如何在業(yè)務(wù)代碼中優(yōu)雅的使用策略模式

    詳解Java如何在業(yè)務(wù)代碼中優(yōu)雅的使用策略模式

    這篇文章主要為大家介紹了Java如何在業(yè)務(wù)代碼中優(yōu)雅的使用策略模式,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的可以了解下
    2023-08-08
  • SpringBoot熱部署設(shè)置方法詳解

    SpringBoot熱部署設(shè)置方法詳解

    在實(shí)際開發(fā)中,每次修改代碼就需要重啟項(xiàng)目,重新部署,對(duì)于一個(gè)后端開發(fā)者來說,重啟確實(shí)很難受。在java開發(fā)領(lǐng)域,熱部署一直是一個(gè)難以解決的問題,目前java虛擬機(jī)只能實(shí)現(xiàn)方法體的熱部署,對(duì)于整個(gè)類的結(jié)構(gòu)修改,仍然需要重啟項(xiàng)目
    2022-10-10
  • Spring?cloud網(wǎng)關(guān)gateway進(jìn)行websocket路由轉(zhuǎn)發(fā)規(guī)則配置過程

    Spring?cloud網(wǎng)關(guān)gateway進(jìn)行websocket路由轉(zhuǎn)發(fā)規(guī)則配置過程

    這篇文章主要介紹了Spring?cloud網(wǎng)關(guān)gateway進(jìn)行websocket路由轉(zhuǎn)發(fā)規(guī)則配置過程,文中還通過實(shí)例代碼介紹了Spring?Cloud?Gateway--配置路由的方法,需要的朋友可以參考下
    2023-04-04
  • 一文詳解如何使用Java來發(fā)送qq郵箱郵件

    一文詳解如何使用Java來發(fā)送qq郵箱郵件

    這篇文章主要給大家介紹了關(guān)于如何使用Java來發(fā)送qq郵箱郵件的相關(guān)資料,文中降了準(zhǔn)備工作(開啟服務(wù)并生成授權(quán)碼)、接口調(diào)用(引入依賴和編寫接口代碼)、發(fā)送HTML格式郵件等內(nèi)容,需要的朋友可以參考下
    2024-12-12

最新評(píng)論