Time of Update: 2017-01-19
Java Lambda 運算式是 Java 8 引入的一個新的功能,可以說是類比函數式編程的一個文法糖,類似於 Javascript 中的閉包,但又有些不同,主要目的是提供一個函數化的文法來簡化我們的編碼。Lambda 基本文法Lambda 的基本結構為 (arguments) -> body,有如下幾種情況: 參數類型可推導時,不需要指定類型,如 (a) -> System.out.println(a) 當只有一個參數且類型可推導時,不強制寫 (), 如 a ->
Time of Update: 2017-01-19
(一) collection和collections這兩者均位於java.util包下,不同的是:collection是一個集合介面,有ListSet等常見的子介面,是集合架構圖的第一個節點,,提供了對集合對象進行基本操作的一系列方法。常見的方法有:boolean add(E e) 往容器中添加元素;int size() 返回collection的元素數;boolean isEmpty() 判斷此容器是否為空白; boolean contains(Object o)
Time of Update: 2017-01-19
1). Iterator是迭代器類,而Iterable是為了只要實現該介面就可以使用foreach,進行迭代.2). Iterable中封裝了Iterator介面,只要實現了Iterable介面的類,就可以使用Iterator迭代器了。3). 集合Collection、List、Set都是Iterable的實作類別,所以他們及其他們的子類都可以使用foreach進行迭代。4).
Time of Update: 2017-01-19
在jdk文檔中對RandomAccess介面的定義如下: public interface RandomAccess下面是jdk的註解翻譯List 實現所使用的標記介面,用來表明其支援快速(通常是固定時間)隨機訪問。此介面的主要目的是允許一般的演算法更改其行為,從而在將其應用到隨機或連續訪問列表時能提供良好的效能。將操作隨機訪問列表的最佳演算法(如 ArrayList )應用到連續訪問列表(如 LinkedList
Time of Update: 2017-01-19
1. JNI簡介JNI是Java Native Interface的英文縮寫,意為Java本地介面。問題來源:由於Java編寫底層的應用較難實現,在一些即時性要求非常高的部分Java較難勝任(即時性要求高的地方目前還未涉及,即時性這類話題有待考究)。解決辦法:Java使用JNI可以調用現有的本地庫(C/C++開發任何和系統相關的程式和類庫),極大地靈活Java的開發。2. JNI快速學習教程2.1
Time of Update: 2017-01-19
java異常和錯誤類總結最近由於考試和以前的面試經常會遇到java當中異常類的繼承層次的問題,弄得非常頭大,因為java的異常實在是有點多,很難記下來,今天正好查了一些資料整理下來,希望對自己和大家有點協助。最開始的時候習慣用筆記本(手寫的紙質的本子)記筆記,後來發現查閱的時候不是很方便,而且速度比較慢。後來改用notepad開始記,感覺效果挺棒,簡單易用,沒有花哨的東西。但是也有它的缺點,比如版式的整理,不能加入一些圖片(往往圖片特別是一些大綱是非常好的記憶學習方法)等等,於是嘗試用markd
Time of Update: 2017-01-19
今天公司有個需求,需要做一些指定網站查詢後的資料的抓取,於是花了點時間寫了個demo供示範使用。思想很簡單:就是通過Java訪問的連結,然後拿到html字串,然後就是解析連結等需要的資料。技術上使用Jsoup方便頁面的解析,當然Jsoup很方便,也很簡單,一行代碼就能知道怎麼用了:Document doc = Jsoup.connect("http://www.oschina.net/") .data("query", "Java") // 請求參數 .userAgent("I ' m
Time of Update: 2017-01-19
java中的異常涉及到父子類的問題,可以歸納為一句話:子類的建構函式拋出的異常必須包含父類的異常,子類的方法可以選擇拋出“範圍小於等於”父類的異常或不拋出異常。1. 為什麼建構函式必須拋出包含父類的異常?在《thingking in
Time of Update: 2017-01-19
我當初學java異常處理的時候,對於父子異常的處理,我記得幾句話“子類方法只能拋出父類方法所拋出的異常或者是其子異常,子類構造器必須要拋出父類構造器的異常或者其父異常”。那個時候還不知道子類方法為什麼要這樣子拋出異常,後來通過學習《Thinking in Java》,我才明白其中的道理,現在我再來溫習一下。一、子類方法只能拋出父類方法的異常或者是其子異常對於這種限制,主要是因為子類在做向上轉型的時候,不能正確地捕獲異常package thinkinginjava;public abstract
Time of Update: 2017-01-19
java中遍曆MAP的幾種方法 Map<String,String> map=new HashMap<String,String>(); map.put("username", "qq"); map.put("passWord", "123"); map.put("userID", "1"); map.put("email", "qq@qq.com"); Map<String,String> map=new
Time of Update: 2017-01-19
一維數組的聲明方式:type var[]; 或type[] var;聲明數組時不能指定其長度(數組中元素的個數),Java中使用關鍵字new建立數組對象,格式為:數組名 = new 數組元素的類型 [數組元素的個數]執行個體:TestNew.java:程式碼:public class TestNew { public static void main(String args[]) { int[] s ; int i ; s = new int[5] ;
Time of Update: 2017-01-19
HashMap的工作原理是近年來常見的Java面試題。幾乎每個Java程式員都知道HashMap,都知道哪裡要用HashMap,知道Hashtable和HashMap之間的區別,那麼為何這道面試題如此特殊呢?是因為這道題考察的深度很深。這題經常出現在進階或中進階面試中。投資銀行更喜歡問這個問題,甚至會要求你實現HashMap來考察你的編程能力。ConcurrentHashMap和其它同步集合的引入讓這道題變得更加複雜。讓我們開始探索的旅程吧!先來些簡單的問題“你用過HashMap嗎?”
Time of Update: 2017-01-19
由於介面使用的oracle欄位長度為固定位元組數,然後傳進來的字串估計比資料庫欄位的總位元組數要大,那麼截取小於資料庫位元組數的字串。自己參考網上的例子,整了個遞迴調用就可以了,因為截取的字元位元組長度必須小與資料庫的位元組長度,即如果最後一個字元為漢字,那麼只能去掉往前截取。/** * 判斷傳進來的字串,是否 * 大於指定的位元組,如果大於遞迴調用 * 直到小於指定位元組數 ,一定要指定字元編碼,因為各個系統字元編碼都不一樣,位元組數也不一樣 * @param s
Time of Update: 2017-01-19
本文執行個體為大家分享了java指紋識別和圖片識別原始碼,供大家參考,具體內容如下主類: import java.awt.image.BufferedImage;import java.util.ArrayList;import java.util.List;public class SimilarImageSearch { /** * @param args */ public static void main(String[] args) {
Time of Update: 2017-01-19
Java中的字串常量池Java中字串對象建立有兩種形式,一種為字面量形式,如String str = "droid";,另一種就是使用new這種標準的構造對象的方法,如String str = new
Time of Update: 2017-01-19
Socket,又稱為通訊端,Socket是電腦網路通訊的基本的技術之一。如今大多數基於網路的軟體,如瀏覽器,即時通訊工具甚至是P2P下載都是基於Socket實現的。本文會介紹一下基於TCP/IP的Socket編程,並且如何寫一個用戶端/伺服器程式。餐前甜點Unix的輸入輸出(IO)系統遵循Open-Read-Write-Close這樣的操作範本。當一個使用者進程進行IO操作之前,它需要調用Open來指定並擷取待操作檔案或裝置讀取或寫入的許可權。一旦IO操作對象被開啟,那麼這個使用者進程可以對這個
Time of Update: 2017-01-19
本文主要接著前面多線程的兩篇文章總結Java多線程中的安全執行緒問題。一.一個典型的Java安全執行緒例子public class ThreadTest { public static void main(String[] args) { Account account = new Account("123456", 1000); DrawMoneyRunnable drawMoneyRunnable = new DrawMoneyRunnable(account, 700);
Time of Update: 2017-01-19
本文承接上一篇文章《Java多線程執行個體詳解(一)》。四.Java多線程的阻塞狀態與線程式控制制上文已經提到Java阻塞的幾種具體類型。下面分別看下引起Java線程阻塞的主要方法。1.join()join —— 讓一個線程等待另一個線程完成才繼續執行。如A線程線程執行體中調用B線程的join()方法,則A線程被阻塞,知道B線程執行完為止,A才能得以繼續執行。public class ThreadTest { public static void main(String[] args) {
Time of Update: 2017-01-19
Java多線程(一)多線程作為Java中很重要的一個知識點,在此還是有必要總結一下的。一.線程的生命週期及五種基本狀態關於Java中線程的生命週期,首先看一下下面這張較為經典的圖:上圖中基本上囊括了Java中多線程各重要知識點。掌握了上圖中的各知識點,Java中的多線程也就基本上掌握了。主要包括:Java線程具有五中基本狀態建立狀態(New):當線程對象對建立後,即進入了建立狀態,如:Thread t = new MyThread();就緒狀態(Runnable):當調用線程對象的start()
Time of Update: 2017-01-19
最近想自動發帖回帖,拿某論壇實驗了一下,發現可行,不過後續沒有再使用,以免影響論壇正常運行。1、文章連結的格式為http://bbs.***.***.**/forum.php?mod=viewthread&tid=774210最後面774210數字變化, 就可以得到不同的文章2、防止文章發表會又被刪了的情況, 進行判斷文章是否存在3、遞增後面的 id 數字, 對每個連結做回帖的 POST 請求重痛點回帖需要使用者登入資訊一種是利用Cookie另一種是進行類比登入本文採用前者判斷 url