建立java唯讀類

完全可以建立自己的唯讀類,下面是個簡單的例子: //: Immutable1.java// Objects that cannot be modified// are immune to aliasing.public class Immutable1 { private int data; public Immutable1(int initVal) { data = initVal; } public int read() { return data; }

java唯讀類

儘管在一些特定的場合,由clone()產生的本機複本能夠獲得我們希望的結果,但程式員(方法的作者)不得不親自禁止別名處理的副作用。假如想製作一個庫,令其具有常規用途,但卻不能擔保它肯定能在正確的類中得以複製,這時又該怎麼辦呢?更有可能的一種情況是,假如我們想讓別名發揮積極的作用——禁止不必要的對象複製——但卻不希望看到由此造成的副作用,那麼又該如何處理呢?一個辦法是建立“不變對象”,令其從屬於唯讀類。可定義一個特殊的類,使其

Tuscany的java靜態模型類maven產生工具外掛程式使用介紹

我們可以通過tuscany提供的產生工具外掛程式將SDO定義產生為實際需要的java類,為工作提供便利,以下是使用此外掛程式的範例配置:<plugin><groupId>org.apache.tuscany.sdo</groupId><artifactId>tuscany-sdo-plugin</artifactId><executions><execution><id>simple</id&g

Tuscany Java架構分析

Tuscany架構分為以下5個部分:SCA標準1.0API: 這些API是根據osoa.org的SCA java 1.0標準所規定的介面建立的;Tuscany API: 這些java類實現、擴充了SCA java 1.0的API;Tuscany核心: 是運行時類以及擴充該核心的服務介面(SPI)Tuscany可擴充機制:構件實現技術,如bpel, Python, C++, Ruby,..綁定技術,如Axis2, CXF,..資料格式轉換,如 SDO, JAXB, ...通訊技術:

J2EE基礎 用Struts架構開發MVC系統步驟

由於Struts已經為我們提供了一個非常好的MVC架構,我們利用Struts開發MVC系統時可以大大加快開發的速度。在開發時可以採用的一個開發流程如下:  1. 收集和定義應用需求。2. 基於資料擷取和顯示的原則定義和開發"螢幕顯示"需求 。3. 為每一個"螢幕顯示"定義訪問路徑。4. 定義ActionMappings建立到應用商務邏輯之間的聯絡。5. 開發滿足"螢幕顯示"需求的所有支援對象。6.

基於J2EE架構的公司專屬應用程式開發新思維:Web應用以誰為中心

基於J2EE架構的公司專屬應用程式開發新思維:Web應用以誰為中心?瀏覽器?伺服器企業Web應用,指的是企業內部使用B/S架構搭建的公司資訊系統,使用者一般局限在企業內部,為了適應企業某個商務程序而設計開發使用的系統。出於跨地區部署升級的考慮,一般採用B/S模式進行開發,避免在每個用戶端安裝配置的麻煩。一般情況下,前台瀏覽器特指IE瀏覽器,前台作業系統選擇Windows作業系統。非Windows作業系統的客戶機與非IE的瀏覽器不在本文討論範圍之內。本文主要討論以J2ee架構為基礎的Web應用,其

基於J2EE架構的公司專屬應用程式開發新思維:J2EE架構批判

4.1關於J2EE開發的比喻打個比方.現在的j2ee開發,就好象對面來了一個人.最外面穿著一件風衣(HTML)風衣裡面穿著西裝(Struts)西裝裡面穿著馬甲(Spring)馬甲裡面穿著襯衫(Hibernate)襯衫的裡面才是真實的人(資料庫)全部衣服都是採用棉布做成的(Java)每件衣服上都可能有其他配件(第3方庫)各件衣服之間需要配套使用(版本相容)如果你想看到這個人到底長啥樣,必須得:先脫一件,再脫一件,再脫一件.最後才能看到最終資料庫裡面的資料是啥樣子.在很久很久以前,這個人是不穿衣服的

Groovy探索之MOP 十四 對Java類使用Groovy語言的MOP

既然Groovy語言是Java語言的擴充,那麼我們在使用Groovy語言的時候,就很難與Java語言真正脫得了干係,那怕我們是在做一個純Groovy語言的項目,如Grails項目。我們可能在Groovy代碼中會用到遺留的Java類和包;也可能是為了效能的原因,我們不得不在Groovy語言中使用到Java類;等等。如果我們要對於Java類使用Groovy語言的MOP,比如我們想給一個Java類的對象在運行期內添加一個方法。那麼我們該怎麼辦呢?比如,我們有如下的一個Java類://(Java代碼)p

Java設計模式透析:適配器(Adapter)

今天一大早,你的leader就匆匆忙忙跑過來找到你:“快,快,緊急任務!最近ChinaJoy馬上就 要開始了,老闆要求提供一種直觀的方式,可以查看到我們新上線的遊戲中每個服的線上人數。”你看了看日期,不是吧!這哪裡是馬上要開始了,分明是已經開始了!這怎麼可能來得及呢 ?“沒關係的。”你的leader安慰你道:“功能其實很簡單的,介面都已經提供好了,你只

Java設計模式透析:模板方法(Template Method)

今天你還是像往常一樣來上班,一如既往地開始了你的編程工作。專案經理告訴你,今天 想在伺服器端增加一個新功能,希望寫一個方法,能對Book對象進行處理,將Book對象的所有欄位以 XML格式進行封裝,這樣以後可以方便與用戶端進行互動。並且在封裝開始前和結束後要列印日誌, 這樣方便調試和問題定位。沒問題!你覺得這個功能簡直是小菜一碟,非常自信地開始寫起 代碼。Book對象代碼如下:public class Book { private String bookName;

Java設計模式透析:單例(Singleton)

寫軟體的時候經常需要用到列印日誌功能,可以協助你調試和定位問題,項目上線後還可以協助 你分析資料。但是Java原生帶有的System.out.println()方法卻很少在真正的項目開發中使用,甚至 像findbugs等代碼檢查工具還會認為使用System.out.println()是一個bug。為什麼作為Java 新手神器的System.out.println(),到了真正項目開發當中會被唾棄呢?其實只要細細分析,你就會

Java設計模式透析:策略(Strategy)

今天你的leader興緻沖沖地找到你,希望你可以幫他一個小忙,他現在急著要去開會。要幫什麼 忙呢?你很好奇。他對你說,當前你們項目的資料庫中有一張使用者資訊表,裡面存放了很用 戶的資料,現在需要完成一個選擇性查詢使用者資訊的功能。他說會傳遞給你一個包含許多使用者名稱的數 組,你需要根據這些使用者名稱把他們相應的資料都給查出來。這個功能很簡單的嘛,你爽快地 答應了。由於你們項目使用的是MySQL資料庫,你很快地寫出了如下代碼:public class QueryUtil {

Grails1.1和Groovy1.6的Java虛擬機器的記憶體設定和調整

在這篇文章中,我希望回答下列問題:.Grails1.1和Groovy1.6的Java虛擬機器的記憶體設定和調整隱藏在哪裡,以及我們如何來改變它們?.最新的版本和舊的版本之間有什麼不同?.以上這些設定和調整在windows和linux之間的不同需要我們掌握嗎?Grails1.1和Grails1.0.2的Java虛擬機器的記憶體設定如果你運行grails命令,在linux/unix平台,它是執行"$GRAILS_HOME/bin/startGrails"命令;而在windows平

方便 Ajax 與 Java EE 的整合

隨著 Ajax 的興起,對於消解這個熱門技術的謎團並有針對性地處理在它的使用中出現的問題的需求出現了。進階 IT 專家 Patrick Gan 利用這個機會,研究了在 Java™ EE Web 應用程式中引入 Ajax 對整個開發生命週期可能產生的影響。對採納 Ajax 基於非同步通訊的模式會存在的問題保持清醒,有助於踏上有效整合 Ajax 的正確道路。Asynchronous JavaScript + XML (Ajax)是個相當新的術語(有些人說它是舊酒裝新瓶),在不同的

java與javascript的區別

談到JavaScript人們往往會想起Java了,雖然JavaScript與Java有緊密的聯絡,Java 是一種比 JavaScript 更複雜 許多的程式語言,而 JavaScript 則是相當容易瞭解的語言。JavaScript 創作者可以不那麼注重程式技巧,所以許多 Java 的特性在 Java Script

java單元測試如何返回void的方法

大家寫單元測試時候,一定比較不喜歡測試那些返回void的方法,因為大多數是執行一些動作序列,感覺沒法測試,其實,對於這類方法,如果方法的執行是可能發生異常的,(比如方法本身就用throws語句),那麼這種方法就算是void傳回值,也是可以測試的。舉個例子,以下就是我寫的一個為返回void方法進行的單元測試:@Test public void testServeResource() throws Exception { MockWebServer

如何應用Java的BigDecimal類

5.8 BigDecimal類雙精確度浮點型變數double可以處理16位有效數。在實際應用中,需要對更大 或者更小的數進行運算和處理。Java在java.math包中提供的API類BigDecimal, 用來對超過16位有效位的數進行精確的運算。表5.7中列出了BigDecimal類的主 要構造器和方法。表5.7 BigDecimal類的主要構造器和方法構 造 器描

Java反射深度測試

通過反射API構造對象,並使用反射調用方式訪問對象的public/private方法和欄位。package lavasoft.test;/*** 測試的業務類** @author leizhimin 2010-5-6 20:16:10*/public class MyService {         private String msg;         public MyService() {                

JS及J2EE開發中解決亂碼的小方法

1、設定HttpServletResponse.setContextType("text/html; charset=utf-8");2、在web頁面用encodeURIComponent()對查詢字串進行編碼。HttpServletRequest.getParameter (name)對特殊字元被進行替換。(如:+)自動替換成“ ”(空白字串)。3、在進行查詢字串進行傳輸時,盡量對其進行base64編碼,減少網路傳輸量。進行base64編碼之後

This關鍵字在Java語言中的應用

應用一:引用成員變數。Public Class Student{String name; //定義一個成員變數nameprivate void SetName(String name){ //定義一個參數(局部變數)namethis.name=name;

總頁數: 4058 1 .... 2781 2782 2783 2784 2785 .... 4058 Go to: 前往

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.