總是來是差別還是很大的。
韶關網站制作公司哪家好,找創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、響應式網站開發等網站項目制作,到程序開發,運營維護。創新互聯公司自2013年起到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選創新互聯公司。
java和c++就有著比較密切的關系。很多人認為java就是簡化版的帶虛擬機的c++。這樣我們在學習java后再學習c++可以讓我們了解到java相對于c++而言做了哪些簡化。特別是在面向對象特性方面。(c++可以實現部分函數語言的特征,特別是它有函數指針,可以把函數當做一個對象傳遞;java這樣做的話需要寫一個“函數對象”,感覺就不是很直接了。但是意圖應該是一致的。抽象性也差不多,同樣的功能java可以使用接口來實現。)我們注意到java和c++的過程控制語句是比較相似的。
另一個角度,我們要知道,c++的復雜性是必須的。和c++在工業領域中所處的位置有關系。以及這個語言所代表的特殊的層次和功能。那么java在作出了簡化之后,相應的失去了很多的靈活性。但是增加了簡單性,便利性。在設計上也比較純粹一些。但是語言風格比較固定,類庫的風格也比較一致。但是這兩種語言都是成熟的語言,在工業領域運用多年。
對于java程序員來說,學習C++不是一件容易的事情。但是有助于程序員對程序語言本身的很多機制的理解。特別是面向對象方面。C++比較復雜,而且健壯性弱,需要程序員格外細心。從這個意義上來看,C++如同林黛玉,美麗,脆弱,難以了解,但是卻很有才。java如同薛寶釵,美麗大方,會照顧人,懂事,貼心,但是不夠靈活。
再換一個角度,c++語言的類庫很豐富,而且跨平臺性也比較好。運行速度快。靈活。所以我們java程序員,學習c++可以說是必須的。
另外,C++現在并沒有退出工業領域,現在還有相當豐富的應用,業務在使用c++。推薦大家可以看一下QT。游戲領域的可以看一下irrlicht。這些都可以作為學習的起點,你就可以做出比較有成就感的東西,對于學習也是一種鼓勵。特別是QT。
最后,java在UI上一直飽受詬病。特別是swing,復雜,速度慢。對javaFX期待中。另外java虛擬機上有很多其他語言建議大家可以學習一下scala。
最最后,很多人比較java和c++哪個好。我覺得是沒有什么大的意義,無論哪個好,哪個強,我們如果都學會的話,豈不是更好?豈不是對我們更有利?
充分利用 J2EE 調試工具--Java 開發環境的增強功能有助于調試J2EE 應用程序
我的第一個 Java 項目包括接管由我所在公司的一個部門編寫的一個門戶,該部門現在已經關閉了。當我凝視著運行門戶代碼的服務器終端時,我看到一行接一行的調試代碼涌現在在屏幕上。進一步的研究之后,我發現 JavaServer Pages ( JSP )和 servlet 中到處都是 System.out.println (“ [Debug Statement] ”)。由于我對我接管的語言和代碼有些陌生,我堅持自己為終端編寫調試語句,因為我不知道調試 Java 代碼的其他方法。
然而,在漫長而乏味的調試過程中,我不斷失敗。我發現在將代碼提交給 QA 之前很難移除所有的調試語句。同樣,調試涉及到重新編譯、重新部署的代碼和在執行代碼時觀察終端也非常困難。為了查找代碼中斷的點,我時常在方法中的每一行代碼后加入 println 語句,在這種情況下,過程常常為找到的每一個故障重復。
最后,在我發現 Java 平臺調試架構( Java Platform Debugger Architecture , JPDA )的時候,我擺脫了調試夢魘。 JPDA 是一套組成構建調試應用程序框架的 API 。幸運的是,我們大多數人不需要自己考慮創建調試應用程序的事,因為這些是與主要的 IDE 捆綁在一起提供的。調試在這些新的 IDE 中是一個相當簡單和輕松的過程。
您必須執行幾個步驟才可以使您的開發環境成為您可以進行調試的環境。如果您正在使用 Sun 的 Java Virtual Machine ( JVM )進行調試,您必須在命令行中指定啟動 J2EE 容器的時間,其中, JVM 已經以調試模式啟動。為了執行該操作,只需在 java 命令的后邊添加 -Xdebug 參數。我們隨后將研究一個命令行調試參數的示例。為了加載 Java Debug Wire Protocol ( JDWP ) 的 JPDA 參數實現,需要使用具有隨后指定的 JPDA 選項的 -Xrunjdwp 。該參數加載進行中的調試資料庫,而其子選項提供了調試服務器如何與調試客戶端交互的細節。我們將研究一份 JPDA 子選項列表,該列表可以幫助設置正確的調試環境。
首先,指定傳輸選項。 transport 用于在調試程序和 VM 使用的進程之間通訊。 Win32 平臺的 VM 提供了很多其他平臺使用的共享內存傳輸和套接字傳輸。共享的內存傳輸(僅在 Win32 平臺中受支持)要求調試應用程序和目標 VM 存放在相同的機器中。套接字傳輸使用標準的 TCP/IP 套接字來與調試信息通信。調試客戶端和調試服務器可以位于使用套接字傳輸的相同或者不同的機器中。對于遠程調試 Enterprise JavaBeans ( EJB )和 servlet 來說,我們關注于使用套接字傳輸,因為它受所有平臺支持:
transport=dt_socket
我們正在啟動的 VM 需要作為調試服務器執行。如前所述,調試服務器是運行以調試模式編譯的應用程序的 JVM (以后講述),并具有允許客戶端連接和 監聽 應用程序的開放套接字。為了使 VM 成為一臺服務器,需要提供服務器選項,并將其值設置為 yes :
server=yes
接下來,我們需要指出調試服務器將要使用的端口號,同時也是端口客戶端用來連接服務器的端口號。只有知道正在運行服務器的端口號的客戶端才可以建立連接,因為不存在標準的調試端口,也就是 HTTP 服務器。任何未使用的端口都適用。在我們的情況中,我們使用了端口 4000 :
address=4000
避免混亂
您可以提供一個選項,僅在調試客戶端建立連接之后啟動 VM ( suspend=y )。我的 J2EE 容器具有一種服務,它可以在容器登錄之后立即啟動,而不用添加 suspend=y 到參數列表。我發現在我的那項服務啟動之前,啟動客戶端并連接到 VM 有些混亂 。使用該選項,我就可以啟動 VM 。當它暫停的時候,我打開 IDE ,設置中斷點,然后建立調試連接。一旦連接建立,容器繼續登錄,而我可以一步步啟動服務。
onthrow 選項推遲初始化 JDWP 資料庫,直到引發指定類的異常。例如,如果需要在引發異常(如 ServletException )時執行一些操作,您需要包含如下選項:
onthrow=
javax.servlet.ServletException
同樣, JDWP 資料庫初始化也可以推遲,直到引發異常但沒有捕獲時,該操作可以通過提供 onuncaught=y 選項指定。
啟動選項指出 VM 應當基于調試事件來啟動應用程序,該事件與 onthrow 或者 onuncaught 選項一起提供:
launch=/usr/home/mydir/debugapp
讓我們研究一些我經常使用的命令行調試參數的示例。在第一個示例中,我們將指導 VM 使用套接字傳輸。調用的 VM 是服務器,它應當監聽端口 4000 。我們還指出 VM 應當在調試服務器建立連接后才可以暫停:
-Xrunjdwp:transport=
dt_socket,server=y,address=4000,
suspend=n
第二套參數類似于前一個示例,不同的是其傳輸現在是一種共享內存傳輸(僅限于 Windows ):
-X runjdwp:transport=
dt_shmem,server=y,address=4000,
suspend=n
第三套參數會導致 VM 通過端口 4000 上的套接字連接附加到正在運行中的調試服務器中,這將要求 VM 以調試模式運行在端口 4000 上的 SomeHost 中:
-X runjdwp:transport=
dt_socket,server=n,address=
SomeHost:4000, suspend=n
第四套參數將導致 VM 在開始的時候暫停。 VM 將等待建立與調試客戶端的連接,然后再繼續加載。 VM 使用端口 4000 來監聽客戶端,并使用套接字連接:
-X runjdwp:transport=
dt_socket,server=y,address=
4000, suspend=y
使用第五套參數,當引發 javax.management.InstanceNotFoundException 的時候, VM 將暫停,并啟動 c:\debug.bat 。 debug.bat 腳本可以啟動調試應用程序,該應用程序可以連接服務器,并開始調試會話:
-Xrunjdwp:transport=
dt_socket,address=4000,server=
y,suspend=y,onthrow=
javax.management.
InstanceNotFoundException,
launch=c:\debug.bat
最后一套參數將在引發異常但沒有捕獲的時候執行 debug.bat 腳本:
-Xrunjdwp:transport=
dt_socket,address=4000,server=
y,suspend=n,onuncaught=
y,launch=c:\debug.bat
我們現在可以使用一些現有的通用 IDE 來說明如何調試 J2EE 。我們在示例中使用的 J2EE 容器是 JBoss 服務器;然而,任何標準的 J2EE 容器都是可用的。 JBoss 服務器從 bin 目錄中的 run.bat 文件啟動。 BAT 文件可以接受調試命令行自變量,并將它們發送給 JVM 。作為一名開發人員,我發現我很少需要啟動開發環境(除了調試模式),因此我將 run.bat 復制到一個名叫 debug.bat 的新文件中,并且在該文件中添加了調試參數。以下是 JBoss debug.bat 文件的內容:
rem Read all command line
rem arguments
set ARGS=
:loop
if [%1] == [] goto endloop
set ARGS=%ARGS% %1
shift
goto loop
:endloop
set JAVA_OPTS=
-Dprogram.name=run.bat
set JAVAC_JAR=
%JAVA_HOME%\lib\tools.jar
set RUNJAR=.\run.jar
set JBOSS_CLASSPATH=
%JBOSS_CLASSPATH%;%JAVAC_JAR%;
%RUNJAR%
rem Set the debug options here
set DEBUG_OPTS =
-Xdebug -Xnoagent
-Djava.compiler=
NONE -Xrunjdwp:transport=
dt_socket,address=
4000,server=y,suspend=n
Java %JAVA_OPTS% %DEBUG_OPTS%
-classpath "%JBOSS_CLASSPATH%"
org.jboss.Main %ARGS%
調試信息
在將 IDE 的調試程序連接到服務器之前,將應用程序放在服務器上。確保使用打開的調試信息對應用程序進行編譯。這樣做可以在已經編譯的類文件中提供行編號方式。如果您使用 Ant 來構建項目,請確保 javac 任務包含:
debug="on"
否則, IDE 應當包含在編譯期間打開調試的選項。
我提供了 從簡單的 DocBook 文件生成 PDF E-Books 的 J2EE 應用程序 。該應用程序由會話 bean 、 JSP 文件和 servlet 組成。會話 bean 可以列舉存儲在服務器中的 DocBook 文檔和 XSL 樣式表文件。 JSP 使用會話 bean 來顯示書籍和 XSL 文件的列表,以下拉列表的方式顯示。用戶可以選擇他們要將哪些文件轉換成 PDF ,并指定要將哪些樣式表用于轉換。作為最后一個步驟, servlet 將 DocBook 文件轉換為 PDF ,并將 PDF 顯示在用戶的 Web 瀏覽器中。 Apache 的 FOP 資料庫用于轉換文檔(參閱 資源 )。
如果您想使用我構建的應用程序,請編輯 Ebook.properties 文件,并提供到您的機器中某個位置的有效路徑,該位置中存放 DocBook 和 XSL 文件。示例 DocBook 和 XSL 文件還可以下載。請將這些文件存放在您指定的位置中。
我已經提供了一份 Ant build.xml 文件來構建應用程序和將類封裝到企業歸檔文件( EAR )中。將 EAR 文件部署到 JBoss 的目錄中,并啟動具有以下參數的容器:
-Xrunjdwp:transport=
dt_socket,server=y,address=4000,
suspend=n
現在,我們已經準備好在調試模式中連接代碼
Intelli-J IDEA 調試
為了在Intelli-J中連接調試服務器,只需點擊工具條中的Debug按鈕,打開調試配置界面即可。然后選擇Remote標記,來查看哪些調試配置可用。最初,沒有配置可以使用。點擊屏幕左上方的+按鈕來添加新的遠程調試配置。輸入主機名稱或者IP地址和要連接到的端口(參見圖1)。
圖 1. 遠程 Intelli-J 調試
圖中有一個 Intelli-J 中的連接到本地機器的遠程調試配置。
確保服務器啟動時具有已經為 VM 進行設置的調試選項,然后點擊 Debug 按鈕。您應當連接到 VM ,并且您的調試屏幕中將出現在 Intelli-J 屏幕的底部。您可以通過點擊 Edit 窗口右邊空白區域來輕松的在 IDE 中設置中斷點。在中斷的地方會出現一個紅點。如果圓點中有一個 X ,則您指定的中斷點無效,或者服務器中的代碼在編譯時沒有打開調試。如果圓點中有一個校驗標記,則說明您已經成功的連接到調試服務器,和已經選擇了有效的中斷點位置。您可以進行調試了。如果您使用的是本文提供的 示例代碼 ,則請在 EJB 的 getDocBooks() 方法中設置中斷點。將 Web 瀏覽器指向 。您的瀏覽器應當顯示為懸掛狀態,并且 Intelli-J 在設置中斷點的行中應當有一個藍條。恭喜,您正在調試 EJB ,您的 IDE 已經為進入代碼準備就緒(參見 圖 2)。
圖 2. Intelli-J 中斷點
Intelli-J 中斷點在其設置的地方以藍色突出顯示。圖中,中斷點已經設置,可以進行下一步驟。
們正在調試的方法查找在 DocBookToPDF.properties 文件中指定的目錄,并返回所有以 XML 為結尾的文件。該方法假設每一個文檔都是 DocBook 文件。在我們繼續之前,確保目錄具有有效的 DocBook 和 XSL 文件,以將文檔轉換為 PDF 。
完成進入代碼之后,注意 JSP 在下拉列表中顯示 DocBook 和 XSL 文件。下一步驟是調試 DocBookToPDFServlet servlet 。將中斷點放在 Edit 窗口左邊, processRequest() 方法中的某個位置。在 Web 瀏覽器中選擇 DocBook 文件和有效的 XSL 文件,然后點擊 Web 頁面中的 Generate Book 按鈕。 servlet 中的中斷點將呈現為藍色, servlet 代碼可以進入。
NetBeans/Forte 調試
在 NetBeans 中創建一個項目,該項目包含您需要調試的代碼。使用打開的調試選項編譯它,并像在前面 Intelli-J 部分中討論的那樣,將應用程序部署到服務器中。我提供的 Ant build XML 文件演示了如何以調試模式編譯代碼。
為了開始調試,請選擇 Debug | Start Session | Attach 菜單選項。這時,將出現一個對話框,要求填寫連接信息。指定 JPDA 為調試程序, SocketAttach 為連接程序, localhost 為主機,端口 4000 為要連接到的器。點擊 OK 按鈕,您應當附加到 J2EE 容器的 VM (參見 圖 3 )中。 Debug 窗口將成為活動窗口,您現在可以使用相同的方式來設置中斷點,就像使用 Intelli-J 那樣。在 EJB 的 getDocBooks() 方法中設置中斷點,并將 Web 瀏覽器指向 。 Web 頁面應當顯示為懸掛狀態,而 NetBeans 中的中斷點將被突出顯示(參見 圖 4 )。您可以在 IDE 中點擊調試工具欄中的 Step Over 和 Step Into 按鈕來進入 NetBeans 中的代碼。您還可以在界面左邊框架中設置觀察。
圖 3. 遠程 NetBeans 調試
圖中是 NetBeans 中本地機器的遠程調試配置
圖 4. NetBeans 中斷點
NetBeans 中斷點在活動狀態時以綠色突出顯示。圖中是已經設置的中斷點,已經準備好進行調試。
為了調試 servlet ,請在 processRequest() 方法中設置中斷點。當 JSP 在 Web 瀏覽器中完成加載,并在機器中顯示 DocBooks 和 XSL 文件的列表之后,選擇 DocBook 文件和 XSL 文件,然后點擊 Web 頁面中的 Generate Book 按鈕。在 NetBeans 中,中斷點將變為突出顯示狀態,您可以開始調試 servlet 代碼了。
Eclipse
為了在Eclipse中調試,需要在Java透視圖中創建一個項目。如果您正在使用DocBook-to-PDF代碼示例,則使用Ant build.xml編譯代碼,以編譯打開調試的類。突出顯示Java應用程序,并選擇Run | Debug菜單項。此時,將出現一個對話框。突出顯示Remote Java Application,然后點擊對話框左手邊底部的New按鈕。對話框項目的名稱應當為在Java透視圖中突出顯示的項目的名稱。對話框中連接部分的主機字段應當是您需要連接到的服務器,端口字段中應當具有容器的VM正在使用的調試端口(參見圖5)
圖 5. 遠程 Eclipse 調試
圖中是 Eclipse 中本地機器的遠程調試配置。
接下來,點擊Debug按鈕。Eclipse將轉到Debug透視圖。為了調試代碼,請返回到Java透視圖中,并在編輯器中打開EJB文件或者servlet。雙擊EJB的getDocBooks()方法的左手邊的窗格來設置一個中斷點。有效的中斷點具有一個藍色的圓球,并且圓球中有一個校驗標記。如果中斷點中沒有校驗標記,雙擊該中斷點,然后嘗試不同的點。
接下來,將Web瀏覽器指向相同的JSP和servlet文件,就像前面NetBeans和Intelli-J中所描述的那樣。當設置中斷點時,中斷點所在的行將被突出顯示,您可以像使用其他IDE那樣來調試代碼(參見圖6)。
圖 6. Eclipse 中斷點
Eclipse 中有效的中斷點以藍色圓球和校驗標記指示。該圖說明了如何在 Eclipse IDE 中調試代碼。當前的調試位置以綠色突出顯示
使用具有流行 IDE 的 JPDA 資料庫應當會縮短開發時間,并且允許您創建包含極少缺陷的更優秀的代碼。如果您仍在代碼中添加 System.out.println() 語句,以發現程序失敗或者中斷的位置,那么請住手!您是在浪費時間和金錢。 Java IDE 已經推出很長時間了,它可以提供功能強大的調試工具。您僅需要對啟動 VM 的方法做一些小小的改動,就可以輕松地調試 Java 應用程序了。
如果沒有特殊要求的話,一般最好用數據庫中的比較,先在數據庫中比較數據,找出差異的,然后用程序輸出文本或者打印,畢竟數據庫的數據處理能力是很強大的;當然你也可以把數據兩個表的數據分別取出來,在程序中使用兩個對象來存放,然后在程序中對這2個對象進行比較
一樣。
使用不同的java工具,并不會造成代碼不一樣,在集成到項目的構建過程中,通過強制執行代碼庫的編碼標準,使代碼變為一樣。
Java語言基本語法一、標識符和關鍵字標識符在java語言中,用來標志類名、對象名、變量名、方法名、類型名、數組名。
分享文章:Java代碼庫差異比較 java開發和數據庫開發的區別
文章起源:http://m.kartarina.com/article40/hgcheo.html
成都網站建設公司_創新互聯,為您提供標簽優化、ChatGPT、靜態網站、虛擬主機、網站設計、網站改版
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯