原创 Java_基礎_初始化順序

實例變量可以在聲明處初始化,也可以在實例初始化塊或構造器中初始化。靜態變量可以在聲明處初始化或在靜態初始化塊中初始化。那麼,在一個類中,以上5種初始化方式可能都存在,這樣一來,順序就產生了。5種初始化方式會按怎樣的順序來執行呢?換句話說,

原创 Java_集合操作_不同的列表選擇不同的遍歷方法

我們來思考這樣一個案例:統計一個省得各科高考平均值,比如數學平均分是多少,語文平均分是多少等,這是每年招生辦都會公佈的數據,我們來想想看該算法應如何實現。當然使用數據庫中的一個SQL語句就能求出平均值,不過這不在我們的考慮之列,這裏還是使

原创 Java_數組_基本概念

多維數組 在Java中,對於多維數組,使用“數組的數組”來實現,即高維數組的每一個元素是一個低維數組,例如: int[][] a = new int[2][5]; 這是一個矩陣數組,可以這樣理解:該語句聲明瞭一個二維數組a,該數組

原创 Java_本地方法_Java程序中調用c函數

Java編程語言使用關鍵字native表示本地方法,關鍵字native提醒編譯器該方法將在外部定義。當然,本地方法不包含Java編程語言的代碼,而且方法標題後直接跟着一個表示終結的分號。因此,本地方法聲明看上去和抽象方法聲明類似。 例:

原创 Java_基礎_繼承的成員變量

如果子類繼承了父類的某些成員變量,則子類就可以訪問這些變量,就像這些變量是在子類中聲明的一樣。然而,現在有這樣一個問題:這些成員變量是從父類複製了一份,還是與父類共享同一個變量呢? 我們首先看實例變量。 例: package deep

原创 Java_語法基礎_成員變量的默認值

如果我們不做任何初始化工作,變量具有什麼默認值,或者是否具有默認值? 其實,成員變量在創建時,系統會爲其分配一個默認值。不同類型的變量,默認值也不相同。 例: package deep; public class DefaultVa

原创 Java_集合操作_集合中的哈希碼不要重複

在一個列表中查找某值是非常耗費資源的,隨機存取的列表是遍歷查找,順序存儲列表是鏈表查找,或者是Collections的二分法查找,但這都不夠快,畢竟都是遍歷嘛,最快的還要數以Hash開頭的集合(如HashMap、HashSet等類)查找,

原创 Java_集合操作_避開基本類型數組轉換列表陷阱

我們在開發過程中經常會使用Arrays和Collections這兩個工具類在數組和列表之間轉換,非常方便,但也有時候會出現一些奇怪的問題,來看如下代碼: package deep; import java.util.Arrays; im

原创 Java_集合操作_關於subList,子列表

子列表只是原列表的一個視圖 List接口提供了subList方法,其作用是返回一個列表的子列表,這與String類的subString有點類似,但它們的功能是否相同呢?我們來看如下代碼: package deep; import jav

原创 Java_集合操作_集合運算時使用更優雅的方式

在初中代數中,我們經常會求兩個集合的並集、交集、差集等,在Java中也存在着此類運算,那如何實現呢?一提到此類集合操作,大部分的實現者都會說:對兩個集合進行遍歷,即可求出結果。是的,遍歷可以實現並集、交集、差集等運算,但這不是最優雅的處理

原创 Java_集合操作_asList方法產生的List對象不可改變

例: package deep; import java.util.Arrays; import java.util.List; public class Client { public static void main(S

原创 Java_基礎_參數傳遞

Java中方法的參數傳遞均爲按值傳遞,即使傳遞的是對象或者數組,傳遞過去的也是引用的拷貝。 package com.algorithms; /** * Created by 田爽 on 2015/9/27 9:16. */ publ

原创 Java_基礎_取餘操作符 %

首先我們來看下 The Java® Language Specification 中官方對它的定義: The binary % operator is said to yield the remainder of its operands

原创 Java_基礎_i=i++;

例: package deep; public class PostfixIncrementOperator { public static void main(String[] args) { int i =

原创 Java_語法基礎_定義規範的接口類型

接口,是一種完全抽象的設計,沒有任何實現。接口有以下3個特徵: 1.所有的成員變量都是public、static、final類型。 2.所有的方法都是public、abstract類型。 3.所有的嵌套類型(類或接口)都是publi