Time of Update: 2018-07-25
在網路上搜了下快速計算文本行數的,基本上都是用如下方法 long fileLength = File.length();LineNumberReader.skip(fileLength);LineNumberReader.getLineNumber
Time of Update: 2018-07-25
很早就知道爬蟲的原理,但是一直沒有去實現過,今天寫起來還真遇到很多困難,尤其是多線程同步的問題。還是自己對多線程不熟,沒有大量實踐過的原因。 先上我做的結果吧: 開始爬蟲.........................................當前有1個線程在等待當前有2個線程在等待當前有3個線程在等待當前有4個線程在等待當前有5個線程在等待....................
Time of Update: 2018-07-25
Log4j 是事實上的 Java 標準日誌工具。會不會用 Log4j 在一定程度上可以說是衡量一個開發人員是否是一位合格的 Java 程式員的標準。如果你是一名 Java 程式員,如果你還不會用 Log4j,那你真的很有必要讀一下這篇文章了。很多朋友反映想寫程式日誌,但是卻不知道怎麼把日誌寫到記錄檔裡,而且 Java 這方面的資料似乎不多。如《 如何寫log4j.xml日誌設定檔》 所述。本文詳細介紹了如何在項目中使用 Log4j 的步驟,並附加了一個例子性質的代碼。
Time of Update: 2018-07-25
在Java語言中,判斷一個記憶體空間是否符合垃圾回的標準有兩個: 第一:給對象賦予了空值null,以後再沒有被使用過; 第二:給對象賦予了新值,重新分配了記憶體空間。 一般來講,記憶體流失主要有兩種情況: 一是在堆中申請了空間沒有被釋放; 二是對象已不再被使用,但還仍然在記憶體中保留著。 記憶體回收機制的引入可以有效地解決第一種情況;而對於第二種情況,記憶體回收機制則無法保證不再使用的對象會被釋放。因此Java語言中的記憶體流失主要指的第二種情況。
Time of Update: 2018-07-25
異常 第57條:只針對異常的情況才使用異常 異常應該只用於異常的情況下:它們永遠不應該用於正常的控制流程 設計良好的API不應該強迫它的用戶端為了正常的控制流程而使用異常 第58條:對可恢複的情況使用受檢異常,對編程錯誤使用運行時異常 Java程式設計語言提供了三種可拋出結構:受檢的異常、運行時異常和錯誤
Time of Update: 2018-07-25
轉自:http://blog.csdn.net/yanfeilin/article/details/1957313 //這部分好理解,調用特定目錄下的jar包 javac -cp d:/javatest/dom4j.jar Dom4jDemo.java //這部分必須注意,d:/javatest 是Dom4jDemo.class所在的目錄,運行時;d:/javatest 必須包括 D:/javatest>java -classpath
Time of Update: 2018-07-25
類的static字句在類第一次被載入時執行。 public class TestClass {/** * @param args */public static void main(String[] args) throws Exception {new Test1();new Test1();Class.forName("lmiky.test.clazz.Test1");new Test2();new Test2();new Test3();new
Time of Update: 2018-07-25
為了深入瞭解Java的ClassLoader機制,我們先來做以下實驗: package java.lang;public class Test { public static void main(String[] args) { char[] c = "1234567890".toCharArray(); &
Time of Update: 2018-07-25
Java把記憶體劃分成兩種:一種是棧記憶體,一種是堆記憶體。 在函數中定義的一些基本類型的變數和對象的引用變數都在函數的棧記憶體中分配。當在一段代碼塊定義一個變數時,Java就在棧中為這個變數分配記憶體空間,當超過變數的範圍後,Java會自動釋放掉為該變數所分配的記憶體空間,該記憶體空間可以立即被另作他用。
Time of Update: 2018-07-25
來看一個排列的例子,它所做的工作是將輸入的一個字串中的所有元素進行排序並輸出,例如:你給出的參數是"abc" 則程式會輸出:abc acb bac bca cab cba 這是一個典型的可用遞迴演算法來實現的例子,我們來看一下利用遞迴的2種不同解法。 1.典型遞迴元素交換的演算法 (1)演算法的出口在於:low=high也就是現在給出的排列元素只有一個時。 (2)演算法的逼近過程:先確定排列的第一位元素,也就是迴圈中i所代表的元素。
Time of Update: 2018-07-25
按照網上一篇文章的指南去測試FCKeditor,發覺 FCKeditor_2.2.rar包裡的/FCKeditor_2.2/FCKeditor/editor/filemanager裡沒有jsp的檔案夾,感覺奇怪。以為是開發人員忘記打包在裡面了(哈哈,可笑),於是再下載舊版本的來看,還是沒有,鬱悶。。。
Time of Update: 2018-07-25
已應用於實際項目:1.thrift對象與dto之間的互轉 2.pojo與dto之間的互轉
Time of Update: 2018-07-25
java編程要實現對word的操作沒有vb那種程式設計語言來得容易,得藉助一些開源組件,其中就包括jacob、poi等, 而poi應用得最為廣泛,對word2003和2007的讀和寫word操作都十分方便。它是Apache組織的一個項目,早在2001年就已經發布了第 一個版本,可以說是apache組織的一個老牌項目,到現在已經走過了10年光輝曆程,目前最新版本是3.8的beta版本。下面就以該版本來示範如何實 現對word進行讀取和改寫值操作。
Time of Update: 2018-07-25
Java Calendar 日曆類的時間操作,這也許是 Java 環境下建立和管理日曆及操作時間最簡單的一個方案了,示範代碼也很簡單。 示範了擷取時間,日期時間的累加和累減,以及日期時間的比較。 原文地址:blog.csdn.net/joyous/article/details/9630893 注意事項: Calendar 的 month 從 0 開始,也就是全年 12 個月由 0 ~ 11 進行表示。 而 Calendar.DAY_OF_WEEK 定義值如下,每周從
Time of Update: 2018-07-25
[java] view plain copy print ? import java.security.*; public class MD5 {
Time of Update: 2018-07-25
package com.ecode.li.date; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.Calendar;&n
Time of Update: 2018-07-25
【前言】看了侯捷大師的文檔,果然很有收穫,嘿嘿(MT總是這樣笑。。。。) package test; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import test2.TestClass; /* * 通過反射調用TestClass的建構函式和一般函數 */ public
Time of Update: 2018-07-25
java記憶體地區與記憶體溢出異常 方法區 Method Area 虛擬機器棧 VM stack 本地方法棧 Native method stack 堆 Heap 程式計數器 PC 方法區和堆是所有線程共用的。 每條線程都有一個獨立的程式計數器,各現成PC互不影響,隔離儲存區 (Isolated Storage),線程私人記憶體 如果線程正在執行的事一個java方法,pc記錄的是正在執行的虛擬機器位元組碼指令地址;如果執行的是Native
Time of Update: 2018-07-25
使用JAVA的序列化打造自己的“對象資料庫” 眾所周知,JAVA有一個強大的功能——序列化,任何一個類只要實現了Serializable介面(這個介面只是一個空介面),那麼這個類的執行個體對象就能被儲存起來而且還可以輸出到磁碟上個一個檔案,同時也可以從流中恢複成儲存前的對象狀態。關於序列化最重要的一點是,當對象被序列化時,引用到的所有其他對象也將被一起序列化,因此序列化操作可獲得完整的對象串連圖形。當然前提是所有的對象必須實現Serializable介面。
Time of Update: 2018-07-25
從一個方法看javaIO: public byte[] compress(IWritable value) { if (value == null) return null; try { ByteArrayOutputStream bos = new ByteArrayOutputStream(); DataOutputStream out = new DataOutputStream(bos);