埃及艷后Cleopatra,很小的時(shí)候看過媽媽買的一本書里把她的名字翻譯成克婁巴特拉,里面有很多描寫她美貌的場景描寫。然而這個(gè)以美貌著稱的奇女子,我看到書里,凱撒和安東尼真正傾心的是Cleopatra背后的埃及文明及Cleopatra的智慧。羅馬是個(gè)好戰(zhàn)的國家,人民沒有很多的精力去創(chuàng)造各種文明和手工藝品。而Cleapatra在這些大佬面前的出場,總結(jié)兩個(gè)字:“華麗”。這種華麗會讓羅馬這些篡位的暴發(fā)戶首領(lǐng)眼前一亮。在柏林,有全世界最好的艷后肖像。她的頭發(fā)結(jié)的是個(gè)簡單的發(fā)髻,風(fēng)格樸實(shí),鼻子是稍有點(diǎn)長的鷹鉤鼻,嘴也算不上性感,沒有耳環(huán),沒有項(xiàng)鏈。并非一個(gè)性感尤物的相貌。我可以理解??梢岳斫馑诮鸨梯x煌的豪華大船的中央,穿著絢麗,體態(tài)驕傲而高貴,旁邊是面貌平常的修女來反襯她的美,那是政治。而留給后人的肖像,作為一個(gè)女孩子更想讓人記住的,是更內(nèi)在本質(zhì)的東西。古代資料記載,她聰明,詼諧,精通多種語言,喜愛學(xué)習(xí)和閱讀,還有驚人的毅力。后人評價(jià)說:“如果Cleopatra的鼻子再塌一點(diǎn),世界的面貌將會改變?!?nbsp;我想,其實(shí)智慧才是她最可貴的資產(chǎn)。

 

  部門開會討論方案。經(jīng)常有一個(gè)很可愛的現(xiàn)象:“方案講解過程中,會被其他人批的體無完膚,但是最后該做的還是會做。”事情就是這樣,批判只是為了提醒實(shí)施過程該注意的問題,可能會有性能問題,一致性問題,并發(fā)問題,可能需要怎樣解決。但是提意見的人往往沒有決定權(quán),因?yàn)橛袀€(gè)真理叫做:“你試過嗎?”。然而這種討論會要先參加,提出自己的意見,然后看著過程的實(shí)施,檢驗(yàn)自己的想法,是很有利于提高的。沒有提意見的理論基礎(chǔ),沒有意見可提,最終開會都不會讓你來參加的話,可能工作很多年也只是會做項(xiàng)目而已。不過就我自己而言,現(xiàn)在的問題是一切從技術(shù)角度出發(fā),應(yīng)該多從業(yè)務(wù)和數(shù)據(jù)分析的角度整體,大局的重新審視一些目前的工作。終于有借口明天找我家微微一笑很傾城的男神老大聊聊天了。

  提到性能,先看看存儲數(shù)據(jù)的六個(gè)區(qū)域:

  1>寄存器:這是最快的存儲設(shè)備,因?yàn)樗鼘?shí)際上在處理器內(nèi)部,就是平時(shí)說的CPU。在Java內(nèi)存模型中,所謂的工作內(nèi)存就是將主內(nèi)存的數(shù)據(jù)拷貝一些到寄存器中來提高計(jì)算速度。

  2>棧:這個(gè)存在于隨機(jī)存取存儲器區(qū)。其硬件基礎(chǔ)是內(nèi)存條。記得我以前在人人的時(shí)候,有時(shí)候臺式機(jī)開不了機(jī)了,我有快捷解決方案:“向主機(jī)箱踢兩腳。”真的好使哦,因?yàn)殚_不了機(jī)是因?yàn)閮?nèi)存條松了。后來踢也不好使了,我就把機(jī)箱蓋兒打開手動把內(nèi)存條緊了緊。好了,通過這個(gè)例子大家應(yīng)該明白了,如果沒有內(nèi)存條,是開不了機(jī)的。這個(gè)速度僅次于寄存器的設(shè)備通過寄存器中的棧指針與寄存器直接交互。其實(shí)一段程序的所有元素的生命周期都存于棧中,包括對象的引用。

  3>堆:通常說的內(nèi)存池主要是指這部分,主要存儲Java對象。不同于Java棧,編譯器不需要知道堆中的東西要存儲多長時(shí)間,所以有它的靈活性。這種動態(tài)分配導(dǎo)致其分配和回收都需要比棧更長的時(shí)間。

  4>直接內(nèi)存:直接內(nèi)存并不是虛擬機(jī)內(nèi)存的一部分,jdk1.4中引入NIO,引入了通道與緩沖區(qū)的IO方式,它可以調(diào)用Native方法直接分配堆外內(nèi)存,這個(gè)堆外內(nèi)存就是本機(jī)內(nèi)存,不會影響到堆內(nèi)存的大小。

  5>只讀存儲器:安卓手機(jī)都用這個(gè)東西來存放應(yīng)用。因?yàn)閼?yīng)用一經(jīng)安裝,就不再改變。像我這種做服務(wù)器端開發(fā)的,這個(gè)不詳細(xì)介紹。

  6>磁盤:Java是在C++上開發(fā)的,但是有更多限制。不能像C++一樣控制堆的分配,自己在棧中給對象分配空間,更不能建議編輯器給寄存器分配空間。但是Java對磁盤的存取卻是用程序直接控制的。Java可以讓對象持久化,同時(shí)這些對象也可以恢復(fù)成一個(gè)普通的隨機(jī)存儲儲存器中的對象。Java提供了輕量級持久化的支持,而JDBC和Hibernate在數(shù)據(jù)庫中提供了更為精細(xì)的存儲支持。

  7>其他機(jī)器:Java有一種叫流對象,是將對象轉(zhuǎn)換為比特流來傳輸?shù)狡渌O(shè)備。和持久化對象一樣,流對象也可以恢復(fù)成普通對象。

  大家知道基本的數(shù)據(jù)類型在方法內(nèi)執(zhí)行的時(shí)候都是直接值拷貝到棧當(dāng)中。當(dāng)然它也可以包裝成非基本類型存到堆中。方法調(diào)用時(shí)像其他對象一樣只取它的引用。自動拆裝包嘛。其中數(shù)字的類型都是帶符號的。Java提供兩種高精度的數(shù)值類型,BigInteger和BigDecimal,它們沒有對應(yīng)的基本數(shù)據(jù)類型。計(jì)算都要調(diào)用對象的方法,而不能直接使用運(yùn)算符。當(dāng)然這個(gè)要慢,就是所謂的用速度換精準(zhǔn)度。我之前創(chuàng)業(yè)的生鮮網(wǎng)項(xiàng)目(已經(jīng)創(chuàng)業(yè)失敗了)因?yàn)樯婕昂芏噱X的東西,大量用到這種數(shù)據(jù)類型。說到數(shù)據(jù)類型,大家都知道成員變量都會有一個(gè)默認(rèn)值,而局部變量沒有。其實(shí)只要知道JVM原理就能明白:成員變量都需要在方法區(qū)中為其預(yù)先分配空間。而局部變量只是在棧中用到,所以沒有默認(rèn)值。

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式