Time of Update: 2018-12-03
1 命名規範1.1 Package命名規範【JAVA-1】 Package名要使用小寫字,中間用“.”分割【規定】說明·原因如無特殊規定,請將Package名統一成小寫字。這是Java的一般規則。例package cn.co.AAA.BBB; //錯誤package cn.co.aaa.bbb; //正確 【JAVA-2】
Time of Update: 2018-12-03
圖片檔案格式轉換最核心的問題就是要解決各種圖片格式的編碼和解碼,推薦用jimi包,可從http://java.sun.com/products/jimi/下載該包及其源碼和demo。 需要注意的是:jimi提供了對幾乎所有圖片格式的解碼支援,但是為提供gif和tif/tiff格式的編碼api,gif編碼問題在網上可以找到縣相關的源碼,tiff好像jai:http://java.sun.com/products/java-media/jai/index.jsp提供了它的編碼,
Time of Update: 2018-12-03
Properties prs = System.getProperties();Set<Object> kes = prs.keySet();for (Iterator<Object> iterator = kes.iterator(); iterator.hasNext();) {Object object = (Object)
Time of Update: 2018-12-03
AS很多地方都和JAVA很相像,也有不少AS程式員是在JAVA的基礎上學習AS的(必然我,呵呵)。自然而然的我們會用JAVA經驗去理解AS,這在很多地方是適用的,不過例外也是有,下面討論下他倆中switch語句的區別。在JAVA中switch語句的測試運算式只允許 int 和 enum
Time of Update: 2018-12-03
linux預設情況下,tomcat/resin不開啟圖形顯示功能,需加入支援選項 在Linux下,我們在用java的圖片包來處理圖片時,經常遇到 java.lang.NoClassDefFoundError: sun.awt.X11GraphicsEnvironment 這種異常,這時因為java虛擬機器在處理圖片時需要本地的x-server的支援,解決方案有兩種: 1 java 1.4版本以上 啟動java時加上參數:-Djava.awt.headless=true
Time of Update: 2018-12-03
在使用DBCA命令建立新的資料庫時,DBCA命令無法啟動。啟動並執行環境是宿主機64bit+AMD cpu, 而客戶機為Linux 32bit + Grid Infrastructure(32) + Oracle database software(32)的情形。原本想著32bit啟動並執行會快一點,沒想到Bug 8670579 在執行dbca時再一次被觸發,根據Oracel描述,類似的NETCA也會觸發這個Bug。 一、故障現象 [oracle@linux1 ~]$ dbca
Time of Update: 2018-12-03
先連續發幾十個很小很小的包(<10 byte) 再突然發一個大小64byte的包 這時你會發現mina就會出現以下錯誤使用mina處理大資料接收時:org.apache.mina.filter.codec.ProtocolDecoderException: java.nio.BufferOverflowException (Hexdump: 53 53 00 04)at
Time of Update: 2018-12-03
Regex只要有兩個功能: 模式的檢驗與替換 在開始之前先簡單介紹一下Regex的基礎,以下為我做的摘錄: 表示匹配元素的符號'.' 符號匹配所有字元,包括空格、Tab字元甚至分行符號。'[]' 方括弧裡面指定參與匹配的字元. eg. Regex“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。'(|)' “|”操作符的基本意義就是“或”運算. eg.要匹配“toon”,使用“t(a|e|i|o|oo)n”。這裡不能使用[],因為[]只允許匹配單個字元。'^'
Time of Update: 2018-12-03
先說一下,反編譯並非完全編譯,越複雜的越難反編譯,只能保證將其反編譯為機器語言(組合語言)。但是通常不能把可執行檔變成進階語言原始碼,只能轉換成組譯工具。像*.exe之類的很難反編譯,比如使用eXeScope,就算是最簡單程式也只能反編譯成機器碼,一般人是看不懂的,也很難看懂的。而java則是使用的JVM,所以教容易反編譯,能大概反編譯成原始碼。這裡我說的是大概,差不多的意思。下面簡單介紹一下反編譯。 進階語言來源程式經過 編譯 變成可執行檔,反編譯就是逆過程。 反編譯:
Time of Update: 2018-12-03
簡單原廠模式是類的建立模式,又叫做靜態Factory 方法(Static Factory Method)模式。ξ 12.1 原廠模式的幾種形態:① 簡單工廠(Simple Factory),又稱靜態Factory 方法模式;② Factory 方法(Factory Method),又稱多態性工廠(Polymorphic Factory)模式或虛擬構造子(Virual Constructor)模式;③ 抽象工廠(Abstract Factory),又稱工具箱(Kit或Toolkit)模式。☆
Time of Update: 2018-12-03
在java中可有兩種方式實現多線程,一種是繼承Thread類,一種是實現Runnable介面; Thread類是在java.lang包中定義的。一個類只要繼承了Thread類同時覆寫了本類中的 run()方法就可以實現多線程操作了,但是一個類只能繼承一個父類,這是此方法的局限, 下面看例子: package org.thread.demo; class MyThread extends Thread{ private String name; public
Time of Update: 2018-12-03
孫鑫原創系列-----Java中文亂碼問題的解決方案 [關鍵字: 孫鑫 java 亂碼 ]
Time of Update: 2018-12-03
無紙簽名概述在本章中,我們將研究數位簽章,它是確定交換訊息的通訊方身份的第一個層級。我們將通過代碼樣本說明標識訊息源的兩種方法(一種比較難,另一種比較容易)。我們還將列出 JDK 1.4 支援的數位簽章演算法,並研究所涉及的類和方法。回頁首什麼是數位簽章?您注意到什麼是公開金鑰密碼術?中描述的公開金鑰訊息交換的缺陷了嗎?Bob 怎麼能夠證實該訊息確實是來自於 Alice 呢?Eve 可以用她的公開金鑰替代 Alice 的公開金鑰,然後 Bob 就會與 Eve 交換訊息,並以為她就是 Alice。
Time of Update: 2018-12-03
當然要看你怎麼定義by value 和 by reference。Java的官方文檔【3】中如此描述:“When the method or constructor is invoked, the values of the actual argument expressions initialize newly created parameter
Time of Update: 2018-12-03
很多Java面試的時候,都會問到有關Java記憶體回收的問題,提到記憶體回收肯定要涉及到JVM記憶體管理機制,Java語言的執行效率一直被C、C++程式員所嘲笑,其實,事實就是這樣,Java在執行效率方面確實很低,一方面,Java語言採用物件導向思想,這也決定了其必然是開發效率高,執行效率低。另一方面,Java語言對程式員做了一個美好的承諾:程式員無需去管理記憶體,因為JVM有記憶體回收(GC),會去自動進行記憶體回收。其實不然:1、記憶體回收並不會按照程式員的要求,隨時進行GC。2、記憶體回收
Time of Update: 2018-12-03
用在多線程,同步變數。 線程為了提高效率,將某成員變數(如A)拷貝了一份(如B),線程中對A的訪問其實訪問的是B。只在某些動作時才進行A和B的同步。因此存在A和B不一致的情況。volatile就是用來避免這種情況的。volatile告訴jvm, 它所修飾的變數不保留拷貝,直接存取主記憶體中的(也就是上面說的A)=========================分割線1================================= 在Java記憶體模型中,有main
Time of Update: 2018-12-03
最近在centOS上面做j2ee開發,當啟動tomcat7.0的時候總是報如下錯誤:嚴重: StandardServer.await: create[localhost:8005]: java.net.BindException: Cannot assign requested address at java.net.PlainSocketImpl.socketBind(Native Method) at java.net.PlainSocketImpl.bind(PlainSock
Time of Update: 2018-12-03
1.基本概念的理解絕對路徑:絕對路徑就是你的首頁上的檔案或目錄在硬碟上真正的路徑,(URL和實體路徑)例如:C:/xyz/test.txt 代表了test.txt檔案的絕對路徑。http://www.sun.com/index.htm也代表了一個URL絕對路徑。相對路徑:相對與某個基準目錄的路徑。包含Web的相對路徑(HTML中的相對目錄),例如:在Servlet中,"/"代表Web應用的跟目錄。和實體路徑的相對錶示。例如:"./"
Time of Update: 2018-12-03
今天偶然看代碼,發現別人有這樣寫的方法,並且jar裡面有幾個dll檔案,比較奇怪,於是把代碼開啟,發現如下寫法。 public native String GSMModemSMSReadAll(String s, int i); public native String GSMModemGetErrorMsg(String s); public native boolean GSMModemIsConn(String s);覺得挺有趣的,找了找網路上的資料,感覺不錯。又一個使用
Time of Update: 2018-12-03
在項目中要更能根據某些查詢條件(比如姓名)的首字母作為條件進行查詢,比如查一個叫“張三”的人,可以輸入‘zs'。寫了一個工具類如下:/**GB 2312-80 把收錄的漢字分成兩級。第一級漢字是常用漢字,計 3755 個, * 置於 16~55 區,按漢語拼音字母/筆形順序排列;第二級漢字是次常用漢字, * 計 3008 個,置於 56~87 區,按部首/筆畫順序排列,所以本程式只能查到* 對一級漢字的聲母。同時對符合聲母(zh,ch,sh)只能取首字母(z,c,s)*/public