Time of Update: 2018-12-05
文章目錄 【引言】【系列化serialVersionUID問題】【靜態變數序列】【父類的序列化與 Transient 關鍵字】【對敏感欄位加密】【序列化儲存規則】 【引言】 將 Java 對象序列化為二進位檔案的 Java 序列化技術是 Java 系列技術中一個較為重要的技術點,在大部分情況下,開發人員只需要瞭解被序列化的類需要實現 Serializable 介面,使用 ObjectInputStream 和
Time of Update: 2018-12-05
文章目錄 一、【引言】二、【synchronized同步】三、【java.util.concurrent.locks下的鎖實現同步】
Time of Update: 2018-12-05
在Java中有四種參考型別,他們是:強引用(Strong Reference),軟引用(Soft Reference),弱引用(Weak Reference) 和 虛引用(Phantom
Time of Update: 2018-12-05
文章目錄 【引言】【解惑】 【引言】經常在迭代集合元素時,會想對集合做修改(add/remove)操作,類似下面這段代碼:for (Iterator<Integer> it = list.iterator(); it.hasNext(); ) { Integer val = it.next(); if (val == 5) { list.remove(val);
Time of Update: 2018-12-05
Java執行.exe檔案, 這裡以Java調用g++編譯器為例講解(我的g++編譯器的和程式都在H:/bin/gcc/bin這個目錄)先來看程式:package wen.hui;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;public class TestExec {public static void main(String[] args)
Time of Update: 2018-12-05
【問題】當一個線程使用String常量作為訊號量,來實現同步會如何?你有用過嗎?package test.mult;/** * @ClassName: Test * @author whwang * @date 2012-1-10 下午02:28:39 * */public class Test { private String mutex = "mutex"; public void f(String flag) {System.out.println(flag + ",
Time of Update: 2018-12-05
package test.inner_class;public interface MyInterface { public void work(); }package test.inner_class;public class Test { public static void main(String[] args) {new Test().f("whang"); } private void f(final String username)
Time of Update: 2018-12-05
我們知道在Java中,可以這樣構建一個對象的數組: class A { int a; int b;} public class Test { public static void main(String[] args) { A[] a = new A[2];//數組中每個元素為A System.out.println(a[0]);//輸出null
Time of Update: 2018-12-05
package com.mySurvey.dao.impl;import org.hibernate.SessionFactory;import org.springframework.orm.hibernate3.support.HibernateDaoSupport;import com.mySurvey.bean.User;import com.mySurvey.dao.UserDAO;public class UserDAOImpl extends
Time of Update: 2018-12-05
8皇后問題描述:是一個古老而著名的問題,是回溯演算法的典型例題。該問題是十九世紀著名的數學家高斯1850年提出:在8X8格的國際象棋上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處於同一行、同一列或同一斜線上,問有多少種擺法。 高斯認為有76種方案。1854年在柏林的象棋雜誌上不同的作者發表了40種不同的解,後來有人用圖論的方法解出92種結果。此處以8皇后進行測試。/** * N皇后問題(回溯法) * * @author yundixiaoduo(4080509) *
Time of Update: 2018-12-05
這裡主要講述在LINUX(Ubuntu 10.04)下通過JNI調用底層.c檔案中的函數以最簡單的“Hello”舉例 第一步:寫一個JniTest.java檔案,內容如下public class JniTest {static{System.loadLibrary("Hello");} public native void output(); public static void main(String[]
Time of Update: 2018-12-05
java.lang.Comparable 介面轉自http://blog.csdn.net/zccst/article/details/5092920 java.lang.Comparable 介面定義的 compareTo() 方法用於提供對其實作類別的對象進行整體排序所需要的比較邏輯。實作類別基於 compareTo() 方法的排序被稱為自然排序。而 compareTo() 方法的排序被稱為它的自然排序。具體的排序原則可由實作類別根據需要而定。使用者在重寫 compareTo() 方法以定製
Time of Update: 2018-12-05
100題目之53題目和70題目在做100題目的時候,全排列的演算法困擾了很久,雖然網上了搜了一些資料,可是並沒有搞懂。今天花了一個下午的時間,從新梳理了一遍,終於弄明白了。全排列的演算法,遞迴分析網上都有:http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1191914.html設一組數p = {r1, r2, r3, ... ,rn}, 全排列為perm(p),pn = p - {rn}。因此perm(p) = r1perm(p1),
Time of Update: 2018-12-05
轉載請註明出處,謝謝!JAVA程式自動下載Google音樂歌詞 近期寫了一個android音樂播放器,但是苦於找不到可以自動下載歌詞的網站。網上搜的那個已經不能用了。這時候想起可以調用百度或者Google的介面來搜尋歌詞,由於Google剛剛推出了Google音樂,於是我就想著去嘗試下。 進入Google音樂的首頁,然後隨便輸了首歌去搜尋,跳轉至歌曲搜尋。發現真的有歌詞,可惜歌詞不是嵌套在網頁裡的,並且開啟歌詞網頁的地址裡包含的是歌詞的id,這可這麼半呢?
Time of Update: 2018-12-05
額,馬上就要面試了,java的底層肯定是需要瞭解的。網上找了找java的底層文章,做個記號。java底層主要是類的載入、串連和初始化。本文主要分為四個方面:(1)java底層概述(2)new和newInstance()方法的區別(3)深入探討java的載入機制(4)一個完整java程式沖java
Time of Update: 2018-12-05
100題目之17題:第17 題:題目:在一個字串中找到第一個只出現一次的字元。如輸入abaccdeff,則輸出b。分析:這道題是2006 年google 的一道筆試題。 時間換空間,類似前面時間CSDN討論的一道華為的面試題:在O(n)時間內,得出一個字串每一個字元出現的次數類似;用到這道題,可以不只是統計只出現一次的;還可以統計多次出現的public class s17 {public static char firstOne(String s){char result = '0';char
Time of Update: 2018-12-05
網上的demo一搜一大堆,但是,基本上都是一知半解(包括我)。為什麼呢?我在嘗試分別在兩個平台加密的時候,竟然發現Android DES 加密和java DES加密的程式不能互連。就是加密的結果不一樣,更不要說Android平台的加密輸入作為java DES的解密輸出了。這樣的話,用戶端和伺服器端就不能進行通訊了。我網上之前也發文章問了不少人,但是回答都不滿意。今天部門的另外一個同事跟我說了一下,才解決了這個不能互連的問題。調用DES密碼編譯演算法包最精要的就是下面兩句話:Cipher
Time of Update: 2018-12-05
class Producer implements Runnable{Q q;public Producer(Q q){this.q = q;}public void run(){int i = 0;while(true){synchronized(q){if(q.bFull)try{q.wait();}catch(Exception e){}if(i == 0){q.name = "zhangsan";try{Thread.sleep(1);}catch(Exception
Time of Update: 2018-12-05
在Java程式中,效能問題的原因除了核心演算法之外,很大一部分是有程式本身代碼導致,所以對程式細節的最佳化有事可以很好的提升程式的效能。 1、 盡量制定類的final修飾符,因為final修飾的類是不可以派生的,這樣不僅可以防止其他類覆蓋這個類中的關鍵方法,而且如果指定該類為final時,改類中的所有方法都是final類型,Java編譯器會自動內聯(inline)所有的final方法。2、 Switch case 的效率要高於if else模式3、
Time of Update: 2018-12-05
import java.util.ArrayList;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Semaphore;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * Java