前兩天,利用線程池技術(ThreadPool)寫了個web服務器,其性能當然無法和apacheiis等相比,但基本的功能都有了,唯一欠缺的是無法解析動態頁面,采用解釋執行(asp模式的)效率太低,如果采用編譯執行,要么自己編寫一個編譯器來編譯整個動態頁面,要么采用預編譯,很復雜。。。。現在把代碼拿出來曬一曬!由于只是初步的設計所以沒有考慮到很多設計模式,代碼在優化上很不到位,請各位高手不吝賜教。MainServer.java這是主服務文件,也是提供主線程的
系統 2019-08-12 09:29:48 2050
很簡單的tomcat配置,可以從網上下載解壓安裝JDK及tomcat,最后用一個批處理文件(*.bat),就可以實現配置啟動tomcat,很簡單的批處理文件,稍懂點DOS命令的一看就懂!!批處理如下:setJAVA_HOME=d:\DEJ2SDK1.4setTOMCAT_HOME=d:\DETOMCAT50d:cdd:\DETOMCAT50\binstartup.batJAVA起步(1)-TOMCAT的配置
系統 2019-08-29 23:16:44 2049
此文解決的是使用Eclipse,通過JNI,調用DLL文件。再通過該DLL文件,使用GetProcAddress調用EXE文件的導出函數。目前只能做到調用單一的函數。下一步可擴展的:1.連續調用多個函數,并組合使用。2.在EXE運行過程中。動態的調用導出函數并獲取實時的數據。3.通過強制破解,調用非導出的函數。A.在Eclipse下創建java項目。創建包:com。創建java類:Helloworld。代碼如下://包名在生成頭文件時容易出問題。應當注意j
系統 2019-08-29 22:42:57 2049
周末無聊啃ThinkinginJava,900多頁,受益良多JavaSwing跟Qt不少想法都差不多Java下用什么工具設計UI呢VE?VE1.4在eclipse3.6還裝不了,等1.5出來研究研究Java:JavaSwing?
系統 2019-08-29 22:39:49 2049
Java多線程程序設計詳細解析一、理解多線程多線程是這樣一種機制,它允許在程序中并發執行多個指令流,每個指令流都稱為一個線程,彼此間互相獨立。線程又稱為輕量級進程,它和進程一樣擁有獨立的執行控制,由操作系統負責調度,區別在于線程沒有獨立的存儲空間,而是和所屬進程中的其它線程共享一個存儲空間,這使得線程間的通信遠較進程簡單。多個線程的執行是并發的,也就是在邏輯上“同時”,而不管是否是物理上的“同時”。如果系統只有一個CPU,那么真正的“同時”是不可能的,但是
系統 2019-08-29 22:08:19 2049
使用反射不同于常規的Java編程,其中它與元數據--描述其它數據的數據協作。Java語言反射接入的特殊類型的原數據是JVM中類和對象的描述。反射使您能夠運行時接入廣泛的類信息。它甚至使您能夠讀寫字段,調用運行時選擇的類的方法。反射是一種強大的工具。它使您能夠創建靈活的代碼,這些代碼可以在運行時裝配,無需在組件之間進行源代表鏈接。但反射的某些方面存在一些疑問。在本文中,我將深入討論為什么您可能不希望在程序中使用反射,以及您應該這樣做的理由。在了解了權衡性分析
系統 2019-08-29 22:01:14 2049
《加速Java應用開發速度》系列目錄:加速Java應用開發速度1——加速spring/hibernate應用調試時啟動速度加速Java應用開發速度2——加速項目調試啟動速度加速Java應用開發速度3——單元/集成測試+CI加速Java應用開發速度4——使用模板技術加速項目開發速度加速Java應用開發速度5——使用腳本自動化日常操作大家可能對如下情景比較熟悉:如果開發過SSH的web項目,啟動服務器可能會比較慢,有的項目甚至需要1分多鐘,甚至更多,這個啟動時
系統 2019-08-29 22:00:52 2049
1.數組的定義格式1.元素類型[]數組名=new元素類型[元素個數或者數組長度];int[]arr=newint[5];//推薦intarrs[]=newint[5];2.靜態初始化方式不能寫長度int[]arrs=newint[]{3,1,4,5,6,2};int[]arrs={3,1,4,5,6,2};//好像是在jdk5.0后才能使用3.boolean類型的數組默認值為false數組的操作publicstaticvoidmain(String[]ar
系統 2019-08-29 22:00:03 2049
今天練習了一個小的聊天程序,實現客戶端與服務器端相互發送消息,仿照的例子中是點擊發送button實現發送消息,我忽然想到了QQ中常設的Ctrl+Enter組合鍵發送消息,快捷又方便,就試著改了下,原來java自身就有幾乎對應的方法,于是往消息輸入框添加按鍵監聽,很容易地就實現了該功能,哈哈,舒服。。。。。。關鍵設置如下/***初始化消息輸入框**@returnjavax.swing.JTextArea*/privateJTextAreagetInputAr
系統 2019-08-12 09:30:33 2049
原文Urlhttp://blog.csdn.net/silentbalanceyh/article/details/4661230(原本準備把內存模型單獨放到某一篇文章的某個章節里面講解,后來查閱了國外很多文檔才發現其實JVM內存模型的內容還蠻多的,所以直接作為一個章節的基礎知識來講解,可能該章節概念的東西比較多。一個開發Java的開發者,一旦了解了JVM內存模型就能夠更加深入地了解該語言的語言特性,可能這個章節更多的是概念,沒有太多代碼實例,所以希望讀者
系統 2019-08-29 22:01:42 2048
在遇到一些小問題的時候我們經常會使用Javap反編譯取得字節碼來分析,雖然Javap能完成這個工作,但是有兩個缺點,一方面操作麻煩,需要很多步驟,一方面沒有文檔注釋,對新手來說看起字節碼來比較麻煩。這里推薦一個工具,BytecodeOutline.它是Eclipse的插件,可以把當前的正在編輯Java的文件或者class文件直接顯示出其相應的字節碼出來,而且可以進行兩個Java文件的字節碼比較或者兩個class文件的字節碼比較或一個Java文件與一個cla
系統 2019-08-12 09:26:42 2048
Exceptioninthread"main"java.lang.NoClassDefFoundError:test(wrongname:com/sapmonitor/unix/test)atjava.lang.ClassLoader.defineClass1(NativeMethod)atjava.lang.ClassLoader.defineClass(ClassLoader.java:620)atjava.security.SecureClassLo
系統 2019-08-29 23:21:24 2047
一、Oracle數據新建測試表和存儲過程1、新建test表createtabletest(namevarchar2(5)primarykey,passwordvarchar2(5)notnull)2、新建帶參數的存儲過程pro_add_test用來向test表中插入一條數據createorreplaceprocedurepro_add_test(m_nameintest.name%type,m_passwordintest.password%type)is
系統 2019-08-12 01:54:56 2047
理解Ajax編程的基本知識是重要的,但是如果正在構建復雜的用戶界面,那么能夠在更高層次的抽象上工作也很重要。在面向Java開發人員的Ajax系列的第3篇文章中,我在上個月的Ajax的數據序列化技術基礎之上,介紹一種可以避免繁瑣的Java對象序列化細節的技術。在上一篇文章中,我介紹了如何用JavaScript對象標注(JSON)以一種在客戶機上容易轉化成JavaScript對象的格式對數據進行序列化。有了這個設置,就可以用JavaScript代碼調用遠程服務
系統 2019-08-29 23:11:13 2046
2.List接口List接口繼承了Collection接口以定義一個允許重復項的有序集合。該接口不但能夠對列表的一部分進行處理,還添加了面向位置的操作。(1)面向位置的操作包括插入某個元素或Collection的功能,還包括獲取、除去或更改元素的功能。在List中搜索元素可以從列表的頭部或尾部開始,如果找到元素,還將報告元素所在的位置:voidadd(intindex,Objectelement):在指定位置index上添加元素elementboolean
系統 2019-08-29 22:44:16 2045