Time of Update: 2018-12-03
在使用關聯式資料庫時,我們通過sql語句來檢索資料來源,這沒有任何問題,但是關係資料也存在著一定的局限性,只能儲存結構化的資料當資料集是非結構化的時候該怎樣儲存呢,最簡單的辦法就是封裝成xml。應用開發中我們經常使用xml作為資料來源來儲存一些非結構化的資料,然而是否存在一種語言可以像sql語句檢索關聯式資料庫一樣來檢索xml呢?答案就是xquery。xquery本身的文法結構並不複雜,xml節點位置是通過xpath進行描述的,在輔以相應的邏輯運算式,滿足使用者的檢索喜好設定。有關xquery和
Time of Update: 2018-12-03
在實際編程當中,很多時候我們要把資料暫時儲存起來,以便實現某種特定的功能。在純C語言中,我們需要自己去實現一個資料結構(如鏈表、隊列等)來進行元素的存取,不僅繁瑣,而且效率也不高(類庫對資料結構的封裝往往都是最佳化過的,有著較好的效能)。在Java中,我們可以使用對象容器(Container)來方便地存取資料。1、List介面(List
Time of Update: 2018-12-03
JAVA中基本的泛型文法元素大致有三種:限制泛型可用類型、使得類型萬用字元,以及泛型的繼承。下面將分別對這三種文法進行介紹。1、限制泛型可用類型我們在定義泛型類時,預設的是可以使用任何類型來執行個體化泛型類中的類型持有人。我們也可以指定某種類型,使得此泛型類只能通過這種類型或其子類,或實現這個介面的類來執行個體化類型持有人。我們在定義類型持有人時,使用extends關鍵字來進行限制,例如我們可以這樣定義泛型類:public class LimitDemo<T extends
Time of Update: 2018-12-03
在Java中,所有的輸入、輸出問題都會被抽象成流(Stream)對象來解決。下面介紹一下常用的輸入、輸出資料流對象的使用方法。1、 File類File類是檔案的抽象代表。一個檔案(包括目錄)就是一個File類的執行個體。java.io.File類為我們提供了一個抽象的、系統獨立的檔案表示,我們不必糾結於因為不同的作業系統檔案路徑的表示方法不同而造成的差異,File會將傳進去的路徑自動轉換為與系統無關的抽象路徑表示。File必須配合其它相關的類來使用。2、
Time of Update: 2018-12-03
FordFulkerson演算法3個核心的概念:殘留網路、增廣路徑和流網路的割(詳細介紹參考演算法導論)所測試的網路結構圖:第1次遍曆在殘留網路中找到S->V2->V1->V3->T這條增廣路徑(A),這時的網路流量B執行第2次遍曆的時候在殘留網路中找到S->V2->V4->T這條增廣路徑(A),這時的網路流量B執行第3次遍曆的時候在殘留網路中找到S->V2->V4->V3->T這條增廣路徑(A),這時的網路流量B執行第4次遍曆的
Time of Update: 2018-12-03
最小產生樹定義:每一個無向圖可拆分成多個子圖,在這些子圖中,如果圖的各個頂點沒有形成迴路,則是圖的一顆產生樹。最小產生樹的意識是樹的相鄰節點距離之和最小。應用情境:張三被選為他們鎮的鎮長!他其中一個競選承諾就是在鎮上建立起互連網,並串連到所有的農場。張三已經給他的農場安排了一條高速的網路線路,他想把這條線路共用給其他農場。為了用最小的消費,他想鋪設最短的光纖去串連所有的農場,問要如何?。演算法實現:有關最小產生樹的問題常見的演算法有兩種,分別是Kruskal(克魯斯卡爾)演算法和Prim(普裡姆
Time of Update: 2018-12-03
這個程式我都不好意思上傳的,當時自學java半個多月,就有同學找我幫他做個計算機,我連什麼類啊,對象啊都分不清,上網搜了很多資料,結合自己的“想象”編了這麼個計算機,大家看了別罵我啊,畢竟當時是自學。import java.awt.*;import javax.swing.*;import java.awt.event.*;public class jisuan extends JFrame implements ActionListener{private JTextField jieguo;
Time of Update: 2018-12-03
java.lang.NoClassDefFoundError: com.jayway.android.robotium.solo.Soloat com.skymobi.android.qc.test.RobotTest.setUp(RobotTest.java:46)at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:169)at
Time of Update: 2018-12-03
反射機制是java語言的一個特色,能夠實現在類中調用其他類裡的方法和屬性。這一個特點可以很方便的在自己開發的架構中使用,可以說功能是比較強大的一個特性。先建立一個新的java工程,目錄結構如下:Reflect類package com.org.testReflect;public class Reflect {public String str="123456";public void print(){System.out.println("test
Time of Update: 2018-12-03
// 線程的理解,傳統上有兩種方式,一種是直接new Thread 大家可以想象,為什麼掉start方法就// 可以運行run方法呢?大家可以看Thread的原始碼 /** * Causes this thread to begin execution; the Java Virtual Machine * calls the <code>run</code> method of this thread. *
Time of Update: 2018-12-03
一、訪問裝置寄存器的方法效果=>通過proc檔案系統來訪問,通過傳統的裝置檔案的方法來訪問,通過devfs檔案系統來訪問。二、增加HAL層,增加JNI方法實現代碼,添加HelloServer服務,寫apk測試程式。註:1、增加Appfaramworks server後,改動framworks檔案,此時用make snod後,可能會停留在android開機介面,從logcat可以看到,系統一直重複運行。此時請嘗試使用make
Time of Update: 2018-12-03
由於Java是一種完全物件導向的進階語言,所以在編寫程式的時候資料大都存放在對象當中。我們有時會需要將記憶體中的整個對象都寫入到檔案中去,然後在適當的時候再從檔案中將對象還原至記憶體。我們可以使用java.io.ObjectInputStream和java.io.ObjectOutputStream類來完成這個任務。1、對象的序列化(Serialize)序列化是指將對象的狀態資訊轉換為可以儲存或傳輸的形式的過程。在序列化期間,對象將其目前狀態寫入到臨時或持久性儲存區。以後,可以通過從儲存區中讀取
Time of Update: 2018-12-03
我們在Android系統增加硬體服務的目的是為了讓應用程式層的APP能夠通過Java介面來訪問硬體服務。那麼, APP如何通過Java介面來訪問Application Frameworks層提供的硬體服務呢?在這一篇文章中,我們將在Android系統的應用程式層增加一個內建的應用程式,這個內建的應用程式通過ServiceManager介面擷取指定的服務,然後通過這個服務來獲得硬體服務。 一. 參照在Ubuntu上為Android系統的Application
Time of Update: 2018-12-03
SequenceInputStream可以看做是多個InputStream對象的有序集合。當一個InputStream對象的資料讀取完後,它會自動取出下一個InputStream對象進行讀取,直到所有的InputStream對象都讀取完為止。利用這個特點,我們來編寫一個檔案分割、合并工具。使用說明:SequenceDemo [Option] [filePath] [number]Option:-c : 表示要合并檔案-s :
Time of Update: 2018-12-03
題外話:前幾天我的筆記本電腦硬碟壞了,本子送到售後進行維修,需要2到3個工作日才能搞定。。現在木有本本用了,無奈就借了女朋友的本子先用著了。。現裝的JDK,UltraEdit。。所以下面的圖片中編譯器的報錯資訊就變成了中文。。哎,脆弱的硬碟啊。。。Java在J2SE 5.0後開始增加了泛型(Generics)功能,並且許多API都根據這個新的功能被重新改寫了,例如List、Map、Set等與資料結構相關的類。如果我們不想使用泛型功能,也可以用J2SE
Time of Update: 2018-12-03
1. PrintStream類我們都知道,int類型在Java中佔4個位元組,如1在記憶體中表示為 00000000 00000000 00000000 00000001。如果我們直接使用OutputStream對象輸出到一個檔案中的話,那麼程式就會向檔案中直接寫入
Time of Update: 2018-12-03
Java是第一個在語言級提供了對多線程程式設計支援的語言。語言級支援是啥意思呢,就是拋開作業系統,只使用Java內建的語句就能實現多線程。一般來講,多線程會依賴作業系統,我們要高用與系統相關的API才能建立多個線程,如在Windows中的CreateThread()函數。但JAVA就不用了。JAVA運行時系統實現了一個用於調用線程執行的線程調度器,用來決定在某一時刻哪個線程在CPU上運行。在java技術中,線程通常是搶佔式的而不需要時間片分配進程(分配給每個線程相等的CPU時間的進程)。搶佔式調
Time of Update: 2018-12-03
在上兩篇文章中,我們介紹了如何為Android系統的硬體編寫驅動程式,包括如何在Linux核心空間實現核心驅動程式和在使用者空間實現硬體抽象層介面。實現這兩者的目的是為了向更上一層提供硬體提供者,即為Android的Application
Time of Update: 2018-12-03
在Java中,我們使用java.net.Socket及其相關類來完成有關網路的相關功能。Socket類非常簡單易用,因為Java技術隱藏了建立網路連接和通過串連發送資料的複雜過程。下面所說的內容只適用於TCP協議。一、串連到伺服器我們可以使用Socket類的建構函式來開啟一個通訊端,如Socket sk = new Socket("210.0.235.14",13);其中,210.0.235.14是一個點分十進位的String對象,表示目的主機的IP地址(或主機名稱),
Time of Update: 2018-12-03
我們知道,當線程A由於某種原因(如等待IO操作完成、調用了sleep函數等)放棄了執行權時,作業系統就會調度另一個處於就緒狀態(Runnable)