JAVA幾種對(duì)象的解釋
posted @ 2008-10-16 12:52 Sky Yi 閱讀(276) | 評(píng)論 (0) | 編輯 收藏
登高者必自卑,行遠(yuǎn)者必自邇,在這個(gè)世界上,重要的不是你正站在那里,而是你正朝什么方向移動(dòng)......
2008年9月26日 #
posted @ 2008-10-16 12:52 Sky Yi 閱讀(276) | 評(píng)論 (0) | 編輯 收藏
一、數(shù)據(jù)庫(kù)事務(wù)
二、事務(wù)的隔離級(jí)別 1、數(shù)據(jù)庫(kù)事務(wù)的隔離級(jí)別:四種
2、數(shù)據(jù)庫(kù)一般的默認(rèn)隔離離級(jí)別是“讀已提交”,默認(rèn)的事務(wù)隔離級(jí)別下:Insert,update ,delete下的是X鎖, 會(huì)等待事務(wù)完成。通常情況下可以把隔離級(jí)別設(shè)為Read Commited,它能避免臟讀,而且有較好的并發(fā)性能。盡管它會(huì)導(dǎo)致不可重復(fù)讀、虛讀和第二類更新丟失等問題,在可能出現(xiàn)這類問題的個(gè)別場(chǎng)合可以由應(yīng)用程序釆用悲觀鎖或樂觀鎖來控制。
4、另外要提一點(diǎn):SQL標(biāo)準(zhǔn)對(duì)事務(wù)隔離級(jí)別的規(guī)定,是按該級(jí)別不可能發(fā)生什么問題來確定的,不一定會(huì)發(fā)生這樣的問題;所以,不同的數(shù)據(jù)庫(kù)對(duì)事務(wù)隔離的級(jí)別約定不一樣,比如,有的數(shù)據(jù)庫(kù)把 可重復(fù)讀級(jí)別按可串行化來對(duì)待。(lkdlhw_2000個(gè)人理解:各個(gè)數(shù)據(jù)庫(kù)應(yīng)該都遵循四種標(biāo)準(zhǔn)的事務(wù)隔離等級(jí)的定義,但是某些數(shù)據(jù)庫(kù)具體實(shí)現(xiàn)可能不存在四種,因?yàn)榇谢梢员苊獠豢芍貜?fù)讀,因此某些數(shù)據(jù)庫(kù)語法上支持設(shè)置事務(wù)隔離等級(jí)為不可重復(fù)讀,但實(shí)際上是串行化在起作用。也就是說只要該級(jí)別能夠避免不可重復(fù)讀的問題,就可以稱之為不可重復(fù)讀取級(jí)別。) 5、該隔離級(jí)別定義一個(gè)事務(wù)必須與其他事務(wù)所進(jìn)行的資源或數(shù)據(jù)更改相隔離的程度。事務(wù)隔離級(jí)別控制: 三、鎖 1、分類:從數(shù)據(jù)庫(kù)系統(tǒng)的角度來看:分為獨(dú)占鎖(即排它鎖),共享鎖和更新鎖 2、事務(wù)使用鎖,防止其他用戶修改另外一個(gè)還沒有完成的事務(wù)中的數(shù)據(jù)。對(duì)于多用戶系統(tǒng)來說,鎖機(jī)制是必須的。SQL Server有多種鎖,允許事務(wù)鎖定不同的資源。鎖就是保護(hù)指定的資源,不被其他事務(wù)操作。SQL Server有多種鎖,允許事務(wù)鎖定不同的資源。鎖就是保護(hù)指定的資源,不被其他事務(wù)操作。為了最小化鎖的成本,SQL Server自動(dòng)地以與任務(wù)相應(yīng)等級(jí)的鎖來鎖定資源對(duì)象。鎖定比較小的對(duì)象,例如鎖定行,雖然可以提高并發(fā)性,但是卻有較高的開支,因?yàn)槿绻i定許多行,那么需要占有更多的鎖。鎖定比較大的對(duì)象,例如鎖定表,會(huì)大大降低并發(fā)性,因?yàn)殒i定整個(gè)表就限制了其他事務(wù)訪問該表的其他部分,但是成本開支比較低,因?yàn)橹恍杈S護(hù)比較少的鎖。 3、 鎖的特點(diǎn): 4、鎖是定義到sql語句上的,對(duì)數(shù)據(jù)進(jìn)行操作的sql就是:select,Insert,update ,delete。不同的事物隔離即被在執(zhí)行sql的時(shí)候會(huì)向表上發(fā)送不同的鎖。 關(guān)于鎖的更多描述,可以去網(wǎng)上搜索一下。http://www.bitscn.com/windows/sql/200604/1068.html 四、多個(gè)用戶同時(shí)對(duì)數(shù)據(jù)庫(kù)的并發(fā)操作時(shí)會(huì)帶來以下數(shù)據(jù)不一致的問題: 臟讀dirty reads: 為了解決這些問題,數(shù)據(jù)庫(kù)引入了“鎖”的機(jī)制(從數(shù)據(jù)庫(kù)系統(tǒng)的角度來看:分為獨(dú)占鎖(即排它鎖),共享鎖和更新鎖,詳細(xì)內(nèi)容不再描述)。
五、lkdlhw_2000個(gè)人理解(以下問題都是推測(cè),還沒有證實(shí)): 隔離級(jí)別是由鎖來實(shí)現(xiàn)的,之所以出現(xiàn)事務(wù)的隔離級(jí)別相當(dāng)于數(shù)據(jù)庫(kù)開發(fā)商根據(jù)一般的業(yè)務(wù)需求實(shí)現(xiàn)定義好的一組鎖使用的規(guī)則,便于我們時(shí)候,當(dāng)我們將事務(wù)隔離級(jí)別定義到某一級(jí)上后如果不能滿足需求,我們還可以自行定義sql的鎖來覆蓋事務(wù)隔離級(jí)別默認(rèn)的鎖機(jī)制? 鎖存在兩個(gè)問題:一個(gè)是鎖的粒度,一個(gè)是鎖的時(shí)間,鎖的時(shí)間應(yīng)該包括兩種一種是sql執(zhí)行完就釋放鎖,領(lǐng)一中是事務(wù)結(jié)束后釋放鎖 六、參考文章 http://www.es-ivision.com/Channel-4-10-108-0.html 七、事務(wù)隔離級(jí)別的例子 1. Read Uncommitted:最低等級(jí)的事務(wù)隔離,僅僅保證了讀取過程中不會(huì)讀取到非法數(shù)據(jù)。上訴4種不確定情況均有可能發(fā)生。 設(shè)置事務(wù)級(jí)別:SET TRANSACTION ISOLATION LEVEL 1、并發(fā)的影響:http://technet.microsoft.com/zh-cn/library/ms190805.aspx 該文章列出了并發(fā)引起的四種影響:丟失更新、臟讀(未提交的依賴關(guān)系)、不可重復(fù)讀(不一致的分析)、幻讀 2、并發(fā)控制類型:http://technet.microsoft.com/zh-cn/library/ms189132.aspx 當(dāng)許多人試圖同時(shí)修改數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),必須實(shí)現(xiàn)一個(gè)控制系統(tǒng),使一個(gè)人所做的修改不會(huì)對(duì)他人所做的修改產(chǎn)生負(fù)面影響。這稱為并發(fā)控制。并發(fā)控制類型分為兩大類:樂觀并發(fā)控制和悲觀并發(fā)控制 3、數(shù)據(jù)庫(kù)引擎中的隔離級(jí)別:http://technet.microsoft.com/zh-cn/library/ms189122.aspx 1)講到了事務(wù)隔離級(jí)別控制的內(nèi)容: 事務(wù)隔離級(jí)別控制: 讀取數(shù)據(jù)時(shí)是否占用鎖以及所請(qǐng)求的鎖類型。 占用讀取鎖的時(shí)間。 引用其他事務(wù)修改的行的讀取操作是否: 在該行上的排他鎖被釋放之前阻塞其他事務(wù)。 檢索在啟動(dòng)語句或事務(wù)時(shí)存在的行的已提交版本。 讀取未提交的數(shù)據(jù)修改。 2)列出了事務(wù)的隔離級(jí)別: 未提交讀(隔離事務(wù)的最低級(jí)別,只能保證不讀取物理上損壞的數(shù)據(jù)) 已提交讀(數(shù)據(jù)庫(kù)引擎的默認(rèn)級(jí)別) 可重復(fù)讀 可序列化(隔離事務(wù)的最高級(jí)別,事務(wù)之間完全隔離) 3)選擇事務(wù)隔離級(jí)別不影響為保護(hù)數(shù)據(jù)修改而獲取的鎖。事務(wù)總是在其修改的任何數(shù)據(jù)上獲取排他鎖并在事務(wù)完成之前持有該鎖,不管為該事務(wù)設(shè)置了什么樣的隔離級(jí)別。對(duì)于讀取操作,事務(wù)隔離級(jí)別主要定義保護(hù)級(jí)別,以防受到其他事務(wù)所做更改的影響。 4、SET TRANSACTION ISOLATION LEVEL (Transact-SQL) 設(shè)置事務(wù)隔離級(jí)別http://technet.microsoft.com/zh-cn/library/ms173763.aspx 該選項(xiàng)的作用與在事務(wù)內(nèi)所有 SELECT 語句中的所有表上設(shè)置 HOLDLOCK 相同 5、總結(jié): 通過以上幾篇文章基本上可以了解數(shù)據(jù)庫(kù)事務(wù)和鎖之間的關(guān)系。數(shù)據(jù)庫(kù)事務(wù)隔級(jí)別也是由鎖機(jī)制來最實(shí)現(xiàn)的。要想了解關(guān)于鎖的更深層析的內(nèi)容還需要專門學(xué)習(xí)鎖的相關(guān)知識(shí)。 |
posted @ 2008-10-11 13:11 Sky Yi 閱讀(5561) | 評(píng)論 (1) | 編輯 收藏
posted @ 2008-10-08 14:36 Sky Yi 閱讀(709) | 評(píng)論 (0) | 編輯 收藏
建立jsp頁(yè)面
第一行引入了struts2的標(biāo)簽庫(kù),在之后的頁(yè)面中可以使用s標(biāo)簽了。這行在幾乎所有的struts2應(yīng)用的jsp頁(yè)面中都會(huì)出現(xiàn)
posted @ 2008-10-08 14:31 Sky Yi 閱讀(488) | 評(píng)論 (0) | 編輯 收藏
posted @ 2008-10-08 13:56 Sky Yi 閱讀(640) | 評(píng)論 (0) | 編輯 收藏
MyEclipse 快捷鍵
(1)Ctrl+M切換窗口的大小
(2)Ctrl+Q跳到最后一次的編輯處
(3)F2當(dāng)鼠標(biāo)放在一個(gè)標(biāo)記處出現(xiàn)Tooltip時(shí)候按F2則把鼠標(biāo)移開時(shí)Tooltip還會(huì)顯示即Show Tooltip Description。
F3跳到聲明或定義的地方。
F5單步調(diào)試進(jìn)入函數(shù)內(nèi)部。
F6單步調(diào)試不進(jìn)入函數(shù)內(nèi)部,如果裝了金山詞霸2006則要把“取詞開關(guān)”的快捷鍵改成其他的。
F7由函數(shù)內(nèi)部返回到調(diào)用處。
F8一直執(zhí)行到下一個(gè)斷點(diǎn)。
(4)Ctrl+Pg~對(duì)于XML文件是切換代碼和圖示窗口
(5)Ctrl+Alt+I看Java文件中變量的相關(guān)信息
(6)Ctrl+PgUp對(duì)于代碼窗口是打開“Show List”下拉框,在此下拉框里顯示有最近曾打開的文件
(7)Ctrl+/ 在代碼窗口中是這種//~注釋。
Ctrl+Shift+/ 在代碼窗口中是這種/*~*/注釋,在JSP文件窗口中是<!--~-->。
(8)Alt+Shift+O(或點(diǎn)擊工具欄中的Toggle Mark Occurrences按鈕) 當(dāng)點(diǎn)擊某個(gè)標(biāo)記時(shí)可使本頁(yè)面中其他地方的此標(biāo)記黃色凸顯,并且窗口的右邊框會(huì)出現(xiàn)白色的方塊,點(diǎn)擊此方塊會(huì)跳到此標(biāo)記處。
(9)右擊窗口的左邊框即加斷點(diǎn)的地方選Show Line Numbers可以加行號(hào)。
(10)Ctrl+I格式化激活的元素Format Active Elements。
Ctrl+Shift+F格式化文件Format Document。
(11)Ctrl+S保存當(dāng)前文件。
Ctrl+Shift+S保存所有未保存的文件。
(12)Ctrl+Shift+M(先把光標(biāo)放在需導(dǎo)入包的類名上) 作用是加Import語句。
Ctrl+Shift+O作用是缺少的Import語句被加入,多余的Import語句被刪除。
(13)Ctrl+Space提示鍵入內(nèi)容即Content Assist,此時(shí)要將輸入法中Chinese(Simplified)IME-Ime/Nonlme Toggle的快捷鍵(用于切換英文和其他文字)改成其他的。
Ctrl+Shift+Space提示信息即Context Information。
(14)雙擊窗口的左邊框可以加斷點(diǎn)。
(15)Ctrl+D刪除當(dāng)前行。
---待續(xù)
[以下為轉(zhuǎn)載]
Eclipse快捷鍵大全
Ctrl+1 快速修復(fù)(最經(jīng)典的快捷鍵,就不用多說了)
Ctrl+D: 刪除當(dāng)前行
Ctrl+Alt+↓ 復(fù)制當(dāng)前行到下一行(復(fù)制增加)
Ctrl+Alt+↑ 復(fù)制當(dāng)前行到上一行(復(fù)制增加)
Alt+↓ 當(dāng)前行和下面一行交互位置(特別實(shí)用,可以省去先剪切,再粘貼了)
Alt+↑ 當(dāng)前行和上面一行交互位置(同上)
Alt+← 前一個(gè)編輯的頁(yè)面
Alt+→ 下一個(gè)編輯的頁(yè)面(當(dāng)然是針對(duì)上面那條來說了)
Alt+Enter 顯示當(dāng)前選擇資源(工程,or 文件 or文件)的屬性
Shift+Enter 在當(dāng)前行的下一行插入空行(這時(shí)鼠標(biāo)可以在當(dāng)前行的任一位置,不一定是最后)
Shift+Ctrl+Enter 在當(dāng)前行插入空行(原理同上條)
Ctrl+Q 定位到最后編輯的地方
Ctrl+L 定位在某行 (對(duì)于程序超過100的人就有福音了)
Ctrl+M 最大化當(dāng)前的Edit或View (再按則反之)
Ctrl+/ 注釋當(dāng)前行,再按則取消注釋
Ctrl+O 快速顯示 OutLine
Ctrl+T 快速顯示當(dāng)前類的繼承結(jié)構(gòu)
Ctrl+W 關(guān)閉當(dāng)前Editer
Ctrl+K 參照選中的Word快速定位到下一個(gè)
Ctrl+E 快速顯示當(dāng)前Editer的下拉列表(如果當(dāng)前頁(yè)面沒有顯示的用黑體表示)
Ctrl+/(小鍵盤) 折疊當(dāng)前類中的所有代碼
Ctrl+×(小鍵盤) 展開當(dāng)前類中的所有代碼
Ctrl+Space 代碼助手完成一些代碼的插入(但一般和輸入法有沖突,可以修改輸入法的熱鍵,也可以暫用Alt+/來代替)
Ctrl+Shift+E 顯示管理當(dāng)前打開的所有的View的管理器(可以選擇關(guān)閉,激活等操作)
Ctrl+J 正向增量查找(按下Ctrl+J后,你所輸入的每個(gè)字母編輯器都提供快速匹配定位到某個(gè)單詞,如果沒有,則在stutes line中顯示沒有找到了,查一個(gè)單詞時(shí),特別實(shí)用,這個(gè)功能Idea兩年前就有了)
Ctrl+Shift+J 反向增量查找(和上條相同,只不過是從后往前查)
Ctrl+Shift+F4 關(guān)閉所有打開的Editer
Ctrl+Shift+X 把當(dāng)前選中的文本全部變味小寫
Ctrl+Shift+Y 把當(dāng)前選中的文本全部變?yōu)樾?/p>
Ctrl+Shift+F 格式化當(dāng)前代碼
Ctrl+Shift+P 定位到對(duì)于的匹配符(譬如{}) (從前面定位后面時(shí),光標(biāo)要在匹配符里面,后面到前面,則反之)
下面的快捷鍵是重構(gòu)里面常用的,本人就自己喜歡且常用的整理一下(注:一般重構(gòu)的快捷鍵都是Alt+Shift開頭的了)
Alt+Shift+R 重命名 (是我自己最愛用的一個(gè)了,尤其是變量和類的Rename,比手工方法能節(jié)省很多勞動(dòng)力)
Alt+Shift+M 抽取方法 (這是重構(gòu)里面最常用的方法之一了,尤其是對(duì)一大堆泥團(tuán)代碼有用)
Alt+Shift+C 修改函數(shù)結(jié)構(gòu)(比較實(shí)用,有N個(gè)函數(shù)調(diào)用了這個(gè)方法,修改一次搞定)
Alt+Shift+L 抽取本地變量( 可以直接把一些魔法數(shù)字和字符串抽取成一個(gè)變量,尤其是多處調(diào)用的時(shí)候)
Alt+Shift+F 把Class中的local變量變?yōu)閒ield變量 (比較實(shí)用的功能)
Alt+Shift+I 合并變量(可能這樣說有點(diǎn)不妥Inline)
Alt+Shift+V 移動(dòng)函數(shù)和變量(不怎么常用)
Alt+Shift+Z 重構(gòu)的后悔藥(Undo)
posted @ 2008-09-26 20:41 Sky Yi 閱讀(453) | 評(píng)論 (0) | 編輯 收藏