Time of Update: 2017-01-19
概述最近在看《ThinKing In Java》,看到多線程章節時覺得有一些概念比較容易混淆有必要總結一下,雖然都不是新的東西,不過還是蠻重要,很基本的,在開發或閱讀源碼中經常會遇到,在這裡就簡單的做個總結。1.volatilevolatile主要是用來在多線程中同步變數。 在一般情況下,為了提升效能,每個線程在運行時都會將主記憶體中的變數儲存一份在自己的記憶體中作為變數副本,但是這樣就很容易出現多個線程中儲存的副本變數不一致,或與主記憶體的中的變數值不一致的情況。
Time of Update: 2017-01-19
這其實是去年校招時我遇到的一道阿里巴巴的筆試題(承認有點久遠了-。-),嗯,如果我沒記錯的話,當時是作為Java方向的一道選做大題。當然題意沒有這麼直白,題目只要求你寫出程式運行後所有System.out.println的輸出結果,其中程式是題目給的,而各個System.out.println的執行順序不同會導致最後程式輸出的結果也不同。具體的題目我肯定記不清,不過我們可以換個直接的問法,如果類A和類B中有靜態變數,靜態語句塊,非靜態變數,非靜態語句塊,建構函式,靜態方法,非靜態方法,同時類A繼
Time of Update: 2017-01-19
package snake;import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import com.lowagie.text.Document;import com.lowagie.text.DocumentException;import com.lowagie.text.
Time of Update: 2017-01-19
使用雙向鏈表實現貪吃蛇程式1.鏈表節點定義:package snake;public class SnakeNode {private int x;private int y;private SnakeNode next;private SnakeNode ahead;public SnakeNode() {}public SnakeNode(int x, int y) {super();this.x = x;this.y = y;}public int getX() {return
Time of Update: 2017-01-19
代碼很簡單,就不多廢話了複製代碼 代碼如下://讀取日曆事件 public static void getCalendarInfo(Activity activity,String tag){ String[] projection = new String[]{CalendarContract.Events._ID,CalendarContract.Events.TITLE}
Time of Update: 2017-01-19
本文詳細地介紹了Java記憶體管理的原理,以及記憶體泄露產生的原因,同時提供了一些列解決Java記憶體泄露的方案,希望對各位Java開發人員有所協助。Java記憶體管理機制在C++ 語言中,如果需要動態分配一塊記憶體,程式員需要負責這塊記憶體的整個生命週期。從申請分配、到使用、再到最後的釋放。這樣的過程非常靈活,但是卻十分繁瑣,程式員很容易由於疏忽而忘記釋放記憶體,從而導致記憶體的泄露。 Java 語言對記憶體管理做了自己的最佳化,這就是記憶體回收機制。 Java
Time of Update: 2017-01-19
擷取網站的<meta name="keywords" content="" />和<meta name="description" content="“>關鍵字和描述內容實現HTML解析器jsoup下載jsoup的lib地址:http://jsoup.org/download複製代碼 代碼如下:package cn.evan.util;import java.io.IOException;import org.jsoup.Jsoup;import
Time of Update: 2017-01-19
本文執行個體講述了java實現列表、集合與數組之間轉化的方法。分享給大家供大家參考。具體實現方法如下:複製代碼 代碼如下:package test; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; import java.util.List; import java.util.Set; public class
Time of Update: 2017-01-19
本文執行個體講述了java對數組進行排序的方法。分享給大家供大家參考。具體如下:public class Test1 { public static void showArray(int[] array) { for (int n = 0; n < array.length; n++) { System.out.print(array[n]); System.out.print(" "); } System.out.println();
Time of Update: 2017-01-19
本文執行個體講述了java計算百分比值的方法。分享給大家供大家參考。具體實現方法如下:public class Test1 { public static String myPercent(int y, int z) { String baifenbi = "";// 接受百分比的值 double baiy = y * 1.0; double baiz = z * 1.0; double fen = baiy / baiz; // NumberFormat
Time of Update: 2017-01-19
編寫一個程式 將a.txt檔案中的單詞與b.txt檔案中的單詞交替合并到c.txt檔案中 a.txt檔案中的單詞用斷行符號符分隔,b.txt檔案中用斷行符號或空格進行分隔。複製代碼 代碼如下:package javase.arithmetic;import com.google.common.base.Charsets;import com.google.common.base.Joiner;import com.google.common.base.Splitter;import
Time of Update: 2017-01-19
java實現計算兩經緯度點之間的距離,直接上代碼,具體解釋請參考注釋複製代碼 代碼如下:package com.jttx.poi.utils;import com.jttx.poi.entity.Point;/** * Created by louis on 2014/9/2. */public class GeoUtils { /** *
Time of Update: 2017-01-19
本文執行個體講述了JAVA操作XML的方法。分享給大家供大家參考。具體如下:java代碼如下:複製代碼 代碼如下:import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import org.w3c.dom.*;import org.xml.sax.SAXException;import
Time of Update: 2017-01-19
instanceof關鍵字用於判斷一個參考型別變數所指向的對象是否是一個類(或介面、抽象類別、父類)的執行個體。instanceof是Java的一個二元操作符,和==,>,<是同一類東東。由於它是由字母組成的,所以也是Java的保留關鍵字。它的作用是測試它左邊的對象是否是它右邊的類的執行個體,返回boolean類型的資料。舉個例子: String s = "I AM an Object!"; boolean isObject = s instanceof
Time of Update: 2017-01-19
序言CallBack是回調的意思,熟悉Windows編程的人對"回呼函數"這四個字一定不會陌生,但是Java程式員對它可能就不太瞭解了。"回呼函數"或者"回調方法"是軟體設計與開發中一個非常重要的概念,掌握"回呼函數"的思想對程式員來說(不管用哪種語言)是非常必要的。最近學習java,接觸到了回調機制(CallBack)。初識時感覺比較混亂,而且在網上搜尋到的相關的講解,要麼一言帶過,要麼說的比較單純的像是給CallBack做了一個定義。當然了,我在理解了回調之後,再去看網上的各種講解,確實沒什
Time of Update: 2017-01-19
本文為大家分享了Java版仿QQ驗證碼風格圖片驗證碼,具體內容如下 功能包括:自訂圖片尺寸和字元長度,隨機背景顏色和字元顏色,隨機字元位移角度,字元平滑邊緣,幹擾線,噪點,背景扭曲。本來想做字元扭曲的,不知道怎的先產生文字再扭曲就報錯了,先就這樣吧,希望有高手能協助修正一下。需要說明的是之所以有幾分像QQ的驗證碼感覺是因為這個Algerian字型,如果系統沒有的話需要自行安裝,百度搜字型名能下載到,丟系統Fonts檔案夾就行。效果圖:package hh.com.util;
Time of Update: 2017-01-19
一. 演算法描述 選擇排序:比如在一個長度為N的無序數組中,在第一趟遍曆N個資料,找出其中最小的數值與第一個元素交換,第二趟遍曆剩下的N-1個資料,找出其中最小的數值與第二個元素交換......第N-1趟遍曆剩下的2個資料,找出其中最小的數值與第N-1個元素交換,至此選擇排序完成。以下面5個無序的資料為例:56 12 80 91 20(文中僅細化了第一趟的選擇過程)第1趟:12 56 80 91 20第2趟:12 20 80 91 56第3趟:12 20 56
Time of Update: 2017-01-19
由於要做一個新項目,所以打算做一個簡單的圖片驗證碼。先說說思路吧:在服務端,從一個檔案夾裡面找出8張圖片,再把8張圖片合并成一張大圖,在8個小圖裡面隨機產生一個要使用者驗證的圖片分類,如小狗、啤酒等。在前端,訪問這個頁面時,把圖片載入上去,使用者在圖片上選擇提示所需要的圖片,當使用者點登陸時,根據使用者選擇的所有座標判斷所選的圖片是不是實際上的驗證圖片。先放兩張效果圖:為了讓檔案尋找比較簡單,在圖片檔案結構上可以這樣:這樣方便產生使用者要選擇的Key圖片,和取出8張小圖合并成大圖。上代碼:這是選
Time of Update: 2017-01-19
棧和隊列:一般是作為程式員的工具,用於輔助構思演算法,生命週期較短,運行時才被建立;訪問受限,在特定時刻,只有一個資料可被讀取或刪除;是一種抽象的結構,內部的實現機制,對使用者不可見,比如用數組、鏈表來實現棧。類比棧結構同時,只允許一個資料被訪問,後進先出對於入棧和出棧的時間複雜度都為O(1),即不依賴棧內資料項目的個數,操作比較快例,使用數組作為棧的儲存結構public class StackS<T> { private int max; private T[] ary;
Time of Update: 2017-01-19
方法的重載是指一個類中可以定義有相同的名字,但參數不同的多個方法,調用時,會根據不用的參數表選擇對應的方法比如public class Test { void max(int a,int b) { System.out.println(a>b ? a:b); } void max(double a,double b) { System.out.println(a>b ? a:b); } public static void main(