Time of Update: 2018-07-25
首先假設一個情境,比如我們是賣手機的,如果顧客來了挑選手機,需要一個個拿不同型號的手機去示範功能 為了簡便,我們可以製作一個介面,在介面一端串連手機,另一端控制示範手機的各個功能 手機都有發簡訊、打電話兩個準系統,我們可以將介面設定為這兩個功能 public interface Cellphone{public void phone(long num);public void sms(long num, String content);} 下面的一般手機都可以使用這個介面
Time of Update: 2018-07-25
1.案例 比如說,你要註冊一個使用者,前面是商務邏輯,要調用資料訪問層的save(user)方法。先寫一個Data Access Objects的介面 Java codepublic interface IDAO{ void save(User user) throws UserNameExistException; } jdbc的實現是 Java codepublic class JDBCDAO implements IDAO{
Time of Update: 2018-07-25
面向介面編程在Java web 三層架構的應用與使用原廠模式解決問題 為什麼要面向介面編程: 在應用中,我們一般都是面向介面編程的,這樣有利於系統的擴充與移植。就像Java Web中的三層架構:展現層、商務邏輯層、資料持久層一樣,上層都是調用下層的介面。因為一旦下層實現改變:比如持久層從資料庫操作更換為檔案操作,上層因為調用下層的介面而不用更改任何代碼,利於系統擴充與移植。 面向介面編程的思路要點: 舉一個例子,現在要添加一個使用者,資料持久層介面如下所示: &
Time of Update: 2018-07-25
今天偶爾發現java的輸出資料流的安全執行緒問題 先看代碼吧 import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.OutputStream;import java.util.Random;import java.util.concurrent.TimeUnit;public class TestFileWrite {public
Time of Update: 2018-07-25
一、測試int為線程不安全 在java中,高並發/多線程情況下,int的自增自減操作都不是安全執行緒的,使用AtomicInteger可以保證。 package com.yezi.learn.atomic;import java.util.concurrent.atomic.AtomicInteger;/** * Created by yezi on 2014/5/10. */public class TestAtomicInteger { private int
Time of Update: 2018-07-25
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.ResourceBundle;/** * * <b>Application
Time of Update: 2018-07-25
Volatile變數 volatile 變數表示保證它必須是與主記憶體保持一致,它實際是 " 變數的同步 ", 也就是說對於 volatile 變數的操作是原子型的,如用在 long 或 double 變數前。 Java 語言中變數被儲存在主記憶體中,可以用於多線程間的通訊,除此之外,每個線程擁有自己的工作記憶體。 Volatile
Time of Update: 2018-07-25
設定檔名: email.properties 設定檔內容: #Update 'EMAIL_SET' value #Thu Nov 01 10:03:57 CST 2012 EMAIL_SUBJECT=這是發送的郵件標題 EMAIL_USERNAME=XXXXXX@163.com SERVER_PORT=8080 EMAIL_GETPWD=請查收您的密碼 EMAIL_PASSWORD=************ EMAIL_SERVER_PORT=25
Time of Update: 2018-07-25
第一步:定義一個List介面,規定一些基本操作 package my.stack;public class Node<T> {private T data;private Node<T> next;public Node(){data = null;next = null;}public Node(T data){this.data = data;this.next = null;}public Node(T data, Node<T> next){
Time of Update: 2018-07-25
鏈表是面試中常出現的一類題目,本文用Java實現了面試中常見的鏈表相關題目。本文主要參考整合重寫了《輕鬆搞定面試中的鏈表題目》和 《演算法大全(1)單鏈表》兩篇大作。兩篇大神的實現分別是C和C#,因為我更喜歡用Java面試,所以用Java重寫了所有實現,並附上自己的一些思考注釋。演算法大全(1)單鏈表 尚未有一些問題尚未整合進來,很快我會更新本文。接下來還會出關於二叉樹的大總結和棧和隊列的大總結。因為這些都屬於面試中的送分題。必須毫無偏差地拿下。至於像動態規劃這些比較“高端”的演算法,
Time of Update: 2018-07-25
NodeList subNodeList = rootNode.getChildNodes(); for (int i = 0; i < subNodeList.getLength(); i++) { System.out.println("子節點的節點名稱:" + subNodeList.item(i).getNodeName());
Time of Update: 2018-07-25
定義介面://Deque.javapackage dsa; //根據自己的程式位置不同public interface Deque {public int getSize();//返回隊列中元素數目public boolean isEmpty();//判斷隊列是否為空白public Object first() throws ExceptionQueueEmpty;//取首元素(但不刪除)public Object last() throws ExceptionQueueEmpty;//
Time of Update: 2018-07-25
棧數組實現一:優點:入棧和出棧速度快,缺點:長度有限(有時候這也不能算是個缺點) public class Stack {private int top = -1;private Object[] objs;public Stack(int capacity) throws Exception{if(capacity < 0)throw new Exception("Illegal capacity:"+capacity);objs = new
Time of Update: 2018-07-25
前言 最近參加一些校招,博主被問了很多資料結構的問題,其中很多問題面試官需要的答案不僅僅是需要你瞭解這些概念,而是需要你通過某種語言(C、C++、Java)把這種結構實現,同時還能根據公司的具體需求進一步最佳化。對於博主這樣,資料結構功底薄弱的選手,最終結果只能“被面”。痛定思痛,現在痛苦狂補中。正如江湖中有句話“欠下的債終究要還的”。 鏈棧 棧的鏈式儲存結構稱為鏈棧。
Time of Update: 2018-07-25
如何讀取資源檔:(一)Properties props = new Properties(); props.load(new FileInputStream("db.properties"));(二)blog.properties檔案如下dbdriver=oracle.jdbc.driver.OracleDriverdburl=jdbc:oracle:thin:@127.0.0.1:1521:ora92dbuser=blogdbpwd=blog--------------
Time of Update: 2018-07-25
上一篇是自己寫的網路Stream讀取並轉換成String的原始碼,今天研究了一下新浪的寫法,下面貼出來供大家參考>>: /** * Returns the response body as string.<br> * Disconnects the internal HttpURLConnection silently. * @return response body * @throws WeiboException */
Time of Update: 2018-07-25
JMF 結構 ● 資料來源(Data source) ● 截取裝置(Capture Device,包括視頻和音頻截取裝置) ● 播放器(Player) ● 處理器(Processor) ● 資料格式(Format) ● 管理器(Manager) 直接貼代碼: package B110; import java.awt.BorderLayout; import java.awt.Component; import
Time of Update: 2018-07-25
java.lang.NullPointerExceptionorg.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:289)org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:357)org.apache.struts.chain.commands.CreateActionForm.execute(
Time of Update: 2018-07-25
文章來源:http://blog.sina.com.cn/s/blog_700dec940100spox.html 他使用的是jdom.jar解析xml檔案 import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException;
Time of Update: 2018-07-25
JAVA 解析 XML 通常有兩種方式,DOM 和 SAX。DOM 雖然是 W3C 的標準,提供了標準的解析方式,但它的解析效率一直不盡如人意,因為使用DOM解析XML時,解析器讀入整個文檔並構建一個駐留記憶體的樹結構(節點樹),然後您的代碼才可以使用 DOM 的標準介面來操作這個樹結構。但大部分情況下我們只對文檔的部分內容感興趣,根本就不用先解析整個文檔,並且從節點樹的根節點來索引一些我們需要的資料也是非常耗時的。