欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

新手了解java基礎(chǔ)知識(一)

 更新時(shí)間:2021年07月05日 11:30:33   作者:保護(hù)眼睛  
這篇文章主要介紹了Java基礎(chǔ)知識,本文介紹了Java語言相關(guān)的基礎(chǔ)知識、歷史介紹、主要應(yīng)用方向等內(nèi)容,需要的朋友可以參考下,希望對你有所幫助

1.java基礎(chǔ)

1.1Java歷史

Java:由Sun Microsystems公司于1995年5月推出的Java程序設(shè)計(jì)語言和Java平臺的總稱。Java語言是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計(jì)語言,由當(dāng)時(shí)任職太陽微系統(tǒng)的詹姆斯·高斯林(James Gosling)等人于1990年代初開發(fā),它最初被命名為Oak。Java伴隨著互聯(lián)網(wǎng)的迅猛發(fā)展而發(fā)展,逐漸成為重要的網(wǎng)絡(luò)編程語言。

  • 1991年4月,由James Gosling博士領(lǐng)導(dǎo)的綠色計(jì)劃(Green Project)開始啟動(dòng),此計(jì)劃的目的是開發(fā)一種能夠在各種消費(fèi)性電子產(chǎn)品(如機(jī)頂盒、冰箱、收音機(jī)等)上運(yùn)行的程序架構(gòu)。這個(gè)計(jì)劃的產(chǎn)品就是Java語言的前身:Oak(橡樹)。Oak當(dāng)時(shí)在消費(fèi)品市場上并不算成功,但隨著1995年互聯(lián)網(wǎng)潮流的興起,Oak迅速找到了最適合自己發(fā)展的市場定位并蛻變成為Java語言。
  • 1995年5月23日,Oak語言改名為Java,并且在SunWorld大會(huì)上正式發(fā)布Java 1.0版本。Java語言第一次提出了“Write Once,Run Anywhere”的口號。
  • 1996年1月23日,JDK 1.0發(fā)布,Java語言有了第一個(gè)正式版本的運(yùn)行環(huán)境。JDK 1.0提供了一個(gè)純解釋執(zhí)行的Java虛擬機(jī)實(shí)現(xiàn)(Sun Classic VM)。JDK 1.0版本的代表技術(shù)包括:Java虛擬機(jī)、Applet、AWT等。
  • 1996年4月,10個(gè)最主要的操作系統(tǒng)供應(yīng)商申明將在其產(chǎn)品中嵌入Java技術(shù)。同年9月,已有大約8.3萬個(gè)網(wǎng)頁應(yīng)用了Java技術(shù)來制作。在1996年5月底,Sun公司于美國舊金山舉行了首屆JavaOne大會(huì),從此JavaOne成為全世界數(shù)百萬Java語言開發(fā)者每年一度的技術(shù)盛會(huì)。
  • 1997年2月19日,Sun公司發(fā)布了JDK 1.1,Java技術(shù)的一些最基礎(chǔ)的支撐點(diǎn)(如JDBC等)都是在JDK 1.1版本中發(fā)布的,JDK 1.1版的技術(shù)代表有:JAR文件格式、JDBC、JavaBeans、RMI。Java語法也有了一定的發(fā)展,如內(nèi)部類(Inner Class)和反射(Reflection)都是在這個(gè)時(shí)候出現(xiàn)的。
  • 直到1999年4月8日,JDK 1.1一共發(fā)布了1.1.0~1.1.8九個(gè)版本。從1.1.4之后,每個(gè)JDK版本都有一個(gè)自己的名字(工程代號),分別為:JDK 1.1.4 - Sparkler(寶石)、JDK 1.1.5 - Pumpkin(南瓜)、JDK 1.1.6 - Abigail(阿比蓋爾,女子名)、JDK 1.1.7 - Brutus(布魯圖,古羅馬政治家和將軍)和JDK 1.1.8 – Chelsea(切爾西,城市名)。
  • 1998年12月4日,JDK迎來了一個(gè)里程碑式的版本JDK 1.2,工程代號為Playground(競技場),Sun在這個(gè)版本中把Java技術(shù)體系拆分為3個(gè)方向,分別是面向桌面應(yīng)用開發(fā)的J2SE(Java 2 Platform, Standard Edition)、面向企業(yè)級開發(fā)的J2EE(Java 2 Platform, Enterprise Edition)和面向手機(jī)等移動(dòng)終端開發(fā)的J2ME(Java 2 Platform, Micro Edition)。在這個(gè)版本中出現(xiàn)的代表性技術(shù)非常多,如EJB、Java Plug-in、Java IDL、Swing等,并且這個(gè)版本中Java虛擬機(jī)第一次內(nèi)置了JIT(Just In Time)編譯器(JDK 1.2中曾并存過3個(gè)虛擬機(jī),Classic VM、HotSpot VM和Exact VM,其中Exact VM只在Solaris平臺出現(xiàn)過;后面兩個(gè)虛擬機(jī)都是內(nèi)置JIT編譯器的,而之前版本所帶的Classic VM只能以外掛的形式使用JIT編譯器)。在語言和API級別上,Java添加了strictfp關(guān)鍵字與現(xiàn)在Java編碼之中極為常用的一系列Collections集合類。

在1999年3月和7月,分別有JDK 1.2.1和JDK 1.2.2兩個(gè)小版本發(fā)布。

  • 1999年4月27日,HotSpot虛擬機(jī)發(fā)布,HotSpot最初由一家名為“Longview Technologies”的小公司開發(fā),因?yàn)镠otSpot的優(yōu)異表現(xiàn),這家公司在1997年被Sun公司收購了。HotSpot虛擬機(jī)發(fā)布時(shí)是作為JDK 1.2的附加程序提供的,后來它成為了JDK 1.3及之后所有版本的Sun JDK的默認(rèn)虛擬機(jī)。
  • 2000年5月8日,工程代號為Kestrel(美洲紅隼)的JDK 1.3發(fā)布,JDK 1.3相對于JDK 1.2的改進(jìn)主要表現(xiàn)在一些類庫上(如數(shù)學(xué)運(yùn)算和新的Timer API等),JNDI服務(wù)從JDK 1.3開始被作為一項(xiàng)平臺級服務(wù)提供(以前JNDI僅僅是一項(xiàng)擴(kuò)展),使用CORBA IIOP來實(shí)現(xiàn)RMI的通信協(xié)議,等等。這個(gè)版本還對Java 2D做了很多改進(jìn),提供了大量新的Java 2D API,并且新添加了JavaSound類庫。JDK 1.3有1個(gè)修正版本JDK 1.3.1,工程代號為Ladybird(瓢蟲),于2001年5月17日發(fā)布。

自從JDK 1.3開始,Sun維持了一個(gè)習(xí)慣:大約每隔兩年發(fā)布一個(gè)JDK的主版本,以動(dòng)物命名,期間發(fā)布的各個(gè)修正版本則以昆蟲作為工程名稱。

  • 2002年2月13日,JDK 1.4發(fā)布,工程代號為Merlin(灰背隼)。JDK 1.4是Java真正走向成熟的一個(gè)版本,Compaq、Fujitsu、SAS、Symbian、IBM等著名公司都有參與甚至實(shí)現(xiàn)自己獨(dú)立的JDK 1.4。哪怕是在十多年后的今天,仍然有許多主流應(yīng)用(Spring、Hibernate、Struts等)能直接運(yùn)行在JDK 1.4之上,或者繼續(xù)發(fā)布能運(yùn)行在JDK 1.4上的版本。JDK 1.4同樣發(fā)布了很多新的技術(shù)特性,如正則表達(dá)式、異常鏈、NIO、日志類、XML解析器和XSLT轉(zhuǎn)換器等。

JDK 1.4有兩個(gè)后續(xù)修正版:

  • 2002年9月16日發(fā)布的工程代號為Grasshopper(蚱蜢)的JDK 1.4.1
  • 2003年6月26日發(fā)布的工程代號為Mantis(螳螂)的JDK 1.4.2。
  • 2002年前后還發(fā)生了一件與Java沒有直接關(guān)系,但事實(shí)上對Java的發(fā)展進(jìn)程影響很大的事件,那就是微軟公司的.NET Framework發(fā)布了。這個(gè)無論是技術(shù)實(shí)現(xiàn)上還是目標(biāo)用戶上都與Java有很多相近之處的技術(shù)平臺給Java帶來了很多討論、比較和競爭,.NET平臺和Java平臺之間聲勢浩大的孰優(yōu)孰劣的論戰(zhàn)到目前為止都在繼續(xù)。
  • 2004年9月30日,JDK 1.5發(fā)布,工程代號Tiger(老虎)。從JDK 1.2以來,Java在語法層面上的變換一直很小,而JDK 1.5在Java語法易用性上做出了非常大的改進(jìn)。例如,自動(dòng)裝箱、泛型、動(dòng)態(tài)注解、枚舉、可變長參數(shù)、遍歷循環(huán)(foreach循環(huán))等語法特性都是在JDK 1.5中加入的。在虛擬機(jī)和API層面上,這個(gè)版本改進(jìn)了Java的內(nèi)存模型(Java Memory Model,JMM)、提供了java.util.concurrent并發(fā)包等。另外,JDK 1.5是官方聲明可以支持Windows 9x平臺的最后一個(gè)JDK版本。
  • 2006年12月11日,JDK 1.6發(fā)布,工程代號Mustang(野馬)。在這個(gè)版本中,Sun終結(jié)了從JDK 1.2開始已經(jīng)有8年歷史的J2EE、J2SE、J2ME的命名方式,啟用Java SE 6、Java EE 6、Java ME 6的命名方式。JDK 1.6的改進(jìn)包括:提供動(dòng)態(tài)語言支持(通過內(nèi)置Mozilla Java Rhino引擎實(shí)現(xiàn))、提供編譯API和微型HTTP服務(wù)器API等。同時(shí),這個(gè)版本對Java虛擬機(jī)內(nèi)部做了大量改進(jìn),包括鎖與同步、垃圾收集、類加載等方面的算法都有相當(dāng)多的改動(dòng)。
  • 在2006年11月13日的JavaOne大會(huì)上,Sun公司宣布最終會(huì)將Java開源,并在隨后的一年多時(shí)間內(nèi),陸續(xù)將JDK的各個(gè)部分在GPL v2(GNU General Public License v2)協(xié)議下公開了源碼,并建立了OpenJDK組織對這些源碼進(jìn)行獨(dú)立管理。除了極少量的產(chǎn)權(quán)代碼(Encumbered Code,這部分代碼大多是Sun本身也無權(quán)限進(jìn)行開源處理的)外,OpenJDK幾乎包括了Sun JDK的全部代碼,OpenJDK的質(zhì)量主管曾經(jīng)表示,在JDK 1.7中,Sun JDK和OpenJDK除了代碼文件頭的版權(quán)注釋之外,代碼基本上完全一樣,所以O(shè)penJDK 7與Sun JDK 1.7本質(zhì)上就是同一套代碼庫開發(fā)的產(chǎn)品。

JDK 1.6發(fā)布以后,由于代碼復(fù)雜性的增加、JDK開源、開發(fā)JavaFX、經(jīng)濟(jì)危機(jī)及Sun收購案等原因,Sun在JDK發(fā)展以外的事情上耗費(fèi)了很多資源,JDK的更新沒有再維持兩年發(fā)布一個(gè)主版本的發(fā)展速度。JDK 1.6到目前為止一共發(fā)布了37個(gè)Update版本,最新的版本為Java SE 6 Update 37,于2012年10月16日發(fā)布。

  • 2009年2月19日,工程代號為Dolphin(海豚)的JDK 1.7完成了其第一個(gè)里程碑版本。根據(jù)JDK 1.7的功能規(guī)劃,一共設(shè)置了10個(gè)里程碑。最后一個(gè)里程碑版本原計(jì)劃于2010年9月9日結(jié)束,但由于各種原因,JDK 1.7最終無法按計(jì)劃完成。

從JDK 1.7最開始的功能規(guī)劃來看,它本應(yīng)是一個(gè)包含許多重要改進(jìn)的JDK版本,其中的Lambda項(xiàng)目(Lambda表達(dá)式、函數(shù)式編程)、Jigsaw項(xiàng)目(虛擬機(jī)模塊化支持)、動(dòng)態(tài)語言支持、GarbageFirst收集器和Coin項(xiàng)目(語言細(xì)節(jié)進(jìn)化)等子項(xiàng)目對于Java業(yè)界都會(huì)產(chǎn)生深遠(yuǎn)的影響。在JDK 1.7開發(fā)期間,Sun公司由于相繼在技術(shù)競爭和商業(yè)競爭中都陷入泥潭,公司的股票市值跌至僅有高峰時(shí)期的3%,已無力推動(dòng)JDK 1.7的研發(fā)工作按正常計(jì)劃進(jìn)行。為了盡快結(jié)束JDK 1.7長期“跳票”的問題,Oracle公司收購Sun公司后不久便宣布將實(shí)行“B計(jì)劃”,大幅裁剪了JDK 1.7預(yù)定目標(biāo),以便保證JDK 1.7的正式版能夠于2011年7月28日準(zhǔn)時(shí)發(fā)布。“B計(jì)劃”把不能按時(shí)完成的Lambda項(xiàng)目、Jigsaw項(xiàng)目和Coin項(xiàng)目的部分改進(jìn)延遲到JDK 1.8之中。最終,JDK 1.7的主要改進(jìn)包括:提供新的G1收集器(G1在發(fā)布時(shí)依然處于Experimental狀態(tài),直至2012年4月的Update 4中才正式“轉(zhuǎn)正”)、加強(qiáng)對非Java語言的調(diào)用支持(JSR-292,這項(xiàng)特性到目前為止依然沒有完全實(shí)現(xiàn)定型)、升級類加載架構(gòu)等。

到目前為止,JDK 1.7已經(jīng)發(fā)布了9個(gè)Update版本,最新的Java SE 7 Update 9于2012年10月16日發(fā)布。從Java SE 7 Update 4起,Oracle開始支持Mac OS X操作系統(tǒng),并在Update 6中達(dá)到完全支持的程度,同時(shí),在Update 6中還對ARM指令集架構(gòu)提供了支持。至此,官方提供的JDK可以運(yùn)行于Windows(不含Windows 9x)、Linux、Solaris和Mac OS平臺上,支持ARM、x86、x64和Sparc指令集架構(gòu)類型。

  • 2009年4月20日,Oracle公司宣布正式以74億美元的價(jià)格收購Sun公司,Java商標(biāo)從此正式歸Oracle所有(Java語言本身并不屬于哪間公司所有,它由JCP組織進(jìn)行管理,盡管JCP主要是由Sun公司或者說Oracle公司所領(lǐng)導(dǎo)的)。由于此前Oracle公司已經(jīng)收購了另外一家大型的中間件企業(yè)BEA公司,在完成對Sun公司的收購之后,Oracle公司分別從BEA和Sun中取得了目前三大商業(yè)虛擬機(jī)的其中兩個(gè):JRockit和HotSpot,Oracle公司宣布在未來1~2年的時(shí)間內(nèi),將把這兩個(gè)優(yōu)秀的虛擬機(jī)互相取長補(bǔ)短,最終合二為一。可以預(yù)見在不久的將來,Java虛擬機(jī)技術(shù)將會(huì)產(chǎn)生相當(dāng)巨大的變化。
  • 2011年7月28日,Oracle公司發(fā)布Java SE 1.7
  • 2014年3月18日,Oracle公司發(fā)表Java SE 1.8

1.2Java特點(diǎn)

1.2.1 簡單性

Java語法是C++語法的一個(gè)“純凈版本”。這里沒有頭文件、指針運(yùn)算(甚至指針語法)、結(jié)構(gòu)、聯(lián)合、操作符重載、虛基類等等。不僅如此,Java開發(fā)環(huán)境遠(yuǎn)遠(yuǎn)超出大多數(shù)其他編程語言的開發(fā)環(huán)境。

1.2.2 面向?qū)ο?/h4>

什么是面向?qū)ο螅?這里我們用木匠打一個(gè)比方,一個(gè)“面向?qū)ο蟆钡哪窘呈冀K關(guān)注的是所制作的椅子,第二位才是所使用的工具;而一個(gè)“非面向?qū)ο蟮摹蹦窘呈紫瓤紤]的是所使用的工具。

在Java的世界里,一切皆對象。

Java的面向?qū)ο筇匦耘cC++旗鼓相當(dāng),與C++的主要不同點(diǎn)在于多重繼承。在Java中,取而代之的是更簡單的接口概念。而且與C++相比,Java提供了更豐富的運(yùn)行時(shí)自省功能。

1.2.3 分布式(微服務(wù))

比特科技Java有豐富的例程庫,用于處理像HTTP和FTP之類的TCP/IP協(xié)議。Java應(yīng)用程序能夠通過URL打開和訪問網(wǎng)絡(luò)上的對象,其便捷程度就好像訪問本地文件一樣。

1.2.4 健壯性

Java與C++最大的不同在于Java采用的指針模型可以消除重寫內(nèi)存和損壞數(shù)據(jù)的可能性(對于曾經(jīng)花費(fèi)幾個(gè)小時(shí)來檢查由于指針bug而引起內(nèi)存沖突的人來說,一定很喜歡Java的這一特性)。不僅如此,Java編譯器能夠檢測許多在其他語言中僅在運(yùn)行時(shí)才能夠檢測出來的問題。

1.2.5 安全性

Java適用于網(wǎng)絡(luò)/分布式環(huán)境。為了達(dá)到這個(gè)目標(biāo),在安全性方面投入了大量的精力。使用Java可以構(gòu)建防病毒、防篡改的系統(tǒng)

從一開始,Java就設(shè)計(jì)成能夠防范常見的各種攻擊:

  • 運(yùn)行時(shí)堆棧溢出。蠕蟲和病毒常用的攻擊手段。
  • 破壞自己進(jìn)程空間之外的內(nèi)存。
  • 經(jīng)授權(quán)讀寫文件

1.2.6 體系結(jié)構(gòu)中立

編譯器生成一個(gè)體系結(jié)構(gòu)中立的目標(biāo)文件格式,這是一種編譯過的代碼,只要有Java運(yùn)行時(shí)系統(tǒng),這些編譯后的代碼就可以在許多處理器上運(yùn)行。Java編譯器通過生成與特定計(jì)算機(jī)體系結(jié)構(gòu)無關(guān)的字節(jié)碼指令來實(shí)現(xiàn)這一特性。精心設(shè)計(jì)的字節(jié)碼不僅可以很容易的在任何機(jī)器上解釋執(zhí)行,而且還可以動(dòng)態(tài)地翻譯成本地機(jī)器代碼

1.2.7 可移植性

與C/C++不同,Java規(guī)范中沒有“依賴具體實(shí)現(xiàn)的地方”?;緮?shù)據(jù)類型的大小以及有關(guān)運(yùn)算都做了明確的說明。例如,Java中的int永遠(yuǎn)是32位的整數(shù),而在C/C++中,int可能是16位整數(shù)、32位整數(shù),也可能是編譯器提供商指定的其他大小。在Java中,數(shù)據(jù)類型具有固定的大小,這消除了代碼移植時(shí)令人頭疼的主要問題。

1.2.8 高性能

盡管對解釋后的字節(jié)碼性能已經(jīng)比較滿意,但在有些場合下可能需要更加高效的性能。字節(jié)碼可以(在運(yùn)行時(shí)刻)動(dòng)態(tài)的翻譯成對應(yīng)運(yùn)行這個(gè)應(yīng)用的特定cpu的機(jī)器碼。

1.2.9多線程

Java在當(dāng)時(shí)很超前。它是第一個(gè)支持并發(fā)程序設(shè)計(jì)的主流語言。多線程可以帶來更好的交互響應(yīng)和實(shí)時(shí)行為。并發(fā)程序設(shè)計(jì)絕非易事,但是Java在這方面表現(xiàn)出色,可以很好的管理這個(gè)工作。

1.2.10 動(dòng)態(tài)性

Java與C/C++相比更加具有動(dòng)態(tài)性。它能夠適應(yīng)不斷發(fā)展的環(huán)境。庫中可以自由的添加新方法和實(shí)例變量,而對客戶端沒有任何影響。在Java中找出運(yùn)行時(shí)類型信息十分簡單(反射的特性,后續(xù)會(huì)學(xué)到)

1.3Java基本數(shù)據(jù)類型

內(nèi)置數(shù)據(jù)類型

Java語言提供了八種基本類型。六種數(shù)字類型(四個(gè)整數(shù)型,兩個(gè)浮點(diǎn)型),一種字符類型,還有一種布爾型。

byte:

byte 數(shù)據(jù)類型是8位、有符號的,以二進(jìn)制補(bǔ)碼表示的整數(shù);

最小值是 -128(-2^7);

最大值是 127(2^7-1);

默認(rèn)值是 0;

byte 類型用在大型數(shù)組中節(jié)約空間,主要代替整數(shù),因?yàn)?byte 變量占用的空間只有 int 類型的四分之一;

例子:byte a = 100,byte b = -50。

short:

short 數(shù)據(jù)類型是 16 位、有符號的以二進(jìn)制補(bǔ)碼表示的整數(shù)

最小值是 -32768(-2^15);

最大值是 32767(2^15 - 1);

Short 數(shù)據(jù)類型也可以像 byte 那樣節(jié)省空間。一個(gè)short變量是int型變量所占空間的二分之一;

默認(rèn)值是 0;例子:short s = 1000,short r = -20000。

int:

int 數(shù)據(jù)類型是32位、有符號的以二進(jìn)制補(bǔ)碼表示的整數(shù);

最小值是 -2,147,483,648(-2^31);

最大值是 2,147,483,647(2^31 - 1);

一般地整型變量默認(rèn)為 int 類型;

默認(rèn)值是 0 ;

例子:int a = 100000, int b = -200000。

long:

long 數(shù)據(jù)類型是 64 位、有符號的以二進(jìn)制補(bǔ)碼表示的整數(shù);

最小值是 -9,223,372,036,854,775,808(-2^63);

最大值是 9,223,372,036,854,775,807(2^63 -1);

這種類型主要使用在需要比較大整數(shù)的系統(tǒng)上;

默認(rèn)值是 0L;

例子: long a = 100000L,Long b = -200000L。

"L"理論上不分大小寫,但是若寫成"l"容易與數(shù)字"1"混淆,不容易分辯。所以最好大寫。

float:

float 數(shù)據(jù)類型是單精度、32位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù);

float 在儲(chǔ)存大型浮點(diǎn)數(shù)組的時(shí)候可節(jié)省內(nèi)存空間;

默認(rèn)值是 0.0f;

浮點(diǎn)數(shù)不能用來表示精確的值,如貨幣;

例子:float f1 = 234.5f。

double:

double 數(shù)據(jù)類型是雙精度、64 位、符合IEEE 754標(biāo)準(zhǔn)的浮點(diǎn)數(shù);

浮點(diǎn)數(shù)的默認(rèn)類型為double類型;

double類型同樣不能表示精確的值,如貨幣;

默認(rèn)值是 0.0d;

例子:double d1 = 123.4。

boolean:

boolean數(shù)據(jù)類型表示一位的信息;

只有兩個(gè)取值:true 和 false;

這種類型只作為一種標(biāo)志來記錄 true/false 情況;

默認(rèn)值是 false;

例子:boolean one = true。

char:

char類型是一個(gè)單一的 16 位 Unicode 字符;

最小值是 \u0000(即為 0);

最大值是 \uffff(即為 65535);

char 數(shù)據(jù)類型可以儲(chǔ)存任何字符;

例子:char letter = ‘A';。

1.4例子

public class TestDemo {
public static void main(String[] args) {
            boolean flg = true;
            boolean flg2 = false;
            //沒有0是假   非0是真
        /*int i = (int)flg;
        flg = (boolean) 10;*/
            //不要嘗試布爾類型和其他數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換
        }
        public static void main8(String[] args) {
            short sh = 10;//2  15
            System.out.println(sh);
        }
        public static void main7(String[] args) {
            byte b = 127;//1   -128 -  127
            int d = 2147483647;
            byte c = 10;
            byte e = 20;
            byte f = (byte)(c+e);// (byte) 強(qiáng)制類型轉(zhuǎn)換
            //整型提升
            int i = 10;
            i = c;
            long l = 20;
            long i2 = i+l;//整型提升
        }
        //unicode  統(tǒng)一碼
        public static void main6(String[] args) {
            String ch = "abc";
            char ch2 = 'a';//2
            System.out.println(ch2);
            char ch3 = '高';
            System.out.println(ch3);
            char ch4 = 97;
            System.out.println(ch4);
//        char ch5 = -9;  不能表示負(fù)數(shù)
//        System.out.println(ch5);
        }
        public static void main5(String[] args) {
            float f = 12.5f;//4
            System.out.println(f);
        }
        public static void main4(String[] args) {
       /* double d = 12.5;//8  CTR+SHIFT+/
        System.out.println(d);
        System.out.println(Double.MAX_VALUE);
        System.out.println(Double.MIN_VALUE);
        */
            //小數(shù)沒有精確的   int a = 10;
            double a = 1.1;
            double b = 1.1;
            System.out.println(a*b);
            int c = 1;
            int d = 2;
            System.out.println(c/d);
        }
        public static void main3(String[] args) {
            long b = 10L;//8  可移植性
            System.out.println(Long.MAX_VALUE);
            System.out.println(Long.MIN_VALUE);
            System.out.println(b);
        }
        /**
         *
         * @param args
         */
        public static void main2(String[] args) {
            int a = 10;//局部變量
            //在Java當(dāng)中  局部變量定義了之后一定要賦值
            //System.out.println(a);
        }
        public static void main1(String[] args) {
            //整型
            int a = 10;//4個(gè)字節(jié)
            System.out.println(Integer.MAX_VALUE);
            System.out.println(Integer.MIN_VALUE);
            int b = Integer.MAX_VALUE;
            System.out.println(b+1);
            int c = Integer.MIN_VALUE;
            System.out.println(c-1);
            System.out.println("hello");
        }

}

1.5基本數(shù)據(jù)類型的包裝類

基本數(shù)據(jù)類型 包裝類 所占字節(jié)
byte Byte 1
short Short 2
int Integer 4
long Long 8
char Character 2
float Float 4
double Double 8
boolean 只有true和false兩個(gè)值

1.6強(qiáng)制類型轉(zhuǎn)換

1.條件是轉(zhuǎn)換的數(shù)據(jù)類型必須是兼容的。

2.格式:(type)value type是要強(qiáng)制類型轉(zhuǎn)換后的數(shù)據(jù)類型 實(shí)例

public class QiangZhiZhuanHuan{
    public static void main(String[] args){
        int i1 = 123;
        byte b = (byte)i1;//強(qiáng)制類型轉(zhuǎn)換為byte
        System.out.println("int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于"+b);
    }
}

int強(qiáng)制類型轉(zhuǎn)換為byte后的值等于123

1.7隱含強(qiáng)制類型轉(zhuǎn)換

1.整數(shù)的默認(rèn)類型是 int。

2.浮點(diǎn)型不存在這種情況,因?yàn)樵诙x float 類型時(shí)必須在數(shù)字后面跟上 F 或者 f。

1.8自動(dòng)類型轉(zhuǎn)換

必須滿足轉(zhuǎn)換前的數(shù)據(jù)類型的位數(shù)要低于轉(zhuǎn)換后的數(shù)據(jù)類型,例如: short數(shù)據(jù)類型的位數(shù)為16位,就可以自動(dòng)轉(zhuǎn)換位數(shù)為32的int類型,同樣float數(shù)據(jù)類型的位數(shù)為32,可以自動(dòng)轉(zhuǎn)換為64位的double類型。

public class ZiDongLeiZhuan{
        public static void main(String[] args){
            char c1='a';//定義一個(gè)char類型
            int i1 = c1;//char自動(dòng)類型轉(zhuǎn)換為int
            System.out.println("char自動(dòng)類型轉(zhuǎn)換為int后的值等于"+i1);
            char c2 = 'A';//定義一個(gè)char類型
            int i2 = c2+1;//char 類型和 int 類型計(jì)算
            System.out.println("char類型和int計(jì)算后的值等于"+i2);
        }
}
運(yùn)行結(jié)果為:
char自動(dòng)類型轉(zhuǎn)換為int后的值等于97
char類型和int計(jì)算后的值等于66

總結(jié)

本篇文章就到這里了,希望對你有所幫助,也希望你能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • java為什么不建議用equals判斷對象相等

    java為什么不建議用equals判斷對象相等

    本文主要介紹了java為什么不建議用equals判斷對象相等,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • java中匿名內(nèi)部類詳解

    java中匿名內(nèi)部類詳解

    這篇文章主要對java中的匿名內(nèi)部類的詳細(xì)總結(jié),需要的朋友可以參考下
    2017-04-04
  • 一文搞懂Java橋接方法

    一文搞懂Java橋接方法

    這篇文章主要介紹了Java中的橋接方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-07-07
  • 詳解Java的文件與目錄管理以及輸入輸出相關(guān)操作

    詳解Java的文件與目錄管理以及輸入輸出相關(guān)操作

    這篇文章主要介紹了詳解Java的文件與目錄管理以及輸入輸出相關(guān)操作,是Java入門學(xué)習(xí)中的基礎(chǔ)知識,需要的朋友可以參考下
    2015-09-09
  • java讀取PHP接口數(shù)據(jù)的實(shí)現(xiàn)方法

    java讀取PHP接口數(shù)據(jù)的實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄猨ava讀取PHP接口數(shù)據(jù)的實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-08-08
  • SpringBoot整合jersey的示例代碼

    SpringBoot整合jersey的示例代碼

    本篇文章主要介紹了SpringBoot整合jersey的示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Java 利用棧來反轉(zhuǎn)鏈表和排序的操作

    Java 利用棧來反轉(zhuǎn)鏈表和排序的操作

    這篇文章主要介紹了Java 利用棧來反轉(zhuǎn)鏈表和排序的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Spring?Data?Jpa框架最佳實(shí)踐示例

    Spring?Data?Jpa框架最佳實(shí)踐示例

    這篇文章主要為大家介紹了Spring?Data?Jpa框架最佳實(shí)踐示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-02-02
  • Java實(shí)現(xiàn)小程序簡單五子棋

    Java實(shí)現(xiàn)小程序簡單五子棋

    這篇文章主要介紹了利用Java實(shí)現(xiàn)小程序簡單五子棋,本程序適用于java初學(xué)者鞏固類與對象、事件響應(yīng)、awt包中各種工具的相關(guān)概念以及對邏輯能力的鍛煉,下面來看具體實(shí)現(xiàn)吧
    2021-12-12
  • 使用springboot打包成zip部署,并實(shí)現(xiàn)優(yōu)雅停機(jī)

    使用springboot打包成zip部署,并實(shí)現(xiàn)優(yōu)雅停機(jī)

    這篇文章主要介紹了使用springboot打包成zip部署,并實(shí)現(xiàn)優(yōu)雅停機(jī),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評論