Time of Update: 2018-12-05
文章目錄 【引言】【系列化serialVersionUID問題】【靜態變數序列】【父類的序列化與 Transient 關鍵字】【對敏感欄位加密】【序列化儲存規則】 【引言】 將 Java 對象序列化為二進位檔案的 Java 序列化技術是 Java 系列技術中一個較為重要的技術點,在大部分情況下,開發人員只需要瞭解被序列化的類需要實現 Serializable 介面,使用 ObjectInputStream 和
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
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
在Java程式中,效能問題的原因除了核心演算法之外,很大一部分是有程式本身代碼導致,所以對程式細節的最佳化有事可以很好的提升程式的效能。 1、 盡量制定類的final修飾符,因為final修飾的類是不可以派生的,這樣不僅可以防止其他類覆蓋這個類中的關鍵方法,而且如果指定該類為final時,改類中的所有方法都是final類型,Java編譯器會自動內聯(inline)所有的final方法。2、 Switch case 的效率要高於if else模式3、
Time of Update: 2018-12-05
import java.util.concurrent.Callable;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;import java.util.concurrent.Future;import
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
Time of Update: 2018-12-05
目前需要使用ant來執行一個含有main方法的class檔案,並且需要通過命令來行傳兩個參數(start和end)到main方法。<target name="gsp" depends="compile" description="generator structure pictures"> <echo message="----------- Generator structure pictures ------------" /> <property
Time of Update: 2018-12-05
java.lang.string.splitsplit 方法將一個字串分割為子字串,然後將結果作為字串數組返回。stringObj.split([separator,[limit]])stringObj 必選項。要被分解的 String 對象或文字。該對象不會被 split 方法修改。separator 可選項。字串或 Regex 對象,它標識了分隔字串時使用的是一個還是多個字元。如果忽略該選項,返回包含整個字串的單一元素數組。
Time of Update: 2018-12-05
在這兒做個筆記在寫一個項目中候遇到這樣的問題,IDE提示“Finally 塊未正常完成”,並要求加上@SuppressWarnings("finally")提示try{//嘗試對取得的值做字元集轉換 ......}catch (UnsupportedEncodingException e){//轉換失敗時直接用UTF-8輸出 return new String(btTmp);}finally{ return
Time of Update: 2018-12-05
Java SDK 1.4之後,對圖片處理的功能得到了很大的提升。其提供的ImageIO類提供了近乎傻瓜式的操作。現在讓我們看看他們給我們帶來什麼樣的驚喜。讀取圖形並且顯示的核心代碼:public void showPic(){ File f=new File("e:/tt.jpg"); BufferedImage image=null; try { image = ImageIO.read(f); } catch (IOException
Time of Update: 2018-12-05
一、建立結點類:public class Node {public Node leftNode;public Node rightNode;int data;/** * @author hbliu * @param newData */public Node(int newData) {this.data = newData;this.leftNode = null;this.rightNode = null;}}二、建立樹類:package com.test.tree;public
Time of Update: 2018-12-05
java.lang.IllegalStateException: Write attempted after request finished 對於http串連,僅能進行一次讀寫,並且要先寫入完畢才能開啟輸入資料流進行讀操作 int responseCode = conn.getResponseCode(); DataOutputStream dos = conn.openDataOutputStream(
Time of Update: 2018-12-05
JAVA 代碼如下:<% // 得到要轉換的數組---當然這裡也可以是其他類型的數組 List jsList = (List) request.getAttribute("gczbh"); %> JS 代碼如下: <script type="text/javascript"> function initPages() { var codes = new Array(); // 將JAVA中的數群組轉換成JS 的數組
Time of Update: 2018-12-05
/** * get client IP * @param request * @return client IP */ private String getClientIP(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip
Time of Update: 2018-12-05
實現思路:1、使用java.net.URL對象,綁定網路上某一個網頁的地址2、通過java.net.URL對象的openConnection()方法獲得一個HttpConnection對象3、通過HttpConnection對象的getInputStream()方法獲得該網路檔案的輸入資料流對象InputStream4、迴圈讀取流中的每一行資料,並由Pattern對象編譯的Regex區配每一行字元,取得email地址package regex;import
Time of Update: 2018-12-05
語句塊:用{}括起來的部分。語句塊前面用static關鍵字修飾的叫靜態塊。只要JVM載入一個類,那麼就初始化靜態成員,一個項目啟動時需要做的事兒會放在靜態塊中。對象的初始化過程:先初始化父類的靜態成員,再初始化子類的靜態成員,然後是父類的非靜態塊,接著是父類的構造方法,然後是子類的非靜態塊,最後調用子類的構造方法。package com.bluedot.block;public class Child extends Parent { public Child(){
Time of Update: 2018-12-05
最近我在網上瀏覽網頁的時候,無意間看到了一個好東東,就是用java可以免費發簡訊。前提是你要發的手機是開通飛信業務的。而且你還需要下個包,地址:http://download.csdn.net/source/1148854 下面是java代碼:package com.test;import java.io.IOException;import cn.edu.ctgu.ghl.fetion.Contact;import cn.edu.ctgu.ghl.fetion.Fetion;import
Time of Update: 2018-12-05
/** * 對經過escape函數加密的url中的字串進行解密 * @return 解密後的正常字串 * @param src * 參數說明 例如:%u5339%u914D%u8BBE%u5907或者/u5339/u914D/u8BBE/u5907 */ public static String unescape(String src) { StringBuffer tmp = new StringBuffer();
Time of Update: 2018-12-05
有關Java的線程鎖與entry set和wait set的關係,抑或是說這個圖包含了Java線程的奧秘,不懂這個圖或者是沒有見過這個圖的話,只能說明對於Java的線程鎖還是一知半解的。(1)所有期待獲得鎖的線程,在鎖已經被其它線程擁有的時候,這些期待獲得鎖的線程就進入了Object Lock的entry set地區。(2)所有曾經獲得過鎖,但是由於其它必要條件不滿足而需要wait的時候,線程就進入了Object Lock的wait set地區 。(3)在wait
Time of Update: 2018-12-05
論壇上摘抄的一題 class A{ String s = "class : A"; void f() { System.out.println("A.f()"); }}class B extends A{ String s = "class : B"; void f() { System.out.println("B.f()"); }}class TypeV{ static public void main(