SSH三大框架的工作原理及流程

Hibernate工作原理及為什么要用?

原理:
1.通過Configuration().configure();讀取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mapping resource="com/xx/User.hbm.xml"/>讀取并解析映射信息
3.通過config.buildSessionFactory();//創建SessionFactory
4.sessionFactory.openSession();//打開Sesssion
5.session.beginTransaction();//創建事務Transation
6.persistent operate持久化操作
7.session.getTransaction().commit();//提交事務
8.關閉Session
9.關閉SesstionFactory

為什么要用:
1. 對JDBC訪問數據庫的代碼做了封裝,大大簡化了數據訪問層繁瑣的反復性代碼。

2. Hibernate是一個基于JDBC的主流持久化框架,是一個優秀的ORM實現。他非常大程度的簡化DAO層的編碼工作

3. hibernate使用Java反射機制,而不是字節碼增強程序來實現透明性。

4. hibernate的性能非常好,由于它是個輕量級框架。映射的靈活性非常出色。它支持各種關系數據庫,從一對一到多對多的各種復雜關系。
?
2. Hibernate是怎樣延遲載入?
1. Hibernate2延遲載入實現:a)實體對象 b)集合(Collection)

2. Hibernate3 提供了屬性的延遲載入功能

當Hibernate在查詢數據的時候,數據并沒有存在與內存中,當程序真正對數據的操作時,對象才存在與內存中,就實現了延遲載入,他節省了server的內存開銷,從而提高了server的性能。

3.Hibernate中如何實現類之間的關系?(如:一對多、多對多的關系)

類與類之間的關系主要體如今表與表之間的關系進行操作,它們都市對對象進行操作,我們程序中把全部的表與類都映射在一起,它們通過配置文件里的many-to-one、one-to-many、many-to-many、

4. 說下Hibernate的緩存機制

1. 內部緩存存在Hibernate中又叫一級緩存,屬于應用事物級緩存

2. 二級緩存:
a) 應用及緩存
b) 分布式緩存
條件:數據不會被第三方改動、數據大小在可接受范圍、數據更新頻率低、同一數據被系統頻繁使用、非 重要數據
c) 第三方緩存的實現
一級緩存:session級的緩存也叫事務級的緩存,僅僅緩存實體,生命周期和session一致。不能對其進行管理。

不用顯示的調用。

二級緩存:sessionFactory緩存,也叫進程級的緩存,使用第3方插件實現的,也值緩存實體,生命周期和sessionFactory一致,能夠進行管理。

首先配置第3放插件,我們用的是EHCache,在hibernate.cfg.xml文件里增加

<property name="hibernate.cache.user_second_level_cache">true</property>

在映射中也要顯示的調用,<cache usage="read-only"/>

二級緩存之查詢緩存:對普通屬性進行緩存。假設關聯的表發生了改動,那么查詢緩存的生命周期也結束了。

在程序中必須手動啟用查詢緩存:query.setCacheable(true);/

5. Hibernate的查詢方式
Sql、Criteria,object comptosition
Hql:
1、 屬性查詢
2、 參數查詢、命名參數查詢
3、 關聯查詢
4、 分頁查詢
5、 統計函數

6. 怎樣優化Hibernate?
1.使用雙向一對多關聯,不使用單向一對多
2.靈活使用單向一對多關聯
3.不用一對一,用多對一代替
4.配置對象緩存,不使用集合緩存
5.一對多集合使用Bag,多對多集合使用Set
6. 繼承類使用顯式多態
7. 表字段要少,表關聯不要怕多,有二級緩存撐腰


1.Hibernate有哪幾種查詢數據的方式

???????? (1)導航對象圖查詢

????? (2)OID查詢

????? (3)HQL

????? (4)QBC

????? (5)本地SQL

2.load()和get()的差別

?

load載入方法:

Java代碼

Users user = (Users)session.load(Users.class, userId);????

Users user = (Users)session.load(Users.class, userId);

get載入方法:

Java代碼

Users user = (Users)session.get(Users.class, userId);??

Users user = (Users)session.get(Users.class, userId);

?

兩載入方法差別:

差別1:假設數據庫中,沒有userId的對象。假設通過get方法載入,則返回的是一個null;假設通過load載入,則返回一個代理對象,假設后面代碼假設調用user對象的某個屬性(比方user.getPassword())會拋出異常:org.hibernate.ObjectNotFoundException;

差別2:load支持延遲載入,get不支持延遲載入。

也就是說:

Java代碼

Users user = (Users)session.load(Users.class, userId);??

Users user = (Users)session.load(Users.class, userId);

這句代碼不會去運行數據庫查詢,僅僅實用到user時才會去運行數據庫查詢。

而:

Java代碼

Users user = (Users)session.get(Users.class, userId);??

Users user = (Users)session.get(Users.class, userId);

則馬上去運行數據庫查詢。 所以Users user = (Users)session.load(Users.class, userId);不會運行不論什么sql。

注意:

Java代碼

Users user = (Users)session.load(Users.class, userId);???
System.out.println(user.getId());??

Users user = (Users)session.load(Users.class, userId);

System.out.println(user.getId());

上面這2句代碼,不會去運行數據庫操作。由于load后會在hibernate的一級緩存里存放一個map對象,該map的key就是userId的值,可是當你getId()時,它會去一級緩存里拿map的key值,而不去運行數據庫查詢。所以不會報不論什么錯。不會運行不論什么數據庫操作。

?
闡述struts2的運行流程。Struts 2框架本身大致能夠分為3個部分:核心控制器FilterDispatcher、業務控制器Action和用戶實現的企業業務邏輯組件。核心控制器FilterDispatcher是Struts 2框架的基礎,包括了框架內部的控制流程和處理機制。業務控制器Action和業務邏輯組件是須要用戶來自己實現的。用戶在開發Action和業務邏輯組件的同一時候,還須要編寫相關的配置文件,供核心控制器FilterDispatcher來使用。 Struts 2的工作流程相對于Struts 1要簡單,與WebWork框架基本同樣,所以說Struts 2是WebWork的升級版本號。基本簡要流程例如以下:1、client瀏覽器發出HTTP請求。2、依據web.xml配置,該請求被FilterDispatcher接收。3、依據struts.xml配置,找到須要調用的Action類和方法, 并通過IoC方式,將值注入給Aciton。4、Action調用業務邏輯組件處理業務邏輯,這一步包括表單驗證。5、Action運行完成,依據struts.xml中的配置找到相應的返回結果result,并跳轉到相應頁面。6、返回HTTP響應到client瀏覽器。

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/alli0968/archive/2009/06/01/4231237.aspx

?

?

. Struts工作機制?為什么要使用Struts?
工作機制:
Struts的工作流程:
在web應用啟動時就會載入初始化ActionServlet,ActionServlet從
struts-config.xml文件里讀取配置信息,把它們存放到各種配置對象
當ActionServlet接收到一個客戶請求時,將運行例如以下流程.
-(1)檢索和用戶請求匹配的ActionMapping實例,假設不存在,就返回請求路徑無效信息;
-(2)假設ActionForm實例不存在,就創建一個ActionForm對象,把客戶提交的表單數據保存到ActionForm對象中;
-(3)依據配置信息決定是否須要表單驗證.假設須要驗證,就調用ActionForm的validate()方法;
-(4)假設ActionForm的validate()方法返回null或返回一個不包括ActionMessage的ActuibErrors對象, 就表示表單驗證成功;
-(5)ActionServlet依據ActionMapping所包括的映射信息決定將請求轉發給哪個Action,假設對應的 Action實例不存在,就先創建這個實例,然后調用Action的execute()方法;
-(6)Action的execute()方法返回一個ActionForward對象,ActionServlet在把客戶請求轉發給 ActionForward對象指向的JSP組件;
-(7)ActionForward對象指向JSP組件生成動態網頁,返回給客戶;

為什么要用:
JSP、Servlet、JavaBean技術的出現給我們構建強大的企業應用系統提供了可能。但用這些技術構建的系統很的繁亂,所以在此之上,我們須要一個規則、一個把這些技術組織起來的規則,這就是框架,Struts便應運而生。

基于Struts開發的應用由3類組件構成:控制器組件、模型組件、視圖組件

8. Struts的validate框架是怎樣驗證的?
在struts配置文件里配置詳細的錯誤提示,再在FormBean中的validate()方法詳細調用。

9. 說下Struts的設計模式
MVC模式: web應用程序啟動時就會載入并初始化ActionServler。用戶提交表單時,一個配置好的ActionForm對象被創建,并被填入表單對應的數據,ActionServler依據Struts-config.xml文件配置好的設置決定是否須要表單驗證,假設須要就調用ActionForm的 Validate()驗證后選擇將請求發送到哪個Action,假設Action不存在,ActionServlet會先創建這個對象,然后調用 Action的execute()方法。Execute()從ActionForm對象中獲取數據,完畢業務邏輯,返回一個ActionForward對象,ActionServlet再把客戶請求轉發給ActionForward對象指定的jsp組件,ActionForward對象指定的jsp生成動態的網頁,返回給客戶。

10. spring工作機制及為什么要用?
1.spring mvc請全部的請求都提交給DispatcherServlet,它會托付應用系統的其它模塊負責負責對請求進行真正的處理工作。
2.DispatcherServlet查詢一個或多個HandlerMapping,找到處理請求的Controller.
3.DispatcherServlet請請求提交到目標Controller
4.Controller進行業務邏輯處理后,會返回一個ModelAndView
5.Dispathcher查詢一個或多個ViewResolver視圖解析器,找到ModelAndView對象指定的視圖對象
6.視圖對象負責渲染返回給client。

為什么用:
{AOP 讓開發者能夠創建非行為性的關注點,稱為橫切關注點,并將它們插入到應用程序代碼中。使用 AOP 后,公共服務 (比方日志、持久性、事務等)就能夠分解成方面并應用到域對象上,同一時候不會添加域對象的對象模型的復雜性。
IOC 同意創建一個能夠構造對象的應用環境,然后向這些對象傳遞它們的協作對象。正如單詞 倒置 所表明的,IOC 就像反 過來的 JNDI。沒有使用一堆抽象工廠、服務定位器、單元素(singleton)和直接構造(straight construction),每個對象都是用其協作對象構造的。因此是由容器管理協作對象(collaborator)。
Spring即使一個AOP框架,也是一IOC容器。 Spring 最好的地方是它有助于您替換對象。有了 Spring,僅僅要用 JavaBean 屬性和配置文件增加依賴性(協作對象)。然后能夠非常easy地在須要時替換具有類似接口的協作對象。}

?


Spring 框架是一個分層架構,由 7 個定義良好的模塊組成。Spring 模塊構建在核心容器之上,核心容器定義了創建、配置和管理 bean 的方式,如圖 1 所看到的。

組成 Spring 框架的每一個模塊(或組件)都能夠單獨存在,或者與其它一個或多個模塊聯合實現。每一個模塊的功能例如以下:

☆ 核心容器:核心容器提供 Spring 框架的基本功能。核心容器的主要組件是 BeanFactory,它是工廠模式的實現。BeanFactory 使用控制反轉 (IOC)模式將應用程序的配置和依賴性規范與實際的應用程序代碼分開。

☆ Spring 上下文:Spring 上下文是一個配置文件,向 Spring 框架提供上下文信息。Spring 上下文包含企業服務,比如 JNDI、EJB、電子郵件、國際化、校驗和調度功能。

☆ Spring AOP:通過配置管理特性,Spring AOP 模塊直接將面向方面的編程功能集成到了 Spring 框架中。所以,能夠非常easy地使 Spring 框架管理的不論什么對象支持 AOP。Spring AOP 模塊為基于 Spring 的應用程序中的對象提供了事務管理服務。通過使用 Spring AOP,不用依賴 EJB 組件,就能夠將聲明性事務管理集成到應用程序中。

☆ Spring DAO:JDBC DAO 抽象層提供了有意義的異常層次結構,可用該結構來管理異常處理和不同數據庫供應商拋出的錯誤消息。異常層次結構簡化了錯誤處理,而且極大地減少了須要編寫的異常代碼數量(比如打開和關閉連接)。Spring DAO 的面向 JDBC 的異常遵從通用的 DAO 異常層次結構。

☆ Spring ORM:Spring 框架插入了若干個 ORM 框架,從而提供了 ORM 的對象關系工具,當中包含 JDO、Hibernate 和 iBatis SQL Map。全部這些都遵從 Spring 的通用事務和 DAO 異常層次結構。

☆ Spring Web 模塊:Web 上下文模塊建立在應用程序上下文模塊之上,為基于 Web 的應用程序提供了上下文。所以,Spring 框架支持與 Jakarta Struts 的集成。Web 模塊還簡化了處理多部分請求以及將請求參數綁定到域對象的工作。

☆ Spring MVC 框架:MVC 框架是一個全功能的構建 Web 應用程序的 MVC 實現。通過策略接口,MVC 框架變成為高度可配置的,MVC 容納了大量視圖技術,當中包含 JSP、Velocity、Tiles、iText 和 POI。

Spring 框架的功能能夠用在不論什么 J2EE server中,大多數功能也適用于不受管理的環境。Spring 的核心要點是:支持不綁定到特定 J2EE 服務的可重用業務和數據訪問對象。毫無疑問,這種對象能夠在不同 J2EE 環境 (Web 或 EJB)、獨立應用程序、測試環境之間重用。

IOC 和 AOP

控制反轉模式(也稱作依賴性介入)的基本概念是:不創建對象,可是描寫敘述創建它們的方式。在代碼中不直接與對象和服務連接,但在配置文件里描寫敘述哪一個組件須要哪一項服務。容器(在 Spring 框架中是 IOC 容器) 負責將這些聯系在一起。

在典型的 IOC 場景中,容器創建了全部對象,并設置必要的屬性將它們連接在一起,決定什么時間調用方法。下表列出了 IOC 的一個實現模式。

?


Spring 框架的 IOC 容器採用類型 2 和類型3 實現。


面向方面的編程

面向方面的編程,即 AOP,是一種編程技術,它同意程序猿對橫切關注點或橫切典型的職責分界線的行為(比如日志和事務管理)進行模塊化。AOP 的核心構造是方面,它將那些影響多個類的行為封裝到可重用的模塊中。

AOP 和 IOC 是補充性的技術,它們都運用模塊化方式解決企業應用程序開發中的復雜問題。在典型的面向對象開發方式中,可能要將日志記錄語句放在全部方法和 Java 類中才干實現日志功能。在 AOP 方式中,能夠反過來將日志服務模塊化,并以聲明的方式將它們應用到須要日志的組件上。當然,優勢就是 Java 類不須要知道日志服務的存在,也不須要考慮相關的代碼。所以,用 Spring AOP 編寫的應用程序代碼是松散耦合的。

AOP 的功能全然集成到了 Spring 事務管理、日志和其它各種特性的上下文中。

IOC 容器

Spring 設計的核心是 org.springframework.beans 包,它的設計目標是與 JavaBean 組件一起使用。這個包通常不是由用戶直接使用,而是由server將其用作其它多數功能的底層中介。下一個最高級抽象是 BeanFactory 接口,它是工廠設計模式的實現,同意通過名稱創建和檢索對象。BeanFactory 也能夠管理對象之間的關系。

BeanFactory 支持兩個對象模型。

□ 單態 模型提供了具有特定名稱的對象的共享實例,能夠在查詢時對其進行檢索。Singleton 是默認的也是最經常使用的對象模型。對于無狀態服務對象非常理想。

□ 原型 模型確保每次檢索都會創建單獨的對象。在每一個用戶都須要自己的對象時,原型模型最適合。

bean 工廠的概念是 Spring 作為 IOC 容器的基礎。IOC 將處理事情的責任從應用程序代碼轉移到框架。正如我將在下一個演示樣例中演示的那樣,Spring 框架使用 JavaBean 屬性和配置數據來指出必須設置的依賴關系。

BeanFactory 接口

由于 org.springframework.beans.factory.BeanFactory 是一個簡單接口,所以能夠針對各種底層存儲方法實現。最經常使用的 BeanFactory 定義是 XmlBeanFactory,它依據 XML 文件里的定義裝入 bean,如清單 1 所看到的。

清單 1. XmlBeanFactory

BeanFactory factory = new XMLBeanFactory(new FileInputSteam("mybean.xml"));

在 XML 文件里定義的 Bean 是被消極載入的,這意味在須要 bean 之前,bean 本身不會被初始化。要從 BeanFactory 檢索 bean,僅僅需調用 getBean() 方法,傳入將要檢索的 bean 的名稱就可以,如清單 2 所看到的。

清單 2. getBean()

MyBean mybean = (MyBean) factory.getBean("mybean");

每一個 bean 的定義都能夠是 POJO (用類名和 JavaBean 初始化屬性定義) 或 FactoryBean。FactoryBean 接口為使用 Spring 框架構建的應用程序加入了一個間接的級別。

IOC 演示樣例

理解控制反轉最簡單的方式就是看它的實際應用。在對由三部分組成的 Spring 系列 的第 1 部分進行總結時,我使用了一個演示樣例,演示了怎樣通過 Spring IOC 容器注入應用程序的依賴關系(而不是將它們構建進來)。

我用開啟在線信用帳戶的用例作為起點。對于該實現,開啟信用帳戶要求用戶與下面服務進行交互:

☆ 信用級別評定服務,查詢用戶的信用歷史信息。

☆ 遠程信息鏈接服務,插入客戶信息,將客戶信息與信用卡和銀行信息連接起來,以進行自己主動借記(假設須要的話)。

☆ 電子郵件服務,向用戶發送有關信用卡狀態的電子郵件。

三個接口

對于這個演示樣例,我如果服務已經存在,理想的情況是用松散耦合的方式把它們集成在一起。下面清單顯示了三個服務的應用程序接口。

清單 3. CreditRatingInterface

public interface CreditRatingInterface {
public boolean getUserCreditHistoryInformation(ICustomer iCustomer);
}

清單 3 所看到的的信用級別評定接口提供了信用歷史信息。它須要一個包括客戶信息的 Customer 對象。該接口的實現是由 CreditRating 類提供的。

清單 4. CreditLinkingInterface

public interface CreditLinkingInterface {

public String getUrl();
public void setUrl(String url);
public void linkCreditBankAccount() throws Exception ;

}

信用鏈接接口將信用歷史信息與銀行信息(假設須要的話)連接在一起,并插入用戶的信用卡信息。信用鏈接接口是一個遠程服務,它的查詢是通過 getUrl() 方法進行的。URL 由 Spring 框架的 bean 配置機制設置,我稍后會討論它。該接口的實現是由 CreditLinking 類提供的。

清單 5. EmailInterface

public interface EmailInterface {

public void sendEmail(ICustomer iCustomer);
public String getFromEmail();
public void setFromEmail(String fromEmail) ;
public String getPassword();
public void setPassword(String password) ;
public String getSmtpHost() ;
public void setSmtpHost(String smtpHost);
public String getUserId() ;
public void setUserId(String userId);

轉載請注明出處:http://www.cnblogs.com/javaNewegg/archive/2011/08/28/2156521.html

轉載于:https://www.cnblogs.com/bhlsheji/p/4356823.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/259229.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/259229.shtml
英文地址,請注明出處:http://en.pswp.cn/news/259229.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

二分查找法(遞歸與循環實現)

問題&#xff1a; 給定一個排序數組和一個數k&#xff0c;要求找到第一個k的位置和最后一個k的位置 解析&#xff1a; 由于給定的數組是從小到大排序的&#xff0c;故可以按照二分查找法來找&#xff0c;下面分別從遞歸和循環兩種方法來闡述&#xff1a; //遞歸方法 int GetF…

電腦顯示器變色_電腦維修(看完后就可以開一家自己的電腦維修店!)

第二部分 常見故障判斷本部分將計算機從開機一直到關機期間的故障進行分類。每一類的判斷、定位過程都是第一部分中維修判斷一節的有機組成部分&#xff0c;即不論使用什么方法或不論去判斷什么內容&#xff0c;這兩部分總是相互結合使用的。以下各故障類型中所列的故障現象只是…

linux運維基礎篇 unit7

unit 71.進程定義進程就是cpu未完成的工作2.ps命令psa ##關于當前環境的所有進程x ##與當前環境無關的所有進程f ##顯示進程從屬關系e ##顯示進程調用環境工具的詳細信息l ##長列表顯示進程的詳細信息u ##顯…

運行快捷指令無法連接服務器失敗,快捷指令打不開怎么回事?iPhone快捷指令無法載入的解決辦法...

經常會有果粉朋友反饋&#xff0c;自己的 iPhone 快捷指令打不開。具體表現是&#xff0c;在 Safari 瀏覽器中&#xff0c;打開快捷指令下載安裝頁面&#xff0c;點擊“獲取捷徑”后&#xff0c;一直卡在快捷指令中心正在載入頁面&#xff0c;等半天都無法正常載入需要安裝的快…

Bigpipe---FaceBook使用的頁面加載技術

BigPipe&#xff08;FaceBook使用的頁面加載技術&#xff09; 理論部分&#xff1a;用戶輸入域名發送請求到服務端&#xff0c;服務端組合出需要的業務數據返回給客戶端&#xff0c;這一過程是現在網頁請求最基本傳統的方式了。 好處&#xff1a;只做了一次http請求&#xff0c…

maven搭建多模塊項目和管理

在eclipse下構建maven項目&#xff0c;該項目由多個子模塊組成。 1.創建一個父項目 NEW -->project-->maven-->maven Project&#xff0c;點擊下一步&#xff0c;進入new maven Project的Select project name and location界面 &#xff0c;什么也不做&#xff0c;直接…

shsh驗證服務器,教你從Cydia上取出SHSH并驗證有效性!

原標題&#xff1a;教你從Cydia上取出SHSH并驗證有效性&#xff01;今天在第一篇內容中和大家說了如何讓32位設備進行降級&#xff0c;但這其中有個很重要的問題就是如何提取出對應設備的SHSH&#xff0c;雖然說本篇內容并不是對所有人都有效&#xff0c;但至少多了一個可選擇的…

Discuz!$_G變量的使用方法

1&#xff0c;G變量的使用方法&#xff1a;例如&#xff1a;$_G[style][boardlogo]風格變量篇$_G[style] > Array(官方模板區 cr180整理$_G[style][styleid] > 當前風格ID$_G[style][name] > 當前風格名$_G[style][templateid] > 當前模板體系$_G[style][tpldir] &…

n!后面有多少個0(轉載)

我的思路&#xff1a; 從”那些數相乘可以得到10”這個角度&#xff0c;問題就變得比較的簡單了。 首先考慮&#xff0c;如果N的階乘為K和10的M次方的乘積&#xff08;N&#xff01;K?10M&#xff09;&#xff0c;那么N!末尾就有M個0。 如果將N的階乘分解后&#xff0c;那么…

ico的尺寸_批量壓縮、加水印、調整尺寸……用這 6 款 Mac 圖片工具一鍵解決

不論是寫文章、做教程&#xff0c;還是處理攝影作品、上傳社交平臺&#xff0c;對圖片的處理肯定少不了。龐大又貴重的專業軟件不僅成本較高&#xff0c;還有著不小的上手難度。如果我們僅僅是想要&#xff1a;縮小圖片體積、添加水印或者批量對圖片進行操作等等&#xff0c;使…

轉:MAC 下安裝PHONEGAP開發環境

MAC 下安裝PHONEGAP開發環境 什么是Phonegap呢&#xff1f;Phonegap是一個利用HTML5去開發App的框架。可以為安卓、iOS、WP、黑莓、火狐等移動操作系統。采用HTML5來編寫交互界面。其優點是編寫一次可以編譯到各種移動平臺上&#xff0c;大大為公司節省了開發周期。但是它也是有…

Sql 行轉列問題總結

1、行轉列---1、最簡單的行轉列 /* 問題&#xff1a;假設有張學生成績表(tb)如下: 姓名 課程 分數 張三 語文 74 張三 數學 83 張三 物理 93 李四 語文 74 李四 數學 84 李四 物理 94想變成(得到如下結果)&#xff1a; 姓名 語文 數學 物理 李四 74 84 94 張三 74 8…

尋找第K大的數字

尋找第k大的數字&#xff0c;有很多方法&#xff0c;最基本的就是將數組按照從大到小的順序排列&#xff0c;找出第k個元素即可。但是這種方法的時間復雜度為o(nlog(n)),我們還能找到更好地方法。下面我們將介紹另外兩種辦法&#xff0c;一種是基于快排Partition的方法&#xf…

(12)MSP430F5529 常用內置函數和一些說明

&#xff08;1&#xff09; MSP430F5529支持最高工作頻率為25MHZ&#xff0c;也就是說你通過 鎖相環倍頻來提高系統運行速度是有一個限制的&#xff0c; 最高只能到25MHZ&#xff08;再高沒意思了&#xff09;。 &#xff08;2&#xff09;幾個重要的內聯函數 &#xff08;內聯…

從零開始學android編程_android初學者的入門秘籍

大概是去年年底開始接觸android原本是學習嵌入式的我&#xff0c;領導讓我看看能不能搞一下這個android APP。一開始的我懵逼得很。。。這android APP 不是得用java寫嗎&#xff1f;&#xff1f;&#xff1f; 現在我看網上說比較多還是用kotlin&#xff0c;沒去學。。。好家伙&…

修改了sql默認路徑無法登錄服務器,PostgreSQL錯誤'無法連接到服務器:沒有這樣的文件或目錄'...

像其他一些人一樣,當我在我的項目中運行rake db:migrate或者甚至為我的Ruby on Rails 3.2應用程序嘗試大多數數據庫任務時,我收到此錯誤.PGError(無法連接到服務器:沒有這樣的文件或目錄.服務器是否在本地運行并接受Unix域套接字上的連接"/tmp/.s.PGSQL.5432"&#x…

QMarkDowner編譯

第一次完整的編譯一個工程。哈哈 記錄一下 準備環境 我的環境是win7 x64, python2.7.5 x64的。 python 3.x的我沒試過,有需要的朋友可以試一下。 安裝python2.7.5 x64 確保將安裝路徑加入到Path中 PyQt4 啊 我的環境是win的 當然要下win版 (PyQt4-4.10.3-gpl-Py2.7-Qt4.8.5-x6…

C++ STL的查找算法

假設你有一個序列容器&#xff0c;或者有一對迭代器標識了一個區間,現在你希望在容器中查找一些信息&#xff0c;這樣的查找工作如何進行呢&#xff1f;你的選擇往往是&#xff1a; count,count_if,find,find_if,binary_search,lower_bound,upper_bound,equal_range.該如何選擇…

習題七

umask 022 &#xff0c;請描述該命令的含義創建目錄時默認的權限為&#xff1a;755 rwxr-xr-x創建文件時默認的權限為&#xff1a;644 rw-r--r--note:創建文件的默認權限是拿掉了X 所以最大為666&#xff0c;而目錄最大為777 umask NUM 就是去掉相應的權限轉載于:https://blo…

web中的cookie管理

本篇是以JSP為背景介紹&#xff0c;但是在web開發中也是相同的原理。 什么是cookie 由于http是一種無狀態的協議&#xff0c;因此服務器收到請求后&#xff0c;只會當做一次新的請求。即便你重復發送了1000次同樣的請求&#xff0c;這1000次都屬于獨立的請求。 這樣顯然效率很低…