⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000000.htm

📁 水木清华BBS
💻 HTM
📖 第 1 页 / 共 5 页
字号:
Java&nbsp;syntax&nbsp;for&nbsp;C&nbsp;programmers:&nbsp;<BR>&nbsp;<BR>3.1:&nbsp;Data&nbsp;Types&nbsp;<BR>&nbsp;<BR>Java's&nbsp;primitive&nbsp;data&nbsp;types&nbsp;are&nbsp;very&nbsp;similar&nbsp;to&nbsp;those&nbsp;of&nbsp;C.&nbsp;Strings,&nbsp;booleans,&nbsp;and&nbsp;true&nbsp;arrays&nbsp;have&nbsp;<BR>been&nbsp;added.&nbsp;However&nbsp;the&nbsp;implementation&nbsp;of&nbsp;the&nbsp;data&nbsp;types&nbsp;has&nbsp;been&nbsp;substantially&nbsp;cleaned&nbsp;up&nbsp;in&nbsp;<BR>several&nbsp;ways.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;1.Where&nbsp;C&nbsp;and&nbsp;C++&nbsp;leave&nbsp;a&nbsp;number&nbsp;of&nbsp;issues&nbsp;to&nbsp;be&nbsp;machine&nbsp;and&nbsp;compiler&nbsp;dependent&nbsp;(for&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;instance&nbsp;the&nbsp;size&nbsp;of&nbsp;an&nbsp;int)&nbsp;Java&nbsp;specifies&nbsp;everything.&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;2.Java&nbsp;prevents&nbsp;casting&nbsp;between&nbsp;arbitrary&nbsp;variables.&nbsp;Only&nbsp;casts&nbsp;between&nbsp;numeric&nbsp;variables&nbsp;and&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;between&nbsp;sub&nbsp;and&nbsp;superclasses&nbsp;of&nbsp;the&nbsp;same&nbsp;object&nbsp;are&nbsp;allowed.&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;3.All&nbsp;numeric&nbsp;variables&nbsp;in&nbsp;Java&nbsp;are&nbsp;signed.&nbsp;<BR>&nbsp;<BR>Here&nbsp;are&nbsp;the&nbsp;detailed&nbsp;data&nbsp;types:&nbsp;&nbsp;<BR>&nbsp;<BR>boolean&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1-bit.&nbsp;May&nbsp;take&nbsp;on&nbsp;the&nbsp;values&nbsp;true&nbsp;and&nbsp;false&nbsp;only.&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;true&nbsp;and&nbsp;false&nbsp;are&nbsp;defined&nbsp;constants&nbsp;of&nbsp;the&nbsp;language&nbsp;and&nbsp;are&nbsp;not&nbsp;the&nbsp;same&nbsp;as&nbsp;True&nbsp;and&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;False,&nbsp;TRUE&nbsp;and&nbsp;FALSE,&nbsp;zero&nbsp;and&nbsp;nonzero,&nbsp;1&nbsp;and&nbsp;0&nbsp;or&nbsp;any&nbsp;other&nbsp;numeric&nbsp;value.&nbsp;Booleans&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;may&nbsp;not&nbsp;be&nbsp;cast&nbsp;into&nbsp;any&nbsp;other&nbsp;type&nbsp;of&nbsp;variable&nbsp;nor&nbsp;may&nbsp;any&nbsp;other&nbsp;variable&nbsp;be&nbsp;cast&nbsp;into&nbsp;a&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;boolean.&nbsp;<BR>&nbsp;<BR>byte&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;signed&nbsp;byte&nbsp;(two's&nbsp;complement).&nbsp;Covers&nbsp;values&nbsp;from&nbsp;-128&nbsp;to&nbsp;127.&nbsp;<BR>&nbsp;<BR>short&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;bytes&nbsp;signed&nbsp;(two's&nbsp;complement),&nbsp;-32,768&nbsp;to&nbsp;32,767&nbsp;<BR>&nbsp;<BR>int&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;bytes,&nbsp;signed&nbsp;(two's&nbsp;complement).&nbsp;-2,147,483,648&nbsp;to&nbsp;2,147,483,647.&nbsp;Like&nbsp;all&nbsp;numeric&nbsp;types&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ints&nbsp;may&nbsp;be&nbsp;cast&nbsp;into&nbsp;other&nbsp;numeric&nbsp;types&nbsp;(byte,&nbsp;short,&nbsp;long,&nbsp;float,&nbsp;double).&nbsp;When&nbsp;lossy&nbsp;casts&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;are&nbsp;done&nbsp;(e.g.&nbsp;int&nbsp;to&nbsp;byte)&nbsp;the&nbsp;conversion&nbsp;is&nbsp;done&nbsp;modulo&nbsp;the&nbsp;length&nbsp;of&nbsp;the&nbsp;smaller&nbsp;type.&nbsp;<BR>&nbsp;<BR>long&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;bytes&nbsp;signed&nbsp;(two's&nbsp;complement).&nbsp;Ranges&nbsp;from&nbsp;-9,223,372,036,854,775,808&nbsp;to&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;+9,223,372,036,854,775,807.&nbsp;<BR>&nbsp;<BR>float&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4&nbsp;bytes,&nbsp;IEEE&nbsp;754.&nbsp;Covers&nbsp;a&nbsp;range&nbsp;from&nbsp;1.40129846432481707e-45&nbsp;to&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3.40282346638528860e+38&nbsp;(positive&nbsp;or&nbsp;negative).&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Like&nbsp;all&nbsp;numeric&nbsp;types&nbsp;floats&nbsp;may&nbsp;be&nbsp;cast&nbsp;into&nbsp;other&nbsp;numeric&nbsp;types&nbsp;(byte,&nbsp;short,&nbsp;long,&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int,&nbsp;double).&nbsp;When&nbsp;lossy&nbsp;casts&nbsp;to&nbsp;integer&nbsp;types&nbsp;are&nbsp;done&nbsp;(e.g.&nbsp;float&nbsp;to&nbsp;short)&nbsp;the&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fractional&nbsp;part&nbsp;is&nbsp;truncated&nbsp;and&nbsp;the&nbsp;conversion&nbsp;is&nbsp;done&nbsp;modulo&nbsp;the&nbsp;length&nbsp;of&nbsp;the&nbsp;smaller&nbsp;type.&nbsp;<BR>&nbsp;<BR>double&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;8&nbsp;bytes&nbsp;IEEE&nbsp;754.&nbsp;Covers&nbsp;a&nbsp;range&nbsp;from&nbsp;4.94065645841246544e-324d&nbsp;to&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1.79769313486231570e+308d&nbsp;(positive&nbsp;or&nbsp;negative).&nbsp;<BR>&nbsp;<BR>char&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;unsigned&nbsp;bytes,&nbsp;Unicode.&nbsp;&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Chars&nbsp;are&nbsp;not&nbsp;the&nbsp;same&nbsp;as&nbsp;bytes,&nbsp;ints,&nbsp;shorts&nbsp;or&nbsp;Strings.&nbsp;<BR>&nbsp;<BR>Strings&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Strings&nbsp;are&nbsp;a&nbsp;special&nbsp;object&nbsp;defined&nbsp;in&nbsp;java.lang.String.&nbsp;They&nbsp;are&nbsp;not&nbsp;null&nbsp;terminated&nbsp;and&nbsp;are&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;not&nbsp;the&nbsp;same&nbsp;as&nbsp;an&nbsp;array&nbsp;of&nbsp;chars.&nbsp;<BR>&nbsp;<BR>array&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Arrays&nbsp;are&nbsp;objects.&nbsp;Multidimensional&nbsp;arrays&nbsp;are&nbsp;created&nbsp;via&nbsp;arrays&nbsp;of&nbsp;arrays.&nbsp;<BR>&nbsp;<BR>sizeof&nbsp;isn't&nbsp;necessary&nbsp;in&nbsp;Java&nbsp;because&nbsp;all&nbsp;sizes&nbsp;are&nbsp;precisely&nbsp;defined.&nbsp;i.e.&nbsp;an&nbsp;int&nbsp;is&nbsp;always&nbsp;4&nbsp;bytes.&nbsp;<BR>This&nbsp;may&nbsp;not&nbsp;seem&nbsp;to&nbsp;be&nbsp;adequate&nbsp;when&nbsp;dealing&nbsp;with&nbsp;objects&nbsp;that&nbsp;aren't&nbsp;base&nbsp;data&nbsp;types.&nbsp;However&nbsp;<BR>even&nbsp;if&nbsp;you&nbsp;did&nbsp;know&nbsp;the&nbsp;size&nbsp;of&nbsp;a&nbsp;particular&nbsp;object,&nbsp;you&nbsp;couldn't&nbsp;do&nbsp;anything&nbsp;with&nbsp;it&nbsp;anyway.&nbsp;You&nbsp;<BR>cannot&nbsp;convert&nbsp;an&nbsp;arbitrary&nbsp;object&nbsp;into&nbsp;bytes&nbsp;and&nbsp;back&nbsp;again.&nbsp;&nbsp;<BR>&nbsp;<BR>3.2:&nbsp;Control&nbsp;Statements&nbsp;<BR>&nbsp;<BR>Java&nbsp;contains&nbsp;if,&nbsp;else,&nbsp;for,&nbsp;while,&nbsp;do&nbsp;while&nbsp;and&nbsp;switch&nbsp;statements.&nbsp;The&nbsp;syntax&nbsp;is&nbsp;identical&nbsp;<BR>to&nbsp;C's.&nbsp;However&nbsp;all&nbsp;condition&nbsp;tests&nbsp;must&nbsp;return&nbsp;boolean&nbsp;values.&nbsp;Since&nbsp;non-boolean&nbsp;assignment&nbsp;<BR>statements&nbsp;and&nbsp;arithmetic&nbsp;statements&nbsp;do&nbsp;not&nbsp;return&nbsp;a&nbsp;boolean&nbsp;value,&nbsp;some&nbsp;of&nbsp;the&nbsp;more&nbsp;obfuscated&nbsp;<BR>condition&nbsp;tests&nbsp;in&nbsp;C&nbsp;are&nbsp;prohibited.&nbsp;<BR>&nbsp;<BR>3.3:&nbsp;Command&nbsp;Line&nbsp;Arguments&nbsp;<BR>&nbsp;<BR>Command&nbsp;line&nbsp;arguments&nbsp;are&nbsp;like&nbsp;C's&nbsp;except&nbsp;that&nbsp;argv&nbsp;has&nbsp;become&nbsp;a&nbsp;string&nbsp;array&nbsp;commonly&nbsp;<BR>called&nbsp;args&nbsp;and&nbsp;args[0]&nbsp;is&nbsp;the&nbsp;first&nbsp;command&nbsp;line&nbsp;argument,&nbsp;not&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;program.&nbsp;The&nbsp;<BR>other&nbsp;arguments&nbsp;are&nbsp;all&nbsp;shifted&nbsp;one&nbsp;to&nbsp;the&nbsp;left&nbsp;from&nbsp;where&nbsp;they'd&nbsp;be&nbsp;in&nbsp;C&nbsp;or&nbsp;C++.&nbsp;<BR>&nbsp;<BR>3.4:&nbsp;Comments&nbsp;<BR>&nbsp;<BR>Java&nbsp;supports&nbsp;both&nbsp;the&nbsp;/*&nbsp;This&nbsp;is&nbsp;a&nbsp;comment&nbsp;*/&nbsp;comment&nbsp;from&nbsp;C&nbsp;and&nbsp;the&nbsp;&nbsp;<BR>//&nbsp;This&nbsp;is&nbsp;a&nbsp;C++&nbsp;comment&nbsp;<BR>comment&nbsp;from&nbsp;C++.&nbsp;&nbsp;<BR>&nbsp;<BR>However&nbsp;comments&nbsp;that&nbsp;begin&nbsp;with&nbsp;a&nbsp;/**&nbsp;are&nbsp;special.&nbsp;These&nbsp;comments&nbsp;should&nbsp;only&nbsp;be&nbsp;used&nbsp;before&nbsp;<BR>a&nbsp;method&nbsp;or&nbsp;class&nbsp;declaration.&nbsp;They&nbsp;indicate&nbsp;that&nbsp;the&nbsp;comment&nbsp;should&nbsp;be&nbsp;included&nbsp;in&nbsp;automatically&nbsp;<BR>generated&nbsp;documentation&nbsp;for&nbsp;that&nbsp;declaration.&nbsp;&nbsp;<BR>&nbsp;<BR>3.5:&nbsp;Classes&nbsp;<BR>&nbsp;<BR>Java&nbsp;does&nbsp;not&nbsp;support&nbsp;multiple&nbsp;inheritance.&nbsp;<BR>&nbsp;<BR>Superclasses&nbsp;of&nbsp;a&nbsp;class&nbsp;are&nbsp;indicated&nbsp;with&nbsp;the&nbsp;extends&nbsp;keyword&nbsp;rather&nbsp;than&nbsp;with&nbsp;a&nbsp;:.&nbsp;<BR>&nbsp;<BR>Methods&nbsp;must&nbsp;be&nbsp;defined&nbsp;inside&nbsp;the&nbsp;class&nbsp;to&nbsp;which&nbsp;they&nbsp;belong.&nbsp;They&nbsp;may&nbsp;not&nbsp;be&nbsp;declared&nbsp;inside&nbsp;<BR>the&nbsp;class&nbsp;and&nbsp;defined&nbsp;outside&nbsp;the&nbsp;class&nbsp;as&nbsp;is&nbsp;common&nbsp;in&nbsp;C++.&nbsp;<BR>&nbsp;<BR>3.6:&nbsp;How&nbsp;is&nbsp;Java&nbsp;unlike&nbsp;C++?&nbsp;<BR>&nbsp;<BR>Two&nbsp;classes&nbsp;of&nbsp;language&nbsp;features&nbsp;have&nbsp;been&nbsp;removed&nbsp;from&nbsp;C++&nbsp;to&nbsp;make&nbsp;it&nbsp;Java.&nbsp;These&nbsp;are&nbsp;those&nbsp;<BR>language&nbsp;features&nbsp;which&nbsp;make&nbsp;C++&nbsp;unsafe&nbsp;and&nbsp;those&nbsp;which&nbsp;make&nbsp;it&nbsp;hard&nbsp;to&nbsp;read.&nbsp;<BR>&nbsp;<BR>Features&nbsp;removed&nbsp;that&nbsp;make&nbsp;Java&nbsp;easier&nbsp;to&nbsp;read&nbsp;and&nbsp;understand&nbsp;than&nbsp;C++&nbsp;include&nbsp;#define,&nbsp;<BR>typedef,&nbsp;operator&nbsp;overloading,&nbsp;enum,&nbsp;unions&nbsp;and&nbsp;structs.&nbsp;<BR>&nbsp;<BR>The&nbsp;main&nbsp;feature&nbsp;removed&nbsp;to&nbsp;make&nbsp;Java&nbsp;safer&nbsp;and&nbsp;more&nbsp;robust&nbsp;than&nbsp;C++&nbsp;is&nbsp;pointer&nbsp;arithmetic.&nbsp;&nbsp;<BR>&nbsp;<BR>Other&nbsp;features&nbsp;removed&nbsp;include&nbsp;global&nbsp;variables,&nbsp;standalone&nbsp;functions&nbsp;(everything&nbsp;is&nbsp;a&nbsp;method),&nbsp;<BR>friend&nbsp;functions&nbsp;(Everything&nbsp;in&nbsp;a&nbsp;package&nbsp;is&nbsp;a&nbsp;friend&nbsp;of&nbsp;everything&nbsp;else&nbsp;in&nbsp;the&nbsp;package.)&nbsp;and&nbsp;<BR>non-virtual&nbsp;functions.&nbsp;<BR>&nbsp;<BR>A&nbsp;number&nbsp;of&nbsp;features&nbsp;have&nbsp;been&nbsp;added&nbsp;to&nbsp;Java&nbsp;to&nbsp;make&nbsp;it&nbsp;safer&nbsp;including&nbsp;true&nbsp;arrays&nbsp;with&nbsp;bounds&nbsp;<BR>checking,&nbsp;garbage&nbsp;collection,&nbsp;concurrency,&nbsp;interfaces&nbsp;(from&nbsp;Objective&nbsp;C)&nbsp;and&nbsp;packages.&nbsp;There&nbsp;is&nbsp;no&nbsp;<BR>need&nbsp;to&nbsp;explicitly&nbsp;allocate&nbsp;or&nbsp;free&nbsp;memory&nbsp;in&nbsp;Java.&nbsp;<B

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -