成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

JAVA刷題(持續(xù)更新)

cyixlq / 1976人閱讀

摘要:年期間微軟公司發(fā)布,無論是技術(shù)實現(xiàn)上還是目標(biāo)用戶都與有很多相近之處,給帶來了很多討論比較和競爭對的發(fā)展進程影響很大。年月日大會上,公司宣布最終會將開源。及其他與公司爭奪的控制權(quán),令從跨平臺技術(shù)變?yōu)榻壎ㄔ谏系募夹g(shù)是微軟公司的主要目的。

一、基礎(chǔ) 面向?qū)ο?/b> 面向?qū)ο蟾拍?/b>

面向?qū)ο?Object Oriented,OO)是軟件開發(fā)方法

對象:萬物皆對象,對象可以是具體的事物,也可以是抽象的規(guī)則、計劃或事件。

對象的狀態(tài)和行為:狀態(tài)代表數(shù)據(jù),行為代表方法。

類(數(shù)據(jù)類型):具有相同特性(數(shù)據(jù)元素)和行為(功能)的對象的抽象就是類。類的具體化就是對象,對象是類的實例。類具有屬性(對象狀態(tài)的抽象)和操作(對象行為的抽象)

類的結(jié)構(gòu):世界上存在若干類,這些類之間存在關(guān)系,通常存在兩種主要的結(jié)構(gòu)關(guān)系。⒈一般-具體結(jié)構(gòu)(分類結(jié)構(gòu),"is a"關(guān)系)⒉整體-部分結(jié)構(gòu)(組織結(jié)構(gòu),"has a"關(guān)系)

消息和方法:對象之間進行通信的結(jié)構(gòu)叫做消息。對象接收到消息,根據(jù)消息說明去調(diào)用方法(消息應(yīng)說明執(zhí)行對象、方法、參數(shù))。方法有方法名、返回值、參數(shù)、方法體。

面向?qū)ο筇卣?/b>

封裝:封裝對象的屬性和行為,并設(shè)置訪問權(quán)限(支持方法重載)

繼承:繼承父類的屬性和行為,提供復(fù)用性。(單繼承,接口多繼承;支持方法重寫)

多態(tài):基于封裝、繼承(重寫)、父引用指向子對象;允許不同的對象對同一消息做出不同反應(yīng);編譯期綁定(成員變量、靜態(tài)變量、靜態(tài)方法)、運行期綁定(成員方法);方法多態(tài)(重寫,重載)、引用多態(tài)(向上造型);

抽象:表示對問題領(lǐng)域進行分析、設(shè)計中得出的抽象的概念,基于abstract關(guān)鍵字,必須被子類繼承重寫,無法私有化(private)、靜態(tài)化(static)、最終化(final)。

JAVA JAVA體系

JAVASE(桌面程序)

JAVAEE(網(wǎng)站服務(wù))

JAVAME(手機嵌入式)

JAVACard(Java小程序Applets)

JAVA特點

簡單性:單繼承、自動拆裝箱、簡化內(nèi)存管理(引用替代指針,提供自動GC垃圾回收器)...

移植性:Java先編譯成字節(jié)碼(中間碼),由JVM來進行解釋(二進制碼)運行。

健壯性:強類型機制、異常處理、垃圾的自動收集等機制。

多線程:支持多線程

JAVA發(fā)展史

1991年4月:James Gosling博士領(lǐng)導(dǎo)Gree Project,推出JAVA前身(Oak橡樹)

1995年5月23日:Oak語言改名為JAVA,并在SunWorld大會上正式發(fā)布JAVA 1.0版本,并提出"Write Once, Run AnyWhere"口號。

1996年1月23日:JDK 1.0發(fā)布,提供純解釋執(zhí)行的Java虛擬機實現(xiàn)(Sun Classic VM)。代表技術(shù):Java虛擬機、Applet、AWT等...

1996年4月:10個最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入Java技術(shù)。

1996年5月底:Sun公司于美國舊金山舉行首屆JavaOne大會。

1996年9月:已有大約8.3萬個網(wǎng)頁應(yīng)用了Java技術(shù)來制作。

1997年2月19日:JDK 1.1發(fā)布。代表技術(shù):JAR文件格式、JDBC、JavaBeans、RMI。Java語法:內(nèi)部類(Inner Class)和反射(Reflection)

1998年12月4日:JDK 1.2-Playground(競技場)發(fā)布。Sun在這個版本中將Java體系拆分為3個方向:J2SE(面向桌面開發(fā))、J2EE(面向企業(yè)級開發(fā))、J2ME(面向手機移動終端開發(fā));代表技術(shù):EJB、Java Plug-in、Java IDL、Swing等;Java虛擬機:第一次內(nèi)置JIT(Just In Time)編譯器(JDK1.2曾并存Classic VM、HoSpot VM、Exact VM,Exact VM只在Solaris平臺出現(xiàn)過;后兩者是內(nèi)置JIT編譯器;之前版本Classic VM只能以外掛形式使用JIT編譯器);Java語法:添加strictfp關(guān)鍵字;Java API:Collections集合類。

1999年3月:JDK 1.2.1發(fā)布。

1999年4月8日:JDK 1.1 共發(fā)布 1.1.0 ~ 1.1.8 九個版本。從1.1.4之后,每個版本都有工程代號:Sparkler、Pumpkin、Abigail、Brutus、Chelsea

1999年4月27日:HotSpot虛擬機發(fā)布。最初由"Longview Technologies"小公司發(fā)布。1997年被Sun公司收購。HotSpot虛擬機發(fā)布時是作為JDK1.2的附加程序提供。后來成為JDK 1.3及之后所有版本的Sun JDK的默認(rèn)虛擬機。

1999年7月:JDK 1.2.2發(fā)布。

2000年5月8日:JDK 1.3-Kestrel(美洲紅隼)發(fā)布。Java API:數(shù)學(xué)運算、新的Timer API等;JNDI作為一項平臺級服務(wù)提供(以前僅是一項擴展);使用CORBA IIOP實現(xiàn)RMI的通信協(xié)議;改進JAVA 2D(提供大量新的Java 2D Api,新增JavaSound類庫)。

2001你那5月17日:JDK 1.3.1-Ladybrid(瓢蟲)修正版本發(fā)布。自JDK 1.3開始,Sun維持一個習(xí)慣:每隔兩年發(fā)布一個JDK主版本,以動物命名,期間的各個修正版本則以昆蟲作為工程名稱。

2002年2月13日:JDK 1.4-Merlin(灰背隼)發(fā)布。技術(shù)特性:正則表達式、異常鏈、NIO、日志類、XML解析器和XSTL轉(zhuǎn)換器等。

2002年9月16日:JDk 1.4.1-Grasshopper(蚱蜢)修正版本發(fā)布。

2002年期間:微軟公司發(fā)布.NET Framework,無論是技術(shù)實現(xiàn)上還是目標(biāo)用戶都與Java有很多相近之處,給Java帶來了很多討論、比較和競爭對Java的發(fā)展進程影響很大。

2003年6月26日:JDK 1.4.2-Mantis(螳螂)修正版本發(fā)布。

2004年9月30日:JDK 1.5-Tiger(老虎)發(fā)布。語法特性:自動裝箱、泛型、動態(tài)注解、枚舉、可變長參數(shù)、遍歷循環(huán)(foreach)等;Java 虛擬機:改進Java的內(nèi)存模型(Java Memory Model,JMM);Java API:提供java.util.concurrent并發(fā)包等。

2006年11月13日:JavaOne大會上,Sun公司宣布最終會將Java開源。

2006年12月11日:JDK 1.6-Mustang(野馬)發(fā)布。命名方式:終結(jié)J2EE、J2SE、J2ME命名方式,啟用Java SE6、Java EE6、Java ME6命名方式;Java API:提供動態(tài)語言支持(通過內(nèi)置Mozilla JavaScript Rhino引擎實現(xiàn))、提供編譯API、微型HTTP服務(wù)器API等;Java虛擬機:做了大量改進,包括鎖與同步、垃圾收集、類加載等方面的算法。

2009年2月19日:JDK 1.7-Dolphin(海豚)發(fā)布。主要改進:新的G1收集器(2012年4月的Update4中才正式"轉(zhuǎn)正")、加強非Java語言的調(diào)用支持(JSR-292,未完全實現(xiàn)定型)、升級類加載架構(gòu)等。推遲計劃:lambda項目(Lambda表達式、函數(shù)式編程)、Jigsaw項目(虛擬機模塊化支持)、Coin項目(語言細(xì)節(jié)進化)。

2014年3月18日:JDK 1.8-Spider(蜘蛛)發(fā)布。語言特性:Lambda表達式、方法引用、引入defalut關(guān)鍵字、重復(fù)注解、擴展注解的支持、Optional、Stream、Date/Time API、JavaScript引擎Nashorn、Base64。

JVM JVM發(fā)展史

Sun Classic/Exact VM: Classic VM:(第一款商用Java虛擬機;純解釋器,外掛編譯器(外掛后解析器便不再工作)),Exact VM(兩級即時編譯器;編譯器與解析器混合工作模式;使用準(zhǔn)確式內(nèi)存管理,可判斷內(nèi)存數(shù)據(jù)的類型)

Sun HotSpot VM:由"Longview Technologies"小公司設(shè)計,最后被Sun公司收購,具備Exact VM的優(yōu)點,及熱點代碼探測技術(shù)(通過執(zhí)行計數(shù)器找出最具有編譯價值代碼,通知JIT編譯器以方法為單位進行編譯。取代了Exact VM)

Sun Mobile-Embedded VM/Meta-Circular VM:面向移動和嵌入式市場。KVM(簡單、輕量、高度可移植,運行速度較慢,曾廣泛應(yīng)用非智能手機上);CDC/CLDC HotSpot Implementation(Java ME的重要支柱);Squawk VM(Java代碼比重很高);JavaInJava(Sun 公司實驗室性質(zhì)虛擬機,試圖實現(xiàn)"元循環(huán)",內(nèi)部沒有JIT編譯器,只以解釋模式執(zhí)行);Maxine VM(與JavaInJava相似,有先進的JIT編譯器和垃圾收集器(但沒有解釋器),執(zhí)行效率略高)。

BEA JRockit/IBM J9 VM:除Sun公司以外,其他研發(fā)虛擬機的公司中,規(guī)模最大、最著名的就是BEA和IBM公司。

Azul VM/BEA Liquid VM:高性能Java虛擬機

Apache harmony/Google Android Dalvik VM:"虛擬機",而非"Java 虛擬機"。

Microsoft JVM及其他:與Sun公司爭奪Java的控制權(quán),令Java從跨平臺技術(shù)變?yōu)榻壎ㄔ赪indows上的技術(shù)是微軟公司的主要目的。

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.hztianpu.com/yun/77664.html

相關(guān)文章

  • Leetcode 刷題持續(xù)更新

    摘要:字母區(qū)分大小寫,因此和是不同類型的石頭。輸入輸出暴力解法將寶石中的每個元素在石頭中的數(shù)量相加的時間復(fù)雜度為石頭中的每個元素此元素在寶石中則官方解法哈希表將搜索的時間復(fù)雜度變?yōu)? 本文章基于Datewhale第30期組隊學(xué)習(xí) 2021.11.15 # 1 兩數(shù)之和# 給定一個整數(shù)數(shù)組 nums...

    XanaHopper 評論0 收藏0
  • 刷題——Codewars Js題目(持續(xù)更新

    摘要:發(fā)現(xiàn)一個很好的練習(xí)做題網(wǎng)站都是自己做過的,先放自己的答案,再放自己覺得不錯的其他回答。 發(fā)現(xiàn)一個很好的練習(xí)做題網(wǎng)站 Codewars 都是自己做過的,先放自己的答案,再放自己覺得不錯的其他回答。 1. 將首字母放到后面并加上ay pigIt(This is my string)轉(zhuǎn)換成:pigIt(hisTay siay ymay tringsay) mine function...

    toddmark 評論0 收藏0
  • JavaSE與數(shù)據(jù)結(jié)構(gòu)基礎(chǔ)知識系列——專欄導(dǎo)航

    ??前面的話?? 大家好!這是Java基礎(chǔ)知識與數(shù)據(jù)結(jié)構(gòu)博文的導(dǎo)航帖,收藏我!學(xué)習(xí)Java不迷路! ?博客主頁:未見花聞的博客主頁 ?歡迎關(guān)注?點贊?收藏??留言? ?本文由未見花聞原創(chuàng),CSDN首發(fā)! ?首發(fā)時間:?2021年11月11日? ??堅持和努力一定能換來詩與遠方! ?參考書籍:?《Java核心技術(shù)卷1》,?《Java核心技術(shù)卷2》,?《Java編程思想》 ?參考在線編程網(wǎng)站:?牛...

    Cc_2011 評論0 收藏0
  • 常用java方法整理(刷題向,不定期更新

    1. CharacterisDigit(), isAlphabetic(), isLetter() [Alphabet > letter]toLowerCase()2.各種長度String length()List類:size()array: length3.Arrayssort()4.Math系列容易混淆(double) pow(double m, double n) m的n次方(double)...

    taohonghui 評論0 收藏0
  • LeetCode刷題題解:495. 提莫攻擊

    摘要:正式地講,提莫在發(fā)起發(fā)起攻擊意味著艾希在時間區(qū)間含和處于中毒狀態(tài)。示例輸入輸出解釋提莫攻擊對艾希的影響如下第秒,提莫攻擊艾希并使其立即中毒。第秒,提莫再次攻擊艾希,艾希中毒狀態(tài)又持續(xù)秒,即第秒和第秒。 ...

    buildupchao 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<