Time of Update: 2018-07-26
Java 設計模式 1.一共23種設計模式 2.共分為三大類:建立型(5種):Factory 方法模式、抽象Factory 方法模式、單利模式、建造者模式、原型模式。 結構型(7種):適配器模式、裝飾者模式、代理模式、面板模式、橋接模式、組合模式、享元模式。
Time of Update: 2018-07-26
Java語言沒有提供goto語句來控製程序跳轉,此方法提高了程式流程式控制制的可讀性,但降低了程式控制的靈活性。為了彌補這一不足,Java提供了continue和break來控制迴圈結構,除此之外,return可以結束整個方法,也結束了一次迴圈。 一.使用break結束迴圈 1.在某種條件出現時強行終止迴圈,用於完全結束一個迴圈,跳出迴圈體。 eg: for(int i=0;i<10;i++){
Time of Update: 2018-07-26
轉自: http://dev2dev.bea.com.cn/bbs/thread.jspa?forumID=124&threadID=28320&messageID=171767 //Java獲得CPU序號和網卡Mac地址 /* 利用Runtime
Time of Update: 2018-07-26
題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構(空樹不是任意一個樹的子結構)。下圖中:右邊的二叉樹是左邊二叉樹的子結構 解法: 先序遍曆 A樹,如果當前節點與 B樹的根節點相同,則判斷 B 是不是 A的子樹,判斷 B是 A 的子樹的也用遞迴:比較 B 的左子樹 是否是 A 左子樹的子結構,B 的右子樹是否是 A的右子樹的子結構。因此需要兩個函數來進行,一個函數來進行先序遍曆,一個來判斷是否是子樹。 /*class TreeNode{ int val;
Time of Update: 2018-07-26
從下面這個url搬運。http://hck.iteye.com/blog/1175762 不過程式略有改動。 關於sax(搬自百科) SAX,全稱Simple API for XML,既是指一種介面,也是指一個軟體包。 SAX是事件驅動型 XML解析的一個標準介面不會改變 SAX的工作原理簡單地說就是對文檔進行順序掃描,當掃描到文檔(document)開始與結束、元素(element)開始與結束、文檔
Time of Update: 2018-07-26
1.Java String 可以改變嗎。 一直認為java 中String類型的值不能修改,主要是因為String是final的,而且裡面沒有設定值的set方法。但是可以通過反射機制改變值。 例1 public class Test { public static void main(String[] args) throws Exception { String s="0123456789";
Time of Update: 2018-07-26
這題還是筆試的時候遇到的,當時沒有想太多,直接用了最為直接的移位相加的方法,雖然可以得出結果,但是程式效率低。 後來發現使用n=n&(n-1)的方法,效率會更高,先上代碼。 <span style="font-size:18px;">public static void main(String[] args) {// TODO Auto-generated method stubScanner scanner = new
Time of Update: 2018-07-26
最近在刷《劍指offer》裡的編程題,但是網上關於《劍指offer》的解答多半是C或者C++的,而且官方(作者)也是在用C++進行講解,這裡自己用java寫了一些題目的解答代碼(當然也有部分是借鑒了網上別人的解答的,出處未註明敬請之處請指出,侵刪),希望能對大家的學習有所協助。 題目: 用兩個棧來實現一個隊列,完成隊列的Push和Pop操作。隊列中的元素為int類型。
Time of Update: 2018-07-26
1.PrintWriter try {PrintWriter pw=new PrintWriter("D://1.txt");for(int i=0;i<500000;i++){ pw.write("我是一顆自由小星星"); } pw.flush(); pw.close();} catch (FileNotFoundException e) {// TODO Auto-generated catch
Time of Update: 2018-07-26
4、 Timer 和 Timer Task 的使用 Timer 是一種定時器工具,用來在一個後台線程計劃執行指定任務,這些任務可以被執行一次,也可以被定期執行。每個 Timer 對象對應一個後台線程,順序地執行所有計時器任務。如果完成某個計時器任務的時間太長,那麼它會“獨佔”計時器的任務執行線程,從而可能延遲後續任務的執行。對 Timer
Time of Update: 2018-07-26
一直用的是Log4j記錄日誌資訊,突然發現很多人在用Logger,就總結了下,希望這篇文章對大家學習Logger有用。 首先是建立Logger對象: static Logger getLogger(String name):為指定系統尋找或建立一個logger。 static Logger getLogger(String name,String resourceBundleName):為指定子系統尋找或建立一個logger。
Time of Update: 2018-07-26
比如訂單號碼要求20位字串,除了8位的yyyymmdd外,還有12位可以自己去做。 提供一個工具類,根據一個數字產生訂單號 result str = yyyymmdd + 這個int的 格式化結果,格式化就是補0,比如今天是16年12.30第一個訂單號是1那麼完整訂單號為20161230000000000001 假設今天是第一次要訂單號,我需要100個。 然後提供一個服務類來記錄和擷取今天產生的最大訂單號。 // need Num代表
Time of Update: 2018-07-26
關於join方法:join方法一定要在start後,也就是先線程就緒,後加入,否則無效。請注意,join方法僅僅是讓兩個線程同步執行,仍然是兩個線程,不是合并成一個。 Java守護線程 1、什麼是守護線程(Daemon線程)。 守護線程是一個後台啟動並執行線程,與之對比的是使用者線程(User線程)。它從屬於建立它的線程,因此當建立守護的線程結束時,守護線程也隨之消亡。(但守護進程若有自己的消亡邏輯,可以在被守護進程之前消亡)當正在啟動並執行線程都是守護線程時,JAVA
Time of Update: 2018-07-26
一 原廠模式 原廠模式從字面可以理解,就是我們需要某個執行個體,不需要一個個去new出來,而是通過某個工廠批量產生,這樣設計的好處就是如果某個類被替換,那麼在用戶端我們不需要改動,只要在工場類中去修改,降低了類之間的依賴性。 代碼執行個體: package com.example.springboot_test.test;/** *
Time of Update: 2018-07-26
首先是集合的架構圖, 圖片來源 Java集合是java提供的一個工具包,全部繼承自java.util.*。主要包括兩大介面Collection介面和Map介面以及相關的工具類(Iterator迭代器介面、Enumeration枚舉類、Arrays和Colletions)。
Time of Update: 2018-07-26
有時候,我們會在很多涉及到通過JAVA物件流程進行序列化和還原序列化時,會看到下面的方法: private void writeObject(java.io.ObjectOutputStream s)throws java.io.IOException private void readObject(java.io.ObjectInputStream s)throws java.io.IOException, ClassNotFoundException
Time of Update: 2018-07-26
單例設計模式 單例設計模式就是保證一個類中,有且只有一個執行個體存在並提供一個訪問點供全域訪問,該執行個體可以被所有的程式來訪問。 一般在這種情況下用: 當要用一個類時,又要用該類中的一個執行個體; new 來建立執行個體時會給程式造成資源的浪費,而且執行個體越多也不好控制。 不同的線程調用時,可能會引起不同步的現象。 實際開發中用到單例模式的情況: 資料庫連接池 Windows的Task
Time of Update: 2018-07-26
1、sleep() 使當前線程(即調用該方法的線程)暫停執行一段時間,讓其他線程有機會繼續執行,但它並不釋放對象鎖。也就是說如果有synchronized同步快,其他線程仍然不能訪問共用資料。注意該方法要捕捉異常。
Time of Update: 2018-07-26
HeadFirst裡面的單例模式的簡要定義是:確保一個類只有一個執行個體,並提供一個全域訪問點。先來看一下幾種常見的單例模式。 1.懶漢模式 懶漢模式意思就是消極式載入,等到要用這個類了,才會去載入執行個體。 public class JiaJia {private static JiaJia instance;private JiaJia() {}public static JiaJia getInstance() {if (instance == null)
Time of Update: 2018-07-26
66. Plus One Given a non-negative integer represented as a non-empty array of digits, plus one to the integer. You may assume the integer do not contain any leading zero, except the number 0 itself. The digits are stored such that the