第一篇:黑馬程序員:Java面試題之BS與CS的聯系與區別
C/S是Client/Server的縮寫。服務器通常采用高性能的PC、工作站或小型機,并采用大型數據庫系統,如Oracle、Sybase、InFORMix或 SQL Server。客戶端需要安裝專用的客戶端軟件。
B/S是Brower/Server的縮寫,客戶機上只要安裝一個瀏覽器(Browser),如Netscape Navigator或Internet Explorer,服務器安裝Oracle、Sybase、InFORMix或 SQL Server等數據庫。在這種結構下,用戶界面完全通過WWW瀏覽器實現,一部分事務邏輯在前端實現,但是主要事務邏輯在服務器端實現。瀏覽器通過Web Server 同數據庫進行數據交互。
C/S 與 B/S 區別:
1.硬件環境不同:
C/S 一般建立在專用的網絡上, 小范圍里的網絡環境, 局域網之間再通過專門服務器提供連接和數據交換服務.B/S 建立在廣域網之上的, 不必是專門的網絡硬件環境,例與電話上網, 租用設備.信息自己管理.有比C/S更強的適應范圍, 一般只要有操作系統和瀏覽器就行
2.對安全要求不同
C/S 一般面向相對固定的用戶群, 對信息安全的控制能力很強.一般高度機密的信息系統采用C/S 結構適宜.可以通過B/S發布部分可公開信息.B/S 建立在廣域網之上, 對安全的控制能力相對弱, 可能面向不可知的用戶。
3.對程序架構不同
C/S 程序可以更加注重流程, 可以對權限多層次校驗, 對系統運行速度可以較少考慮.B/S 對安全以及訪問速度的多重的考慮, 建立在需要更加優化的基礎之上.比C/S有更高的要求 B/S結構的程序架構是發展的趨勢, 從MS的.Net系列的BizTalk 2000 Exchange
2000等, 全面支持網絡的構件搭建的系統.SUN 和IBM推的JavaBean 構件技術等,使 B/S更加成熟.4.軟件重用不同
C/S 程序可以不可避免的整體性考慮, 構件的重用性不如在B/S要求下的構件的重用性好.B/S 對的多重結構,要求構件相對獨立的功能.能夠相對較好的重用.就入買來的餐桌可以再利用,而不是做在墻上的石頭桌子
5.系統維護不同
C/S 程序由于整體性, 必須整體考察, 處理出現的問題以及系統升級.升級難.可能是再做一個全新的系統
B/S 構件組成,方面構件個別的更換,實現系統的無縫升級.系統維護開銷減到最小.用戶從網上自己下載安裝就可以實現升級.6.處理問題不同
C/S 程序可以處理用戶面固定, 并且在相同區域, 安全要求高需求, 與操作系統相關.應該都是相同的系統
B/S 建立在廣域網上, 面向不同的用戶群, 分散地域, 這是C/S無法作到的.與操作系統平臺關系最小.7.用戶接口不同
C/S 多是建立的Window平臺上,表現方法有限,對程序員普遍要求較高
B/S 建立在瀏覽器上, 有更加豐富和生動的表現方式與用戶交流.并且大部分難度減低,減低開發成本.8.信息流不同
C/S 程序一般是典型的中央集權的機械式處理, 交互性相對低
B/S 信息流向可變化, B-B B-C B-G等信息、流向的變化, 更像交易中心。
第二篇:CS與BS架構的區別與優缺點
C/S與B/S架構的區別與優缺點
C/S 架構
C/S 架構是一種典型的兩層架構,其全程是Client/Server,即客戶端服務器端架構,其客戶端包含一個或多個在用戶的電腦上運行的程序,而服務器端有兩種,一種是數據庫服務器端,客戶端通過數據庫連接訪問服務器端的數據;另一種是Socket服務器端,服務器端的程序通過Socket與客戶端的程序通信。
C/S 架構也可以看做是胖客戶端架構。因為客戶端需要實現絕大多數的業務邏輯和界面展示。這種架構中,作為客戶端的部分需要承受很大的壓力,因為顯示邏輯和事務處理都包含在其中,通過與數據庫的交互(通常是SQL或存儲過程的實現)來達到持久化數據,以此滿足實際項目的需要。
C/S 架構的優缺點
優點:
1.C/S架構的界面和操作可以很豐富。
2.安全性能可以很容易保證,實現多層認證也不難。3.由于只有一層交互,因此響應速度較快。
缺點:
1.適用面窄,通常用于局域網中。2.用戶群固定。由于程序需要安裝才可使用,因此不適合面向一些不可知的用戶。3.維護成本高,發生一次升級,則所有客戶端的程序都需要改變。
B/S架構
B/S架構的全稱為Browser/Server,即瀏覽器/服務器結構。Browser指的是Web瀏覽器,極少數事務邏輯在前端實現,但主要事務邏輯在服務器端實現,Browser客戶端,WebApp服務器端和DB端構成所謂的三層架構。B/S架構的系統無須特別安裝,只有Web瀏覽器即可。B/S架構中,顯示邏輯交給了Web瀏覽器,事務處理邏輯在放在了WebApp上,這樣就避免了龐大的胖客戶端,減少了客戶端的壓力。因為客戶端包含的邏輯很少,因此也被成為瘦客戶端。
B/S架構的優缺點
優點:
1)客戶端無需安裝,有Web瀏覽器即可。
2)BS架構可以直接放在廣域網上,通過一定的權限控制實現多客戶訪問的目的,交互性較強。3)BS架構無需升級多個客戶端,升級服務器即可。
缺點:
1)在跨瀏覽器上,BS架構不盡如人意。
2)表現要達到CS程序的程度需要花費不少精力。
3)在速度和安全性上需要花費巨大的設計成本,這是BS架構的最大問題。4)客戶端服務器端的交互是請求-響應模式,通常需要刷新頁面,這并不是客戶樂意看到的。(在Ajax風行后此問題得到了一定程度的緩解)3 | 評論(1)
第三篇:【黑馬程序員】Java之debug總結三
【黑馬程序員】Java之debug總結三
之前寫了“Java之debug總結一”,“Java之debug總結二”共總結了5種debug方式,現在簡紹第6種,不足之處,敬請指正:(源碼在文章末尾處)本文以chrome瀏覽器為例
六.前臺debug 主要:debug js代碼(1.jsp中嵌入的js代碼 2.js文件中的js代碼)第一步:首先創建一個web項目,需要有一個jsp頁面和js,如下圖:
第二步:在test.js,index.jsp中填充內容,如圖示: index.jsp
黑馬程序員濟南中心 編著
test.js
第三步:把項目發布到tomcat服務器中,并啟動tomcat服務器
第四步:在瀏覽器上訪問index.jsp,使用“F12”打開chrome開發者工具,如下圖:
黑馬程序員濟南中心 編著
選中“Source”,點擊,出現如下界面
黑馬程序員濟南中心 編著
點擊“[url=]encode測試[/url]”按鈕進行測試
以上為外部js代碼測試,測試過程中可以修改js的內容,“Ctrl+s”保存后,可以立馬生效,斷點會從第一行從新開始.黑馬程序員濟南中心 編著
內部js測試步驟類似于上面的步驟,只是在選擇資源的時候不是選擇“test.js”,而是選擇“index”,選擇后頁面如下圖:
測試步驟和外部js一樣
比較外部js和內部js的區別: 外部js,可以進行動態的修改, 修改之后立馬生效,并且可以立馬進行測試.內部js,不可以動態修改,用起來有點不方便
以上以我用過的所有debug方式,希望對大家有所幫助
黑馬程序員濟南中心 編著
第四篇:【黑馬程序員】Java之debug總結二
【黑馬程序員濟南】Java之debug總結二
之前詳細描述了4種debug方式,現在簡紹第5種,不足之處,敬請指正:(源碼在文章末尾處)五.maven項目debug
第一步:首先創建一個maven項目,如圖所示:
第二步:debug運行前設置
黑馬程序員濟南中心 編著
執行完上面的步驟,會出現如下彈出框
黑馬程序員濟南中心 編著
Source配置如下
黑馬程序員濟南中心 編著
黑馬程序員濟南中心 編著
黑馬程序員濟南中心 編著
第三步:Debug運行,上面配置完成后,直接debug運行即可,如下圖
第四步:打斷點測試結果
黑馬程序員濟南中心 編著
希望能對不會使用maven進行debug的猿友們有所幫助,第六種方式我會盡快補上
maven-debug.zip
黑馬程序員濟南中心 編著
第五篇:黑馬程序員:Java面試題之數據庫優化方面的經驗
目前部分開發人員面對一個很尷尬的境地:技術到了,但是語言表達能力沒到!很多東西在實踐操作中能夠手到擒來,但是面試過程中卻處處卡殼!很嚴重~
用PreparedStatement 一般來說比Statement性能高:一個sql 發給服務器去執行,涉及步驟:語法檢查、語義分析,編譯,緩存
1.2.3.4.5.“inert into user values(1,1,1)”---二進制
“inert into user values(2,2,2)”---二進制
“inert into user values(?,?,?)”---二進制
有外鍵約束會影響插入和刪除性能,如果程序能夠保證數據的完整性,那在設計數據庫時就去掉外鍵。(比喻:就好比免檢產品,就是為了提高效率,充分相信產品的制造商)
(對于hibernate來說,就應該有一個變化:empleyee->Deptment對象,現在設計時就成了employeeàdeptid)
看mysql幫助文檔子查詢章節的最后部分,例如,根據掃描的原理,下面的子查詢語句要比第二條關聯查詢的效率高:
1.select e.name,e.salary where e.managerid=(select id from employee where name='itcast');
2.select e.name,e.salary,m.name,m.salary from employees e,employees m where
e.managerid = m.id and m.name='itcast';
表中允許適當冗余,譬如,主題帖的回復數量和最后回復時間等
將姓名和密碼單獨從用戶表中獨立出來。這可以是非常好的一對一的案例喲!
sql語句全部大寫,特別是列名和表名都大寫。特別是sql命令的緩存功能,更加需要統一大小寫,sql語句à發給oracle服務器à語法檢查和編譯成為內部指令à緩存和執行指令。根據緩存的特點,不要拼湊條件,而是用?和PreparedStatment
還有索引對查詢性能的改進也是值得關注的。
備注:下面是關于性能的討論舉例
4航班 3個城市
1.2.3.4.5.6.m*n
select * from flight,city where flight.startcityid=city.cityid and city.name='beijing';
m + n
7.8.9.select * from flight where startcityid =(select cityid from city where cityname='beijing');
select flight.id,'beijing',flight.flightTime from flight where startcityid =(select cityid from city where cityname='beijing')