bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

面試題:用Java逆序打印鏈表-創(chuàng)新互聯(lián)

昨天的 Java 實現(xiàn)單例模式 中,我們的雙重檢驗鎖機(jī)制因為指令重排序問題而引入了 volatile 關(guān)鍵字,不少朋友問我,到底為啥要加 volatile 這個關(guān)鍵字呀,而它,到底又有什么神奇的作用呢?

10年積累的成都網(wǎng)站設(shè)計、成都網(wǎng)站制作經(jīng)驗,可以快速應(yīng)對客戶對網(wǎng)站的新想法和需求。提供各種問題對應(yīng)的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡(luò)服務(wù)。我雖然不認(rèn)識你,你也不認(rèn)識我。但先網(wǎng)站策劃后付款的網(wǎng)站建設(shè)流程,更有金牛免費(fèi)網(wǎng)站建設(shè)讓你可以放心的選擇與我們合作。

volatile 這個關(guān)鍵字,在昨天的講解中我們簡單說了一下:被 volatile 修飾的共享變量,都會具有下面兩個屬性:

  • 保證不同線程對該變量操作的內(nèi)存可見性。
  • 禁止指令重排序。

共享變量:如果一個變量在多個線程的工作內(nèi)存中都存在副本,那么這個變量就是這幾個線程的共享變量。

可見性:一個線程對共享變量值的修改,能夠及時地被其它線程看到。

對于重排序,不熟悉的建議直接 Google 一下,這里也就不多提了。只需要記住,在多線程中操作一個共享變量的時候,一定要記住加上 volatile 修飾即可。

由于時間關(guān)系,我們還是得先進(jìn)入今天的正題,對于 volatile 關(guān)鍵字,在要求并發(fā)編程能力的面試中還是很容易考察到的,后面我也會簡單給大家講解。

輸入一個單鏈表的頭結(jié)點(diǎn),從尾到頭打印出每個結(jié)點(diǎn)的值。


我們的鏈表有很多,單鏈表,雙向鏈表,環(huán)鏈表等。這里是最普通的單鏈表模式,我們一般會在數(shù)據(jù)存儲區(qū)域存放數(shù)據(jù),然后有一個指針指向下一個結(jié)點(diǎn)。雖然 Java 中沒有指針這個概念,但 Java 的引用恰如其分的填補(bǔ)了這個問題。

看到這道題,我們往往會很快反應(yīng)到每個結(jié)點(diǎn)都有 next 屬性,所以要從頭到尾輸出很簡單。于是我們自然而然就會想到先用一個 while 循環(huán)取出所有的結(jié)點(diǎn)存放到數(shù)組中,然后再通過逆序遍歷這個數(shù)組,即可實現(xiàn)逆序打印單鏈表的結(jié)點(diǎn)值。

我們假定結(jié)點(diǎn)的數(shù)據(jù)為 int 型的。實現(xiàn)代碼如下:

public class Test05 {
  public static class Node {
    int data;
    Node next;
  }

  public static void printLinkReverse(Node head) {
    ArrayList<Node> nodes = new ArrayList<>();
    while (head != null) {
      nodes.add(head);
      head = head.next;
    }
    for (int i = nodes.size() - 1; i >= 0; i--) {
      System.out.print(nodes.get(i).data + " ");
    }
  }

  public static void main(String[] args) {
    Node head = new Node();
    head.data = 1;
    head.next = new Node();
    head.next.data = 2;
    head.next.next = new Node();
    head.next.next.data = 3;
    head.next.next.next = new Node();
    head.next.next.next.data = 4;
    head.next.next.next.next = new Node();
    head.next.next.next.next.data = 5;
    printLinkReverse(head);
  }
}

文章名稱:面試題:用Java逆序打印鏈表-創(chuàng)新互聯(lián)
URL標(biāo)題:http://vcdvsql.cn/article16/dgdedg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、全網(wǎng)營銷推廣、電子商務(wù)、手機(jī)網(wǎng)站建設(shè)域名注冊品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站托管運(yùn)營