正在加载图片...
你得为这种灵活性付出代价,分配堆的存储空间要比分配栈的慢一些(假 如你能像C++那样在栈里创建对象的话)。 4.静态存储( (static storage)。“静态”在这里的意思就是“在固定的位置” (尽管它还是在RAM里面)。静态存储里面的数据在整个程序的运行期间 都能访问到。你可以用 static关键词来指明对象中的某个元素是静态 的,但是Java对象本身是决不会放到静态存储中去的。 5.固定存储( constant storage。常量值通常直接放在程序里,这样它们就 不会被改动了,因而也更安全。有时常量还能为自己设置界限,这样在 嵌入式系统中,你就能选择是不是把它们放到ROM里面去 6.非内存的存储(Non- RAM Storage)。如果数据完全独立于程序,那么即使 程序不运行,它也应该也还在;即使程序失去了对数据的控制,它也仍 然还在。两个最主要的例子是“流对象( streamed object)”和“ persistent 对象( persistent object)”。大致上说,前者是一种会被送往另一台机器 的,由对象转化而成的字节流;而后者则是保存在磁盘上的,能在程序 中止之后仍保存对象状态的文件。这类存储的奥妙就在于,对象被转化 成了某种能保存在其它介质上的东西,但是要用的时候,又能在内存里 重建。Java提供了“轻量级 persistence( lightweight persistence)”的支 持。未来Java可能会提供更为完整的 persistence的支持 特例: primitive类型 有一种编程时会经常用到的数据类型,会被当作特例来处理。你可以把它 想成“ primitive(原始)”类型。之所以要把它单独列出来,是因为用 new创建对象——特别是像简单变量之类的小对象的时候,效率不是太 高,因为它们都是放在堆里的。对于这类数据,Java承袭了C和C++ 的办法。也就是说,这个变量不是用new来创建的,相反,这里所创建 的是一个“非 reference”的“自动”变量。这个变量保存着值,并且存 储在栈中,因而效率会比较高 Java决定了每种 primitive类型的大小。它不会像其它语言那样,随机 器架构的不同而不同。这种变量大小的一致性是Java程序可移植的基础 Primitive类型大小「最小「最大 Wrapper类型 boolean Boolean char 16-bit Unicode o Unicode 216-1 Character byte 8-bit-128 +127 Byte short 16-bit-2 15 +215-1 Short int 32-bt-2 31-1 Integer long 64-bit-2 Long float 32-bit IEEE754 IEEE754 Float double 64-bit IEEE754 IEEE754 Double 第4页共26页shhgs@wgqqh.com ￾ 4 ✁ ✂ 26 ✁ ¡‰™ †¾¿#Ì!¸Í Æ({¢´4%8°(Î3Ì(9 Ä¡;} C++Y¦F°Ë~¥(›) 4. (static storage)ÍÏÐÏF Ë(¹’ÍFÑO(§¨Ï (ÁÂAF RAM ˶)ÏÐ{¢Ë¶(OPF¤×âF(†&@4 Æ;±²g¡ÝEˆ static ‘³QZÒ¥*(2×ÓÔÏÐ (  Java ¥ pNXºkgÏÐ{¢*r( 5. (constant storage)·ªÕ·ÒUkFâFË ¦A" Xº¹ð , æà[ˆcm·ª;™ý þ¨?« ¦F Öt´×Ø* ¡;ÙÚXPA"kg ROM ˶r 6. (Non-RAM storage)ÄÅOPcz)âF YZxç âFX†& A[vw[F xçâF6r,¥OP(N A[Û Fe×bÜ%(•ÍÝ¥ (streamed object) ÏÍpersistent ¥(persistent object)ÏÂ_J$ š3†º¹€Þ3mif ( ,¥=^àŽ(‰ßÝ àšà|{FáâJ( ;FâF *+uÛ|{¥ãÐ(… {¢(äåF) ¥¹=^ Ž,2†;|{F§AæJ(34 %ˆ(M ü;FŸ{Ë Java )*,Íçªè persistence (lightweight persistence) Ï(é êëQ Java Ý;º)*™¤( persistence (éê : prim i tive m3†áâºõ·ˆg(OP º¹ 11•QB¢¡ÝEPA |ŽÍp ri m iti ve(å)ÏuDE%PA}zì!Q 晈 new ~¥1ž}]}5ªu(º¥(M Ø·XÉ í æ™A"ÆkFÆË(¥) OP Java îï, C  C+ + (ð[$ ×5ªXˆ new Q~( >¤ ËD~ (3×ͯ referenceÏ(Íý Ï5ª ×5ª|{.Õ ž{ ¢F°* æàØ·º8Cí Java NO,L† p ri m iti ve (ºAXº}§AƒY¦ ¸i fñò(X‡àX‡ †5ªÂº(3_# Java âFݳó(Gô u3 Prim itive     Wrapper  bool ean — — — Bool ean char 16-b it U ni code 0 U ni code 2 ✞ ✟ - 1 Character byte 8-b it -128 + 127 Byte sh ort 16-b it -2 ✞ ✠ + 2 ✞ ✠ —1 Sh ort int 3 2-b it -2 ✡☛✞ + 2 ✡☛✞ —1 Integer l ong 64-b it -2 ✟ ✡ + 2 ✟ ✡ —1 Long fl oat 3 2-b it IE E E 754 IE E E 754 Fl oat dou bl e 64-b it IE E E 754 IE E E 754 Dou bl e
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有