Time of Update: 2018-12-08
Message Digest Algorithm MD5(中文名為訊息摘要演算法第五版)為電腦安全領域廣泛使用的一種散列函數,是一種比較常用的雜湊演算法。 java中可以用兩種方法實現,我們先說麻煩一點的,代碼: 複製代碼 代碼如下:public class md5_test { //MD5的字串常量 private final static String[] hexDigits = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "
Time of Update: 2018-12-08
做了N年的java開發從沒有自己寫過一個網站,最近亂忙活弄了一個企業家宣傳網站。 跟大家一樣遇到了中文字元集亂碼問題,為了大家能少走一些彎路,所以在此分享一下即簡單又實用的解決方案。 1. POST 資料傳遞 接收頁 複製代碼 代碼如下:<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <% request.setCharacterEncoding("UTF-8"); String
Time of Update: 2018-12-08
繼承類的構建過程是向外擴散的,子類初始化了,父類一定也初始化了複製代碼 代碼如下:class Art{ Art(){ System.out.println("Art"); }}class Drawing extends Art{ Drawing(){ System.out.println("Drawing"); }}public class Cartoon extends Drawing { Cartoon(){ System.out.println("Cartoon"); }
Time of Update: 2018-12-08
規則1(無繼承情況下):對於靜態變數、靜態初始化塊、變數、初始化塊、構造器,它們的初始化順序依次是(靜態變數、靜態初始化塊)>(變數、初始化塊)>構造器證明代碼:複製代碼 代碼如下:public class InitialOrderTest { // 靜態變數 public static String staticField = "靜態變數"; // 變數 public String field = "變數"; // 靜態初始化塊 static {
Time of Update: 2018-12-08
wait(),notify(),notifyAll()不屬於Thread類,而是屬於Object基礎類,也就是說每個對象都有wait(),notify(),notifyAll()的功能.因為每個對象都有鎖,鎖是每個對象的基礎,當然操作鎖的方法也是最基礎了。wait導致當前的線程等待,直到其他線程調用此對象的 notify() 方法或 notifyAll() 方法,或被其他線程中斷。wait只能由持有對像鎖的線程來調用。notify喚醒在此對象監視器上等待的單個線程。如果所有線程都在此對象上等待,
Time of Update: 2018-12-08
首先來看看以下程式將會列印出什麼:複製代碼 代碼如下:class Dog { public static void bark() { System.out.print("woof "); }}class Basenji extends Dog { public static void bark() { }}public class Bark { public static void main(String args[]) { Dog
Time of Update: 2018-12-08
雖然關於Java字串“==”和“equals”的問題是Java學習中的最基礎的一個問題,但是仍然有不少剛剛學習Java的同學搞不清楚裡面的原理,最近和朋友討論到這個問題,所以寫篇文章給大家分享一下我自己的理解。首先讓我們看一個例子:複製代碼 代碼如下: public class TestStringEquals { public static void main(String[] args) { String a = "test";
Time of Update: 2018-12-08
1.垃圾收集演算法的核心思想Java語言建立了垃圾收集機制,用以跟蹤正在使用的對象和發現並回收不再使用(引用)的對象。該機制可以有效防範動態記憶體分配中可能發生的兩個危險:因記憶體垃圾過多而引發的記憶體耗盡,以及不恰當的記憶體釋放所造成的記憶體非法引用。垃圾收集演算法的核心思想是:對虛擬機器可用記憶體空間,即堆空間中的對象進行識別,如果對象正在被引用,那麼稱其為存活對象,反之,如果對象不再被引用,則為垃圾對象,可以回收其佔據的空間,用於再分配。垃圾收集演算法的選擇和垃圾收集系統參數的合理調節直接
Time of Update: 2018-12-08
我們先看下面一個例子:複製代碼 代碼如下: import java.math.BigInteger; public class BigProblem { public static void main(String[ ] args) { BigInteger fiveThousand = new BigInteger("5000"); BigInteger fiftyThousand = new
Time of Update: 2018-12-08
map的三種遍曆方法!集合的一個很重要的操作---遍曆,學習了三種遍曆方法,三種方法各有優缺點~~複製代碼 代碼如下:/* * To change this template, choose Tools | Templates * and open the template in the editor. */package cn.tsp2c.liubao;import java.util.Collection;import java.util.HashMap;import
Time of Update: 2018-12-08
java的比較子有兩類,分別是Comparable介面和Comparator介面。在為對象數組進行排序時,比較子的作用非常明顯,首先來講解Comparable介面。讓需要進行排序的對象實現Comparable介面,重寫其中的compareTo(T o)方法,在其中定義定序,那麼就可以直接調用java.util.Arrays.sort()來排序對象數組,執行個體如下:複製代碼 代碼如下:class Student implements Comparable<Student>{
Time of Update: 2018-12-08
複製代碼 代碼如下:class Parent { // 靜態變數 public static String p_StaticField = "父類--靜態變數"; // 變數(其實這用對象更好能體同這一點,如專門寫一個類的執行個體) //如果這個變數放在初始化塊的後面,是會報錯的,因為你根本沒有被初始化 public String p_Field = "父類--變數"; // 靜態初始化塊 static {
Time of Update: 2018-12-08
首先看這兩類都實現List介面,而List介面一共有三個實作類別,分別是ArrayList、Vector和LinkedList。List用於存放多個元素,能夠維護元素的次序,並且允許元素的重複。3個具體實作類別的相關區別如下:1.ArrayList是最常用的List實作類別,內部是通過數組實現的,它允許對元素進行快速隨機訪問。數組的缺點是每個元素之間不能有間隔,當數組大小不滿足時需要增加儲存能力,就要講已經有數組的資料複製到新的儲存空間中。當從ArrayList的中間位置插入或者刪除元素時,需要
Time of Update: 2018-12-08
原理是使用LinkedHashMap來實現,當緩衝超過大小時,將會刪除最老的一個元組。實現代碼如下所示複製代碼 代碼如下:import java.util.LinkedHashMap;import java.util.Map;public class LRUCache { public static class CachedData { private Object data = null; private long time = 0; private boolean
Time of Update: 2018-12-08
1、String類、StringBuilder類、StringBuffer類String對象是不可變的,重載了運算子+,於是String
Time of Update: 2018-12-08
代碼如下所示:複製代碼 代碼如下:import java.io.IOException;import java.io.InputStream;import java.net.URL;import javax.servlet.ServletConfig;import javax.servlet.ServletException;import javax.servlet.ServletOutputStream;import javax.servlet.http.HttpServlet;import
Time of Update: 2018-12-08
一提到存取控制符protected,即使是初學者一般都會很自信的認為自己在這方面的理解沒有問題。那好,我們提一個問題出來看看.....請看下面兩端代碼,其中包B中的貓和鼠都繼承了動物類。複製代碼 代碼如下://代碼1:包A中有一個動物類 package testa; public class Animal { protected void crowl(String c){ System.out.println(c); } }
Time of Update: 2018-12-08
複製代碼 代碼如下:import java.io.IOException;import javax.xml.parsers.*;import javax.xml.xpath.*;import org.w3c.dom.*;import org.xml.sax.SAXException;public class XpathTest { public static void main(String[] args) throws ParserConfigurationException,
Time of Update: 2018-12-08
現在再回過頭理解,結合自己的體會, 選用最佳的方式描述這些演算法,以方便理解它們的工作原理和程式設計技巧。本文適合做java面試準備的材料閱讀。先附上一個測試報告:Array length: 20000bubbleSort : 766 msbubbleSortAdvanced : 662 msbubbleSortAdvanced2 : 647 msselectSort : 252 msinsertSort : 218 msinsertSortAdvanced : 127
Time of Update: 2018-12-08
廢話不多說,直接上碼.......複製代碼 代碼如下:package com.clouddevelop.cloudbox;import android.graphics.Bitmap;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.FontMetrics;public class TextManager{