『壹』 一個java關於繼承和拓展的問題
D吧,應該這些都是這個car的成員變數,而且使用介面的思想,應該是有個車的模型,然後通過繼承這個車的模型來產生新的車!
『貳』 java 這里的collection是什麼意思
通俗的講應該是我們常用的List,集合懂不。
『叄』 關於C加加和JAVA
C++之父評論C++與Java
http://soft.yesky.com/info/223/2414723.shtml
Linux之父炮轟C++:
http://os.51cto.com/art/200709/55562.htm?1366380720
Java之父評價C語言之父:我用盡了形容詞
http://www.csdn.net/article/2011-10-19/306010?1366380958
C++之父評論C++與Java
如果人們非要拿C++和Java來作比較,我建議他們去閱讀TheDesignandEvolutionofC++,看看C++為什麼是今天這個樣子,用我在設計C++時遵從的原則來檢驗這兩種語言。這些原則與SUN的Java開發小組所持的理念顯然是不同的。除了表面語法的相似性之外,C++與Java是截然不同的語言。在很多方面,Java更像Smalltalk。(Sun的培訓教材清楚地寫道:Java在設計上採用了與C++相似的語法,與Smalltalk相似的語義。所以可以說Java與C++是貌合神離,與Smalltalk才是心有靈犀。)Java語言相對簡單,這部分是一種錯覺,部分是因為這種語言還不完整。隨著時間的推移,Java在體積和復雜程度上都會大大增長。在體積上它會增長兩到三倍,而且會出現一些實現相關的擴展或者庫。這是一條每個成功的商業語言都必須走過的發展之路。隨便分析一種你認為在很大范圍內取得了成功的語言,我知道肯定是無有例外者,而且實際上這非常有道理。
上邊這段話是在Java1.1推出之前寫的。我確信Java需要類似模板的機制,並且需要增強對於固有類型的支持。簡單地說,就是為了基本的完整性也應該做這些工作。另外還需要做很多小的改動,大部分是擴展。1998年秋,我從JamesGosling(Java語言的創始人)那裡得到一份建議書,說是要在Java中增加固有類型、操作符重載以及數學計算支持。
還有一篇論文,是數學分析領域的世界級大師,伯克利大學的W.Kahan教授所寫的HowJava'sFloating-PointHurtsEveryoneEverywhere(且看Java的浮點運算如何危害了普天下的芸芸眾生),揭露了Java的一些秘密。我發現在電視和出版物中關於Java的鼓吹是不準確的,而且氣勢洶洶,讓人討厭。大肆叫囂凡是非Java的代碼都是垃圾,這是對程序員的侮辱;建議把所有的保留代碼都用Java重寫,這是喪心病狂,既不現實也不負責任。Sun和他的追隨者似乎覺得為了對付微軟罪惡的「帝國時代」,就必須如此自吹自擂。但是侮辱和欺詐只會把那些喜歡使用不同編程語言的程序員逼到微軟陣營里去。
Java並非平台無關,它本身就是平台。跟Windows一樣,它也是一個專有的商業平台。也就是說,你可以為Windows/Intel編寫代碼,也可以為Java/JVM編寫代碼,在任何一種情況下,你都是在為一個屬於某個公司的平台寫代碼,這些代碼都是與該公司的商業利益扯在一起的。當然你可以使用任何一種語言,結合操作系統的機制來編寫可供JVM執行的程序,但是JVM之類的東西是強烈地偏向於Java語言的。它一點也不像是通用的、公平的、語言中立的VM/OS。私下裡,我會堅持使用可移植的C++作大部分工作,用不同的語言作餘下的工作。
「Javaisnotplatform-independent,itistheplatform」,B.S的這句評語對於C++用戶有著很大的影響,有些C++高手甚至把這句話作為自己的簽名檔,以表明對Java的態度和誓死捍衛C++的決心。
Linux之父炮轟C++:
糟糕程序員的垃圾語言(1)2007-09-0913:33劉江劉江@圖靈我要評論(14)字型大小:T|TLinux之父為Linux內核開發而專門打造的版本控制軟體Git已經引起了業界的廣泛關注。DmitryKakurin查看源代碼之後,發現使用的是純C而非C++,表示不可理解。引起了Linux之父炮轟C++:糟糕程序員的垃圾語言。AD:2013大數據全球技術峰會低價搶票中
Linux之父炮轟C++:糟糕程序員的垃圾語言Linux之父話糙理不糙不得不看的兩次從C++回歸C的高手評論C++C語言是否該扔進垃圾桶為什麼每個程序員都應該學習C語言?每個程序員都應該學習C語言?我可不這么認為C語言已經死了,5個需要忘卻它的理由用C設計用C++編碼為什麼使用C++C++0x:嶄新的C++,還是另一個Java?編程語言的三大定理動態語言為何難堪重任動態語言面面觀Linux之父LinusTorvalds為了Linux內核開發而專門打造的版本控制軟體Git已經引起了業界的廣泛關注。昨天,有一位DmitryKakurin老兄在查看了源代碼之後,發現使用的是純C而非C++,表示不可理解,他直言:「別拿可移植性說事兒,這是屁話(BS,bullshit)。「(此外,他還批評Git蠻力地直接操作文本,既啰嗦又易錯,而且很難跟上高層代碼邏輯。)」這個BS引起了Torvalds的強烈反應,他用「*YOU*arefullofbullshit.」(你才滿嘴屁話呢)作為自己反駁的開場白。接著,他先轉向了對C++的罕見的火葯味十足的炮轟:「C++是一種糟糕的(horrible)語言。而且因為有大量不夠標準的程序員在使用而使情況更糟,以至於極容易產生徹頭徹尾的垃圾(totalanttercrap)。老實說,選擇C就是為了把C++程序員踢出去。……我有這樣的結論,任何喜歡用C++而不是C開發項目的程序員可能都是我希望踢出去的人,免得他們來搞亂我參與的項目。C++會導致非常非常糟糕的設計選擇。你們這些C++程序員總是一上來就用語言的那些『漂亮的』庫特性比如STL、Boost和其他徹頭徹尾的垃圾,這可能對你們的程序有所『幫助』,但是卻會導致:
——當庫無法工作時無窮無盡的折磨(別跟我說什麼STL尤其是Boost很穩定而且可移植性很好,那全是屁話,而且一點都不可笑)
——低效的抽象編程模型,可能在兩年之後你會注意到有些抽象效果不怎麼樣,但是所有代碼已經依賴於圍繞它設計的『漂亮』對象模型了,如果不重寫應用程序,就無法改正。也就是說,使用優秀的、高效的、系統級的和可移植的C++的唯一方式,最終還是限於使用C本身具有的所有特性。項目限制只用C,意味著參與的人不會搗亂,也意味著會得到許多真正懂得底層問題,而不會折騰那些白痴『對象模型』垃圾的程序員。
所以,我很抱歉,但是對於Git這樣效率是主要目標的軟體,C++的所謂優點只是巨大的錯誤。而我們將看不到這一點的人排除在外卻成了一個巨大的附加優勢。如果你想要用C++寫的版本控制系統,去玩Monotone吧。他們確實使用了『真格的資料庫』,使用了『漂亮的面向對象庫』、使用了『漂亮的C++抽象』。可是說老實話,所有這些對某些計算機專業人士而言富於吸引力的設計決定,其最終結果確是一堆可怕、難以維護的垃圾。」【070907更新】Torvalds和DmitryKakurin爭論繼續中。對Torvalds的回擊,Dmitry反唇相譏:「隨著只用C編程的恐龍們逐漸滅絕,你很快就會發現只剩下自己一個人在固執己見。用Git貢獻者的數量是說明不了問題的。<顯然C++開發者也能夠貢獻C代碼。但是以為他們喜歡這種方式,那可就錯了。
沒有C的時候我用匯編編程。然後在C++誕生之前,我轉向了C。現在我使用C++和C#,而且不再走回頭路。差勁的程序員用任何語言都寫不出好程序。但是為了將差勁的貢獻者拒之門外這樣一個沒譜的理由而懲罰優秀的開發者,這簡直是胡鬧。」只過了10幾分鍾,Torvalds就回貼了:「和你不同的是,我實實在在地給出了不喜歡C++的原因,而且指出了它可能導致的各種問題的一些例子。而你呢,沒有給出一條像樣的使用C++的理由。事實上,Git比其他軟體配置管理軟體都要好,而好的品味(taste)和C正是原因之一。」
對上面的最後一句話,Torvalds後來又做了如下補充:
「說得更具體一些:
——簡單和清晰的核心數據結構,非常精益(lean)且頗具雄心的曖昧管理著它們,將「簡單勝於花哨」這一方法發揮到極致。
——有意識地不抽象數據結構和演算法,因為它們恰恰是Git核心的全部要素(wholepoint)。 如果你想用更花哨的語言,C++絕對是最糟糕的選擇。如果想要真正的高級特性,那就選擇有垃圾回收或者好的系統集成的,而不是既缺乏C的簡約(sparseness)又缺乏C的直接而且沒有重要概念的高層綁定(high-)的東西。 一言以蔽之,C++正處在困境當中,它既無法幫助原型化或者簡單的GUI編程足夠簡化從而真正可用,不是C那樣積極地鼓勵你使用簡單和直接的語言構造的精益系統編程語言。」 (另一位同學插了一句:這還沒有提到很難找到兩個C++編譯器支持同樣的特性。)「這與什麼恐龍毫無關系。好的品味永遠不會過時。將C與匯編語言相提並論,恰恰說明你對自己所討論的問題缺乏起碼的概念(don'thaveafrigginidea)。」
Java之父評價C語言之父:我用盡了形容詞
摘要:Java之父JamesGosling在上周發布了關於討論C語言之父DennisRitchie的簡短博文稱:C語言撐起了一切,他的影響巨大,並超越了科技世界。
Java之父詹姆斯·高斯林(JamesGosling)在上周發布了關於討論C語言之父丹尼斯·里奇(DennisRitchie)的簡短博文:丹尼斯·里奇辭世的新聞如五雷轟頂。過去幾天已經有很多資訊報道此事。他的影響巨大,並超越了科技世界,雖然他的大多影響都不為人知,但完全可以感受到。C語言撐起了一切。我的整個職業生涯也是從C語言和Unix中發展而來。對當今的大多數工程師而言,很難理解我在20世紀70年代感受到的幸福愉快感。當一種編程語言最終出現,我(其他人也)可以從匯編語言提升到一種真正的編程語言。我們可以做任何一切,過去我們得編寫所有低級位系統。在C語言之前,編程語言達不到任務:開銷太大了。系統的復雜性是真的阻礙了用匯編語言編寫大型軟體。C語言就像代碼的JATO。(編註:「JATO」是「Jet-fuelassistedtakeoff」的縮寫,字面意思:「輔助起飛的噴氣燃料」。這個系統通過小型火箭提供輔助動力,以幫助超載的飛機起飛升空。)下面是詹姆斯·高斯林此文的一些評論:TruelyJames.,.dentertaining.RIPRitchie!!!說的很對,詹姆斯!對於每個計算機專業人士,他們所接觸的第一種編程語言就是C語言。(C語言)有著如此多的令人驚奇的地方,這也使得學習過程非常有趣。安息,里奇!!!Greatonesarefalling.IstillloveC.Sosimple.Sopowerful.一位巨星的隕落。我仍然愛著C語言。如此簡單,如此強大。:.'tfound.Itwasagoodtime.我記得C語言就是程序員的冒險:有很多小坑,一不小心就陷進去。即便很多年過後,還有一些我沒有發現的。那是個美好時刻。Theequationisquitesimple:RichieislikeEinstein,pureGenius.AlltheITisbuiltonK&Rworks.Thanksman,andRIP...等式非常簡單:里奇就像愛因斯坦,純粹的天才。IT業的所有都基於肯貝漢和里奇的成果。感謝,安息……文章出自:nighthacks譯文來自:伯樂在線
『肆』 java代碼 clone()函數的作用是什麼
從樓主對回答的追問上發現,樓主的連JAVA基本的語法都很差啊。=號是賦值運算符,不是比較。
double[] vectorValue;
vectorValue = vectorValue.clone();
這個段代碼執行肯定報錯了。但他還的意思還是很明確的。
首先:double[] vectorValue; 這個是定義了一個double類型的數組變數vectorValue。
其次:vectorValue = vectorValue.clone(); //這個是將vectorValue 克隆一份,賦值給自己。也就是說vectorValue變數指向了新的一塊內存區域。
舉個例子可能更能說明問題。
{
privateinti;
publicTestMain(inti){
this.i=i;
}
@Override
protectedObjectclone(){
//TODOAuto-generatedmethodstub
returnnewTestMain(this.getI()+1);
}
publicintgetI(){
returni;
}
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
TestMaintm1=newTestMain(1);
TestMaintm2=tm1;
tm1=(TestMain)tm1.clone();
System.out.println(tm1.getI());//tm1指向的是通過clone()方法創建的新的對象的地址,i的值已經是2了。
System.out.println(tm2.getI());//tm2指向的還是tm1創建時的地址,i的值為1
}
}
『伍』 求一Java英文題目代碼!!
/**
* 程序入口類
* Assume that the starting time for the baby-sitter is somewhere between 6 AM and 11 PM;
* and that the ending time is somewhere between 9 PM and 4 AM.
* 工作時間從一天的6:00到23:00開始,在21:00到4:00結束,最長是6:00到4:00或者23:00到21:00,
* 22小時(不考慮孩子個數、中場休息、最長天數累加:N天 * 24 + 22)
* 其實用Calendar對象可能還簡單點
*/
public class Babysitter {
public static void main(String[] args) {
//這里設置開始時間和結束時間
Time time = new Time(6,15,3,45);
Calculate calculate = new Calculate(time);
System.out.println(calculate.toPay());
}
}
/**
* 時間類,記錄開始時間和結束時間
*
*/
class Time {
int startHour;
int startMinute;
int endHour;
int endMinute;
public Time() {
super();
}
public Time(int startHour, int startMinute, int endHour, int endMinute) {
super();
this.startHour = startHour;
this.startMinute = startMinute;
this.endHour = endHour;
this.endMinute = endMinute;
}
public int getStartHour() {
return startHour;
}
public void setStartHour(int startHour) {
this.startHour = startHour;
}
public int getStartMinute() {
return startMinute;
}
public void setStartMinute(int startMinute) {
this.startMinute = startMinute;
}
public int getEndHour() {
return endHour;
}
public void setEndHour(int endHour) {
this.endHour = endHour;
}
public int getEndMinute() {
return endMinute;
}
public void setEndMinute(int endMinute) {
this.endMinute = endMinute;
}
}
/**
* 計算報酬
*
*/
class Calculate {
private Time interval;
public Calculate(Time interval) {
super();
this.interval = interval;
}
public Time getInterval() {
return interval;
}
public void setInterval(Time interval) {
this.interval = interval;
}
/**
* 實際計算報酬的方法
*/
public float toPay() {
float resultPay;
//分結束時間在午夜前還是有過午夜
if (interval.getStartHour() < interval.getEndHour()) {
resultPay = payForOneDay(interval);//結束時間無過午夜
} else {
resultPay = payForTwoDay(interval);//結束時間過了午夜
}
return resultPay;
}
/**
* 結束時間在午夜前
* @param time
* @return
*/
private float payForOneDay(Time time) {
int startHour = time.getStartHour();
int endHour = time.getEndHour();
int startMinute = time.getStartMinute();
int endMinute = time.getEndMinute();
float payment = 0.00f;
if (startMinute > endMinute) {
float ecllapsTime = (endHour - startHour - 1.00f)
+ (60.00f + endMinute - startMinute) / 60.00f;
payment = ecllapsTime * Rule.BEFORE_MIDNIGHT_PAY;
} else {
float ecllapsTime = (endHour - startHour)
+ (endMinute - startMinute) / 60.00f;
payment = ecllapsTime * Rule.BEFORE_MIDNIGHT_PAY;
}
return payment;
}
/**
* 結束時間在午夜後
* @param time
* @return
*/
private float payForTwoDay(Time time) {
int startHour = time.getStartHour();
int endHour = time.getEndHour();
int startMinute = time.getStartMinute();
int endMinute = time.getEndMinute();
float paymentBeforeMidnight = 0.00f;
float paymentAfterMidnight = 0.00f;
if (startMinute != 0.00) {
float ecllapsTime = (23.00f - startHour)
+ (60.00f - startMinute) / 60.00f;
paymentBeforeMidnight = ecllapsTime * Rule.BEFORE_MIDNIGHT_PAY;
} else {
float ecllapsTime = (24.00f - startHour);
paymentBeforeMidnight = ecllapsTime * Rule.BEFORE_MIDNIGHT_PAY;
}
paymentAfterMidnight = (endHour + (endMinute / 60.00f)) * Rule.AFTER_MIDNIGHT_PAY;
return (paymentBeforeMidnight + paymentAfterMidnight);
}
}
/**
* 計算規則
*
*/
class Rule {
public static float BEFORE_MIDNIGHT_PAY = 3.40f;
public static float AFTER_MIDNIGHT_PAY = 3.90f;
}
『陸』 java中的多態
多態包括方法重載和方法重寫,說個故事 …… 有點長 …… 可以直接看結論 …… 1.某天, 老闆說, 我們的對象都要可以比較! C++程序員寫下了 : template< typename T > T max(const T& o1,const T& o2);然後為每個類 添加了 operator< 操作。 Java程序員寫下了 : intetface ICompare { ... } class I_am_exist_with_ONLY_STATIC_METHOD_Because_such_bitch_Java_is_ONLY_OO { public: static ICompare max(ICompare o1,ICompare o2) throw(InvalidArgument) ; }然後每個類去implments 一下。 2.過幾天, 老闆又說了, 我們的對象, 都要可以串列化! C++程序員寫了 : template< typename T > void Save(const T& o,Stream& s); void Load(const T& o,Stream& s);然後為每個類實現了一對 Save 和 Load 的函數。 Java 程序員寫了 : interface ISerialize { void Save(Stream s); void Load(Stream s); }然後為每個類去implments 3.然後又過幾天, 再過幾天 , 然後…… 每個C++類都有許多函數。每個Java類都 implemts 許多interfaces 4. 然後, 老闆怒了, 為什麼 max 會throw exception ? Java程序員說 …… String 和 Integer 無法比較 …… C++ 程序員笑了: 編譯時我就知道了~~ 5.然後, 老闆又怒了, 為什麼File裡面什麼都沒有? C++程序員 一看代碼: std::vector< Object > v; std::for_each( v.begin() , v.end(), std::bind2nd(ptr_fun(&Save), file ) );壞了 …… 截斷了 …… Java程序員笑了: 我早就知道這應該(或者說我們從來用的都)是(運行)多態行為。 這就是區別。 generic programming 和 oo的區別。前者依賴的是concepts, 依賴的是 (昨天寫過 忘記在哪了 …… 呆會找找 ) http://bbs.tongji.net/thread-144326-1-1.html (可以直接看10樓, 前面寫得很羅嗦…… )後者依賴的是interfaces。 前者的類裡面, 更多看到的是 typedef , 相同名字的函數 (push_back, insert ……)因為這就是GP的interfaces —— 在C++GP領域里的專用名詞是concepts typedef 和 push_back 沒有消耗, 時間或者空間上的 (編譯時間如果算的話, 可能還是有點……) 後者的類,就繼承自大量的interface。空間上的消耗, 可以C++隨便寫點什麼看看sizeof就知道了, 尤其注意加上 virtual繼承後, 編譯器塞進去的東西有多大。( 大部分編譯器使用的C++的內存模型已經是空間效率與時間效率都非常好的了 —— space : vtbl * classes + vptr *objects , time: O(1) ) 前者的多態僅在編譯時, 可以檢查出一些不必要的錯誤(如 int 和string 的比較, 肯定是設計上出了問題), 運行時無多態行為。後者多態在運行時, 有可能會發生一些錯誤, 以及一點點效率損失。 但是運行多態又是必要的。比如 decorate , 可以處理運行時錯綜復雜的關系。 編譯多態就沒轍。 兩者各有長處, 完全可以相互取長補短。 故事的最後結局是: C++程序員意識到了錯誤: 回頭看看書 《TC++PL》 「C++是一種通用程序設計語言 …… 」 oh yeah!運行多態就運行多態唄, OO就哦哦唄, 咱也行!! struct ISerialize { virtual void Save(Stream& s) const = 0; virtual void Load(Stream& s) = 0; public: virual ~ISerialize() {} /* virtual 是可選的, 決定於是否需要由ISerialize* 刪除對象 , 因為下面寫了 boost::shared_ptr 所以必須加上virtual 才能多態刪除 */ /* 如果不需要多態刪除 */ protected: /// /* non-virtual */ ~ISerialize() {} }然後讓每個類實現這個介面。 std::vector<boost::shared_ptr<ISerialize> > v; std::for_each( v.begin() , v.end() , std::bind1st( std::mem_fun(&ISerialize::Save) , file ) );所有對象都寫入文件去了。 老闆很高興。 Java程序員盯著滿屏幕的 exceptions ……
『柒』 Java中不實現Cloneable介面,直接寫一個函數會有什麼樣的後果實現一個介面的好處是什麼
一 我的理解
1 . 感覺介面最大的作用還是實現多態。而多態讓程序結構的設計更加的優雅。比如java並發中的兩個重要介面Runnable和Callable 就是非常好的例子。
比如我們要設計一個執行線程的容器(java中已有實現好的線程池機制),要接收一個任務做參數,我們不可能給每一個任務去設計一個方法。
介面就為所有的任務類型提供了一種標准,意思是你的任務只要符合這個標准,我的程序就可以處理。
---------------------------------------------------
2. 於是開發者就可以自由開發了
創建一個任何屬於自己的任務 Runnable myTask = new MyTask();
只要告訴執行器我這是一個runnable就好了,具體執行JVM去動態處理
XXXExecutor.execut(myTask)。。。。。
-------------------------------------------------------------------
回顧這個例子,我覺得既可以說介面是一種標准,亦可以說是類抽象上的又一層抽象
寫到這,我覺得java爽爆了。。。
二 官方
----------------------------又完善了下---------------------------------------
下列分別是官方和大神的討論, 是英文的, 如果你覺得哪裡讀不通,
可以採納並追加詢問哈.
JAVA的介面理解是非常重要的. 希望可以幫到你.
3 關於介面定義(官方, 解決What的問題)
What Is an Interface? (The Java™ Tutorials > Learning the Java Language > Object-Oriented Programming Concepts)
https://docs.oracle.com/javase/tutorial/java/concepts/interface.html
4 關於為什麼要使用介面(解決How的問題)
Why do we need interfaces in Java? - Stack Overflow
http://stackoverflow.com/questions/3528420/why-do-we-need-interfaces-in-java
『捌』 編程小白,正在看Java Concepts for Java 5&6自學。下載安裝了JDK6,正看到hello world,為什麼新建裡面沒
安裝好JDK再配好環境變數過後,直接進入命令行模式,進入你的.java文件所在的目錄,然後用javac 變數名.java 編譯,然後用 java 變數名(不用寫編譯生成的->變數名.class全稱)
『玖』 幫忙翻譯一下句子。。。急求 謝謝謝
1, the first door as a computer learning courses, in an overview of basic concepts of computer systems to teach students to use a high-level computer programming language, students will learn the basic concepts of programming languages, program design basis development process using the integrated development environment and the basic object theory. Course students need to develop a number of separate proceres, and in the process of applying simple software engineering principles.
2, this course is designed to teach the basic concepts of mathematical analysis, the basic theory and computational method for the follow-up study of mathematics and mathematics courses to lay the necessary foundation, including functions and limits, derivatives and differentiation, indefinite integral and definite integral, Analytic Geometry, Differential Calculus, and the line area of sub-multiple integral, infinite series, ordinary differential equations.
3, "Introction to Western culture" is a basic curriculum, this lesson taught by the system aims to help students grasp the development of Western culture, the basic context of the evolution and essence. The course content is divided into three parts, the first for the Greek and Roman culture, the second part is the medieval Christian culture, the third part of modern western culture. This course teaches not only the development of Western culture to make students understand the different characteristics of each historical period and cultural phenomena, but also to help them understand the basic spirit of Western culture as well as the intrinsic link between the historical stage.
Adhere to the logic of this course is consistent with the history and basic methods of image data will enrich the beautiful and vivid humorous lectures combined reserves in the expansion of knowledge while the students to enhance their ability to reflect.
4, the JAVA programming course aims to introce the basic concepts, principles and methods, and make students able to use an object-oriented programming language programming. The main content: JAVA concepts such as: objects, classes, inheritance and so on.
5, "Study of Chinese Culture" is the general ecation system of the University of Science and Technology in a required course. Course covers the history, society, philosophy, religion, literature, art, science and technology, ecation and other areas of cultural phenomenon and its social significance.
The course aims to popularize the basic knowledge of Chinese culture to help students understand the important achievements of Chinese culture, major events and outstanding personalities, experience Chinese culture and the important role of social values, understanding the spiritual and cultural charm. Require students to learn the correct world outlook and methodology with the analysis of historical and cultural phenomenon, and thus inherit and carry forward the fine historical and cultural traditions, and learn the essence, optimizing quality, and strive to grow high-quality human resources needs of the time.