Time of Update: 2018-12-05
類的熱替換是Java線上升級系統設計中的基礎技術,從文中給出的執行個體來看,構建線上升級系統不僅僅是一個技術問題,還牽扯到很多管理方面的因素,比如:如何管理、部署系統中的可線上升級部分和不可線上升級部分以降低系統的管理、維護成本等。對於許多關鍵性業務或者龐大的Java系統來說,如果必須暫停系統服務才能進行系統升級,既會大大影響到系統的可用性,同時也增加了系統的管理和維護成本。因此,如果能夠方便地在不停止系統業務的情況下進行系統升級,則可以很好地解決上述問題。JavaClassLoader技術剖析
Time of Update: 2018-12-05
實現Java類的熱替換現在來介紹一下我們的實驗方法,為了簡單起見,我們的包為預設包,沒有層次,並且省去了所有錯誤處理。要替換的類為Foo,實現很簡單,僅包含一個方法sayHello:public class Foo{ public void sayHello() { System.out.println("hello world! (version one)"); } }
Time of Update: 2018-12-05
首先這個問題也困擾了我挺久,慢慢的我就摸索出一條路子,其實也挺簡單的。 廢話不多說,看我如何降服這妖怪... 首先用到jquery的一個外掛程式,Jcrop。用這個工具截取你需要的圖片大小。 然後要提交這個被的大小,也就是座標了。 比如這樣的代碼: <form action="/browsing/privacy.do?method=dos" method="post" name="formsa"> <input
Time of Update: 2018-12-05
編寫自訂的ClassLoader為了能夠完全掌控類的載入過程,我們的定製類載入器需要直接從ClassLoader繼承。首先我們來介紹一下ClassLoader類中和熱替換有關的的一些重要方法。◆findLoadedClass:每個類載入器都維護有自己的一份已載入類名字空間,其中不能出現兩個同名的類。凡是通過該類載入器載入的類,無論是直接的還是間接的,都儲存在自己的名字空間中,該方法就是在該名字空間中尋找指定的類是否已存在,如果存在就返回給類的引用,否則就返回null。這裡的直接是指,存在於該類載
Time of Update: 2018-12-05
package info.gnuhpc; /** * @date 2010-1-22 * @bugs 不支援多音文書處理 */ public class PinyinConv { // 簡體中文的編碼範圍從B0A1(45217)一直到F7FE(63486) private static int BEGIN = 45217; private static int END = 63486; //
Time of Update: 2018-12-05
快速排序作為一種高效的排序演算法被廣泛應用,SUN的JDK中的Arrays.sort 方法用的就是快排。快排採用了經典的分治思想(divide and conquer): Divide:選取一個基元X(一般選取數組第一個元素),通過某種分區操作(partitioning)將數組劃分為兩個部分:左半部分小於等於X,右半部分大於等於X。Conquer: 左右兩個子數組遞迴地調用Divide過程。Combine:快排作為就地排序演算法(in place
Time of Update: 2018-12-05
1. 格式Java中的按照如下規則聲明參數個數可變的函數: methodName([argumentList],dataType ...
Time of Update: 2018-12-05
看如下程式 1 public static void main(String[] args) { 2 String a = new String("abc"); 3 String b = new String("abc"); 4 System.out.println(a == b); 5 6 String c = "abc"; 7 String d = "abc"; 8 System.out.println(c
Time of Update: 2018-12-05
看如下程式: 1 class A { 2 static{ 3 System.out.println("A static"); 4 } 5 6 { 7 System.out.println("A not static"); 8 } 9 10 public A(){11 System.out.println("A new");12 }13 }14 15 class B extends A{16
Time of Update: 2018-12-05
剛才看到新聞頻道轉截的一篇文章:阮一峰:字串匹配的KMP演算法,圖文並茂通俗易懂,就用java實現了一下對於我這個只會排序演算法的人來說,也算是一個比較難的任務了。上次寫的邏輯有問題,這次不知道有沒有bug。 1 /** 2 * Knuth-Morris-Pratt 演算法 3 * 4 * @author yinqi 5 * @date 2013-5-5 - 上午11:11:56 6 */ 7 public class StringSearchKMP { 8 9 /**10
Time of Update: 2018-12-05
Java新手必看教程是什麼?當然是小編帶來的Java入門需掌握的30個基本概念啦,掌握了這些概念對於學習Java大大有利,正在學習Java編程的同學們快來看看今日更新吧。 1.OOP中唯一關係的是對象的介面是什麼,就像電腦的銷售商她不管電源內部結構 是怎樣的,他只關係能否給你提供電就行了,也就是只要知道can or not而不是how and why。所有的程式是由一定的屬性和行為對象組成的,不同的對象的訪問通過函數調用來完成,對象間所有的交流都是通過方法調用,通過對封裝對象資料,很大
Time of Update: 2018-12-05
很多時候的實際需求都不允許我們只是把結果輸出到console就可以了,那麼怎麼把程式運行結果輸出到指定檔案,以及怎麼能同時讓其輸出到指定檔案和console呢?通過網上搜尋過來人的文章,找到了如下解決方案,感謝前人的分享~1.首先我們需要自己編寫一個類,並且繼承OutputStream類,重寫其write(int b)方法。這個類主要實現建立兩條輸出資料流。 1 import java.io.IOException; 2 import java.io.OutputStream; 3 4
Time of Update: 2018-12-05
說起單元測試,剛畢業或者沒畢業的人可能大多停留在課本講述的定義階段,至於具體是怎麼定義的,估計也不會有太多人記得。我們的教育總是這樣讓人“欣慰”。那麼什麼是單元測試呢?具體科學的定義咱就不去關心了,其實每個寫代碼的人都在時刻進行著單元測試,除非你從來不驗證自己寫的代碼能否達到預期目的,而是直接寫完就完事兒了,連run一下都不進行。
Time of Update: 2018-12-05
最近一直在研究properties設定檔,突然碰到了一個java的類,名為Properties。該類繼承自HashTable,提供的方法很像Map的實作類別HashMap。一時間激發了我對此類的關注和研究,通過找資料和自行調試,發現該類能夠在程式運行初期給我們提供協助。通過解析前置檔案(含程式需要的某些參數),獲得程式運行所需的配置資訊,存入Properties類中,供程式調用。Properties類的作用就像其名字所體現的一樣,主要是解決屬性問題的,說白了就是此類和設定檔的關係十分曖昧。現將P
Time of Update: 2018-12-05
在大學壘代碼時,遇到程式錯誤,輸出不是預計的情況時,你是怎麼解決的呢?我的解決辦法就是到處System.out.pringln();,打出當時的變數值,一點一點找哪裡出錯了。結果有的時候就忘了到底在哪裡添加了用於找錯的輸出語句,然後就去不掉多餘的輸出了,然後就各種抓狂了。以及等等很多情況吧,不知道你們遇到過嗎?步入職場後,逐漸接觸到了日誌這個概念,雖然之前也聽說過,但卻不瞭解其真正用途。又一次在心裡痛罵了大學的教育之後,我開始自學目前公司在用的日誌工具——logback。 日誌記錄了程式的運行狀
Time of Update: 2018-12-05
首先來複習一下幾個重要知識點,然後接著進行一些介紹。在上一篇文章中,我曾經貼過下面這張圖片:在Which method stubs would you like to create?這裡,現在結合4個標註的含義來說明一下:@BeforeClass 標註的方法會在類載入的時候執行一次,且僅此一次,該方法必須是public和static的@AfterClass 標註的方法會在類銷毀的時候執行一次,且僅此一次,該方法必須是public和static的@Before
Time of Update: 2018-12-05
步入職場,才首次對“日誌”這個東西有了一個比較全面的認識。不像學生時代,隨處的print語句,學校總是教不了什麼有用的東西。最近從事的工作,恰好是將工程中原有的log4j日誌組件轉換為logback。至於為什麼要轉換,本來是因為logback的效能要優於log4j,然而最新版本的log4j的降臨,似乎又把這段差距彌補了。總之分配的任務就要用心做,並且還能從中學好很多有用的東西。下面,我就介紹一下log4j轉換logback的方法,可能遇到的問題及解決方案。其中涉及到的jar包會在最後給出下載連結
Time of Update: 2018-12-05
1,冒泡法: public class BubbleSortImpl1 {public static void BubbleSort(int A[]) { int n = A.length; for(int i=0;i<n;i++){ for(int j=0;j<n-i-1;j++){ if(A[j]>A[j+1]) { int temp=A[j]; A[j]=A[j+1];
Time of Update: 2018-12-05
題目描述:給你兩個n進位數a和b。以n進位的形式輸出a % b。解題報告: String st = Integer.toString(num, base); // 把num當做10進位的數轉成base進位的st(base <= 35).int num = Integer.parseInt(st, base); // 把st當做base進位,轉成10進位的int(parseInt有兩個參數,第一個為要轉的字串,第二個為說明是什麼進位). BigInter m = new
Time of Update: 2018-12-05
這裡指的java速成,只限於java文法,包括輸入輸出,運算處理,字串和高精度的處理,進位之間的轉換等,能解決OJ上的一些高精度題目。1. 輸入:格式為:Scanner cin = new Scanner(new BufferedInputStream(System.in));常式:import java.io.*;importjava.math.*;import java.util.*;import java.text.*;public class Main{