Time of Update: 2015-08-02
標籤:如何定義一個函數1、函數是一個獨立的功能,首先明確該功能的運算結果是什麼,即明確函數的傳回值類型。2、明確定義該功能的過程中是否需要未知的內容參與運算,即明確函數的參數列表(參數的類型和參數的個數)。函數的重載定義:函數名相同,參數列表不同。參數列表不同,即參數類型不同、參數個數不同。重載和傳回值類型沒有關係。什麼時候用重載當定義的功能相同,但參與運算的未知內容不同。那麼,這時就定義一個函數名稱以表示該功能,方便閱讀,而通過參數列表的不同來區分多個同名函數。建構函式特點:1、函數名與類名相
Time of Update: 2015-08-02
標籤:java 物件導向 例子一:import java.util.Map;import java.util.Set;import java.util.HashMap;public class HashMapDemo1 {publicstatic void main(String args[]){User user1 = new User("001","Jack",12);User
Time of Update: 2015-08-02
標籤:java 歸併排序 package sort;import java.util.Random;public class MergeSort {@SuppressWarnings("unused")public boolean initTestArray(int[] testArray) {// 初始化testArrayif (testArray == null)return false;Random
Time of Update: 2015-08-02
標籤:mystra java編程思想 第5章 初始化與清理 初始化和清理(cleanup)是涉及安全的兩個問題. 構造器確保類的初始化, 採用與類名相同的名稱, 初始化期間自動調用構造器. 預設構造器就是不接受任何參數的構造器. 重載方法的函數名相同, 參數列表唯一. 如果傳入的實際資料類型小於方法聲明的形式參數類型, 實際資料類型就會提示.
Time of Update: 2015-08-02
標籤:與前面介紹的鎖和volatile相比較,對final域的讀和寫更像是普通的變數訪問。對於final域,編譯器和處理器要遵守兩個重定序:在建構函式內對一個final域的寫入,與隨後把這個被構造對象的引用賦值給一個引用變數,這兩個操作之間不能重排序。初次讀一個包含final域的對象的引用,與隨後初次讀這個final域,這兩個操作之間不能重排序。下面,我們通過一些樣本性的代碼來分別說明這兩個規則:public class FinalExample { int i;
Time of Update: 2015-08-02
標籤:鎖的釋放-擷取建立的happens before 關係鎖是java並發編程中最重要的同步機制。鎖除了讓臨界區互斥執行外,還可以讓釋放鎖的線程向擷取同一個鎖的線程發送訊息。下面是鎖釋放-擷取的範例程式碼:class MonitorExample { int a = 0; public synchronized void writer() { //1 a++; //2 }
Time of Update: 2015-08-02
標籤:資料競爭與順序一致性保證當程式未正確同步時,就會存在資料競爭。java記憶體模型規範對資料競爭的定義如下:在一個線程中寫一個變數,在另一個線程讀同一個變數,而且寫和讀沒有通過同步來排序。當代碼中包含資料競爭時,程式的執行往往產生違反直覺的結果(前一章的樣本正是如此)。如果一個多線程程式能正確同步,這個程式將是一個沒有資料競爭的程式。JMM對正確同步的多線程程式的記憶體一致性做了如下保證:如果程式是正確同步的,程式的執行將具有順序一致性(sequentially
Time of Update: 2015-08-02
標籤:處理器記憶體模型順序一致性記憶體模型是一個理論參考模型,JMM和處理器記憶體模型在設計時通常會把順序一致性記憶體模型作為參照。JMM和處理器記憶體模型在設計時會對順序一致性模型做一些放鬆,因為如果完全按照順序一致性模型來實現處理器和JMM,那麼很多的處理器和編譯器最佳化都要被禁止,這對執行效能將會有很大的影響。根據對不同類型讀/寫操作組合的執行順序的放鬆,可以把常見處理器的記憶體模型劃分為下面幾種類型:放鬆程式中寫-讀操作的順序,由此產生了total store
Time of Update: 2015-08-02
標籤: 題目:輸入兩個正整數number1和number2,求其最大公約數和最小公倍數。 演算法:較大數和較小數取餘,較小數除餘數,一直到餘數為0時,為最大公約數(輾轉相除法);最大公倍數numbe1*number2/(最大公約數),下面直接上代碼:import java.util.Scanner;public class Max_Min { static int n1; public static void main(String[] args) {
Time of Update: 2015-08-02
標籤:原作者滴著:http://www.cnblogs.com/eflylab/archive/2007/01/20/625237.htmlJava提供了數種持有對象的方式,包括語言內建的Array,還有就是utilities中提供的容器類(container classes),又稱群集類(collection classes)。集合在java中非常重要,在討論之前,先來看幾個面試中的經典問題。 1 Collection 和 Collections的區別。 2 List,
Time of Update: 2015-08-02
標籤:volatile的特性當我們聲明共用變數為volatile後,對這個變數的讀/寫將會很特別。理解volatile特性的一個好方法是:把對volatile變數的單個讀/寫,看成是使用同一個監視器鎖對這些單個讀/寫操作做了同步。下面我們通過具體的樣本來說明,請看下面的範例程式碼:class VolatileFeaturesExample { volatile long vl = 0L; //使用volatile聲明64位的long型變數 public void set(long
Time of Update: 2015-08-02
標籤:java 物件導向 class java 反射java.lang.Class物件導向的原理一般認為萬物萬事皆對象a.類名.classb.如果對象存在可以直接對象.getClassc.Class.forName("類的全稱");public class ClassDemo2 {public static void main(String[] args) {Class c
Time of Update: 2015-08-02
標籤:物件導向 java java 反射java.lang.Class物件導向的原理一般認為萬物萬事皆對象a.類名.classb.如果對象存在可以直接對象.getClassc.Class.forName("類的全稱");例子:package corelesson;import java.lang.reflect.Constructor;import
Time of Update: 2015-08-02
標籤:目的:資料的初始化是非常重要的,未經初始化的資料很多情況下都不是期望的結果,很多忘記初始化的資料是導致錯誤的根源。建構函式就是提供了一個初始化的地方,可以把初始化資料的代碼寫在建構函式裡。當然允許你可以不寫在建構函式裡,可以自訂一個方法再去調用,不過建構函式的方便之處在於只要建立了對象,就會自動地調用建構函式,保證不會忘記調用。這才是使用建構函式的根本目的。如果有一些特殊情況,比如建立對象的時候初始化會帶來效能問題,比如串連資料庫等耗時的操作,是不必在建構函式內寫資料庫的初始化代碼的。代碼
Time of Update: 2015-08-02
標籤: 實現一個伺服器,通過我們發送的文本資料,然後轉回大寫放回,實現一個服務端與用戶端的互動,用over來作為結束標記,具體代碼如下:用戶端:package com.seven.tcp;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import
Time of Update: 2015-08-02
標籤:其實用戶端與服務端通訊的道理都是一樣的,都是通過輸入與輸出這兩個流,那麼實現檔案上傳也就是同樣的,用戶端把檔案讀到檔案流,服務端用檔案流來接受,然後寫到一個檔案中,這樣子就實現了檔案上傳,檔案拷貝也是同樣的道理~,具體看代碼實現:用戶端:package com.seven.tcp;import java.io.File;import java.io.FileInputStream;import java.io.InputStream;import java.io.OutputStream;
Time of Update: 2015-08-02
標籤: Regex平時在用到字串處理的時候是比較常用的,個人覺得不需要刻意的去理解,用的話把文檔拿出來查一下就好了,下面給個連結 http://www.php100.com/manual/Javascript/html/jsgrpRegExpSyntax.htm 這個是Regex的文檔,用的時候可以去查查,下面用一個小例子熟悉一下,功能是輸入一串字串,輸出裡面的數字個數,代碼比較簡單:import java.util.Scanner;import
Time of Update: 2015-08-02
標籤:嵌套類包括:1)靜態嵌套類 (static 修飾符) 2)非靜態嵌套類(又叫內部類) 其中內部類又可分為三種: 其一、在一個類(外部類)中直接定義的內部類; 其二、在一個方法(外部類的方法)中定義的內部類; 其三、匿名內部類。 訪問規則總結:1)靜態嵌套類: 1. 靜態嵌套類可以直接存取外部類的靜態成員變數, 但不能直接存取外部類的非靜態成員變數
Time of Update: 2015-08-02
標籤:眾所周知,我們既可以在 activity_main.xml檔案中控制activity中的view,也可以使用java代碼的set..()方法控制它。在學習過程中,發現在ADT新版本中,和以前版本有區別:建立Andriod工程後,MainActivity 不再繼承Activity,而繼承的是ActionBarActivity;在layout檔案夾下會自動產生兩個.xml檔案,activity_main.xml檔案和fragement_main.xml檔案,和以前的版本只有
Time of Update: 2015-08-02
標籤:最近打算學習Java語言.對於我這種初學者來說,一開始,我想先體驗,大致看了一下Java語言是什麼,如何?...然並卵o_O,表示看得很迷糊.還是實踐最重要,把環境配置好再開始深入學習. 1.首先,到官網:http://www.oracle.com/technetwork/java/javasebusiness/downloads/java-archive-downloads-javase6-419409.html下載JDK我下載的是64位的jdk-6u13-linux-i586.bin