java變量放到緩存中的機(jī)制如下:
成都創(chuàng)新互聯(lián)從2013年成立,先為郟縣等服務(wù)建站,郟縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為郟縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
Java中有中間緩存變量來(lái)儲(chǔ)存其單個(gè)表達(dá)式的值,而j的自增自減的結(jié)果依然保留在原來(lái)的變量?jī)?chǔ)存區(qū)。因?yàn)楸倔w是j的值,而單個(gè)表達(dá)式的值是中間產(chǎn)生的一個(gè)臨時(shí)變量值,是在整條計(jì)算表達(dá)式結(jié)束后就可以拋棄的值,所以用個(gè)臨時(shí)中間緩存變量在放就可以了。這就可以實(shí)現(xiàn)自增自減運(yùn)算在計(jì)算時(shí)值的加減1順序差異產(chǎn)生的表達(dá)式與本體值差異的兩個(gè)變量?jī)?chǔ)存。
如下代碼:
package?com.qiu.lin.he;
public?class?CeShi?{
public?static?void?main(String[]?args)?{
for?(int?i?=?0;?i??10;?i++)?{
for?(int?j?=?0;?j??10;?j++)?{
int?temp?=?i;//中間變量,進(jìn)行緩存
i?=?j;
j?=?temp;
System.out.println(i?+?"和j的值為"?+?j);
}
}
}
}
結(jié)果如下:
String?id?=?CourtUtils.getPar8("id",request);
Cookie?cookie?=?new?Cookie("printerid",id);
cookie.setMaxAge(30*24*60*60);??//設(shè)置緩存時(shí)間
response.addCookie(cookie);
類(lèi)似于這樣,這是向cookie添加數(shù)據(jù)
利用HTTP協(xié)議清空,HTTP Header 參數(shù)Cache-Control來(lái)清空緩存;
Cache-Control 的參數(shù)包括:
max-age=[單位:秒 seconds] — 設(shè)置緩存最大的有效時(shí)間. 類(lèi)似于 Expires, 但是這個(gè)參數(shù)定義的是時(shí)間大小(比如:60)而不是確定的時(shí)間點(diǎn).單位是[秒 seconds].
s-maxage=[單位:秒 seconds] — 類(lèi)似于 max-age, 但是它只用于公享緩存 (e.g., proxy) .
public — 響應(yīng)會(huì)被緩存,并且在多用戶(hù)間共享。正常情況, 如果要求 HTTP 認(rèn)證,響應(yīng)會(huì)自動(dòng)設(shè)置為 private.
private — 響應(yīng)只能夠作為私有的緩存(e.g., 在一個(gè)瀏覽器中),不能再用戶(hù)間共享。
no-cache — 響應(yīng)不會(huì)被緩存,而是實(shí)時(shí)向服務(wù)器端請(qǐng)求資源。這一點(diǎn)很有用,這對(duì)保證HTTP 認(rèn)證能夠嚴(yán)格地禁止緩存以保證安全性很有用(這是指頁(yè)面與public結(jié)合使用的情況下).既沒(méi)有犧牲緩存的效率,又能保證安全。
no-store — 在任何條件下,響應(yīng)都不會(huì)被緩存,并且不會(huì)被寫(xiě)入到客戶(hù)端的磁盤(pán)里,這也是基于安全考慮的某些敏感的響應(yīng)才會(huì)使用這個(gè)。
must-revalidate — 響應(yīng)在特定條件下會(huì)被重用,以滿(mǎn)足接下來(lái)的請(qǐng)求,但是它必須到服務(wù)器端去驗(yàn)證它是不是仍然是最新的。
Hibernate的二級(jí)緩存同一級(jí)緩存一樣,也是針對(duì)對(duì)象ID來(lái)進(jìn)行緩存。所以說(shuō),二級(jí)緩存的作用范圍是針對(duì)根據(jù)ID獲得對(duì)象的查詢(xún)。
● 在執(zhí)行各種條件查詢(xún)時(shí),如果所獲得的結(jié)果集為實(shí)體對(duì)象的集合,那么就會(huì)把所有的數(shù)據(jù)對(duì)象根據(jù)ID放入到二級(jí)緩存中。
● 當(dāng)Hibernate根據(jù)ID訪問(wèn)數(shù)據(jù)對(duì)象的時(shí)候,首先會(huì)從Session一級(jí)緩存中查找,如果查不到并且配置了二級(jí)緩存,那么會(huì)從二級(jí)緩存中查找,如果還查不到,就會(huì)查詢(xún)數(shù)據(jù)庫(kù),把結(jié)果按照ID放入到緩存中。
● 刪除、更新、增加數(shù)據(jù)的時(shí)候,同時(shí)更新緩存。
java有自己的緩存輸入輸出類(lèi),比如 InputStream,FileOutputStram等 具體可以查看API,
要想自己實(shí)現(xiàn)的話,很簡(jiǎn)單,設(shè)置一個(gè)足夠大的字節(jié)數(shù)組就可以了,把需要的東西放進(jìn)去,就是個(gè)緩存。
在jsp頁(yè)面里:
request.setAttribute("aaa",bbb);
request.getSession().setAttribute("ccc",ddd);
其中,bbb是一個(gè)文本里面的內(nèi)容,ddd是另一個(gè)文本框里的內(nèi)容。
這樣可以暫時(shí)保存下來(lái),等再次返回這個(gè)頁(yè)面的時(shí)候,我們?cè)谟?/p>
得到bbb,request.getAttribute(''aaa''); 然后再把bbb設(shè)置在第一個(gè)文本框里面就好了,達(dá)到了緩存的效果。
如果你用struts框架,里面的html標(biāo)簽庫(kù)已經(jīng)為我們提供了這樣的效果。我們可以直接來(lái)用。
當(dāng)前文章:java代碼中設(shè)置緩存,java自定義緩存
轉(zhuǎn)載來(lái)于:http://chinadenli.net/article4/dsiccie.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、服務(wù)器托管、網(wǎng)站收錄、網(wǎng)站內(nèi)鏈、企業(yè)網(wǎng)站制作、
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)