Time of Update: 2018-12-04
問題的提出Java的一個重要優點就是通過垃圾收集器(Garbage Collection,GC)自動管理記憶體的回收,程式員不需要通過調用函數來釋放記憶體。因此,很多程式員認為Java不存在記憶體流失問題,或者認為即使有記憶體流失也不是程式的責任,而是GC或JVM的問題。其實,這種想法是不正確的,因為Java也存在記憶體泄露,但它的表現與C++不同。隨著越來越多的伺服器程式採用Java技術,例如JSP,Servlet,
Time of Update: 2018-12-04
原帖:http://topic.csdn.net/u/20090519/18/7b8cf7ef-bc06-4d26-8a2c-692eb0562231_2.html 作者:zangxt String類是Java中很重要的一個類,在此總結一下這個類的特別之處。下面的相關資料翻譯自《java語言規範》(第三版)和《java虛擬機器規範》(第二版),有的直接摘引了原文。下面的代碼都是用SUN jdk1.6 javac來編譯。 1.String
Time of Update: 2018-12-04
java方法的參數傳遞其一 基本類型 java方法的參數傳遞有時不太好理解,結合簡單的圖形來對此問題進行一些分析。主要是參照張孝祥所著<Java就業培訓教程>。本文先看看基本類型的參數傳遞。以下面代碼為例:public class PassValue { public
Time of Update: 2018-12-04
Time of Update: 2018-12-04
最近有網友問:如何讓一個JAR檔案隨JVM啟動時運行?java.exe是不能夠做成這樣的,不過可以自己定製java.exe,定製java.exe在如下情況有用:1.不想程式的進程名顯示為java.exe2.希望程式雙擊就可以運行。下面是一段範例程式碼:// JVM_CPP.cpp : Defines the entry point for the console application.//#include "stdafx.h"#include "windows.h"#include
Time of Update: 2018-12-04
/** * Base64Util for Java * cheungmine * 2009-11-8 */public class Base64Util {/** * @param args */public static void main(String[] args){// 源位元組數組int cb = 0;System.out.print("源位元組數組: ");byte in[] = new byte[100];in[cb++]='1';in[cb++]='2';in[cb++]='3
Time of Update: 2018-12-04
不變類的意思就是不會發生變化的類,就是當類的執行個體被建立後,狀態不會發生變化的類。 舉個例子:如果人是一個class,那麼我們中的每一個都是人這個類的具體的instance,如果人這個類只有一個狀態就是生身父母,那麼它就是一個不變類,因為每一個人在出生的那一刹那,生身父母就已經被設定了值,而且終生都不會發生變化。不變類有什麼好處呢?1) 不變類是安全執行緒的,由於不變類的狀態在建立以後不再發生變化,所以它可以線上程之間共用,而不需要同步。2)
Time of Update: 2018-12-04
1 基本類型作為參數, 當方法參數為基本類型時,它是通過傳值方式進行調用的,這種傳遞的特點是 (1) 它所傳遞的實參的值是一個副本 (2) 單向傳遞,方法內部可以修改形參的值,但這種修改不會影響到對應的實參 直觀來看,傳值過程相當於一賦值的過程,實參是右值,形參是左值,它們發生聯絡只在調用的那一時刻,以後二者再無聯絡。 2 複合類型作為參數 如果實參是一個類的對象,那麼在調用相應的方法時,系統會將該對象的地址值傳遞給形參。
Time of Update: 2018-12-04
/* * Java檔案操作 擷取副檔名 * * Created on: 2011-8-2 * Author: blueeagle */ public static String getExtensionName(String filename) { if ((filename != null) && (filename.length() > 0)) { int dot = filename.lastIndexOf('
Time of Update: 2018-12-04
LinkedList list = new LinkedList(); File tmp = new File(path); list.add(tmp);File[] files; while (!list.isEmpty()) { tmp = (File) list.removeFirst(); if(tmp.isDirectory()){ files = tmp.listFiles();for(File file: files){ if (file.isDirectory()){
Time of Update: 2018-12-04
開始之前還是先說幾句廢話,Java學習前奏其實昨天就已經看過了的。不過當時看完已經很晚了。所以就沒有及時的整理筆記。Java前奏主要講授了一下幾個簡單的知識。 第一是軟體開發的定義。軟體開發就是一系列按照特定順序組織的電腦資料和指令的集合。所以軟體的作用就是使人機更好互動。軟體的分類有系統軟體和應用軟體。 第二就是很詳細的講訴了DOS命令列中相關的命令使用。DOS是Windows系統最初的介面,由於操作繁瑣使用者體驗性不佳,才會出現了後面的圖形化介面的Windows系統。但是DOS還
Time of Update: 2018-12-04
1.1 物件導向編程中還有一個面向過程的程式設計語言,如C,VB等。面向過程顧名思義就是注重的是過程了。比如說要和某個QQ好友發個資訊,就要先開啟QQ,輸入使用者名稱和密碼,最後點擊登入,登入歐克之後,找到他的QQ號,輸入一段文字,點擊發送,就發送歐克了。這個就是面向過程,它把一個問題的執行步驟,操作和處理都完整的表現出來了。而物件導向的話就是我叫張三給某個QQ好友發條資訊,這時我們只需要知道發了沒有,張三會怎麼操作和處理。還有舉個例子說某個老闆剛開始自己搞項目,反正自己也是高技術的。通過需求
Time of Update: 2018-12-04
package com.airflex.util;import java.io.File;import java.io.IOException;import java.util.Iterator;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import
Time of Update: 2018-12-04
Java web下載檔案功能的確很簡單。如下程式碼片段String fileName ="....";response.setHeader("Content-disposition","attachment; filename="+fileName);//response.setContentType("application/ms-word");BufferedInputStream bis = null;BufferedOutputStream bos = null; try {
Time of Update: 2018-12-04
Thinking in java 1.3
Time of Update: 2018-12-04
& ,| ,^當兩邊是布林運算式的時候比較的結果是布林運算式,這個大家都會的。但是如果兩邊是數位時候。規則是把數字改成二進位&,兩邊相同為1,不同為0|,兩邊有一個為1則為1^,兩邊不同為不同eg:3&53 0000 00115 0000 0101 0000 0001結果:13|53 0000 00115 0000 0101 0000 0111結果:73^53 0000 00115 0000 0101 0000 0110結果:6
Time of Update: 2018-12-04
其實什麼都不需要講的、說的!!!應為Object中的equals是比較的記憶體位址。如果一個類沒有重寫equals方法,那麼就繼承Object中的那個equals方法。在JAVA中==與equals的差別:大家都知道==比較的都是記憶體位址值。下面主要講解equals:在Object類中定義了方法: public boolean equals(Object obj) {return (this == obj);
Time of Update: 2018-12-04
http://hi.baidu.com/chaletli/item/beb128f39dccd413d7ff8cf5 在使用synchronized關鍵字時有以下四點需要注意: 1.
Time of Update: 2018-12-04
最近在看紅/黑樹狀結構,也想自己寫程式實現一下,因為紅/黑樹狀結構的刪除還沒有看,所以程式中並沒有包含刪除操作,等看完了再補上,呵呵。。。至於紅/黑樹狀結構的原理我就不多說了,我是參考<演算法導論>中的虛擬碼寫的程式。代碼實現如下:package com.datastructure.tree;public class MyRbTree {RbTreeNode root=null;RbTreeNode nilNode=null;public RbTreeNode getRoot() {
Time of Update: 2018-12-04
1.首先我們先看看Bruce Eckel是怎麼說的:In the JVM an increment is not atomic and involves both a read and a write. (via the latest Java Performance Tuning