日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java虛擬機詳述-第三章(二)

瀏覽:196日期:2024-07-03 14:40:06
內容: 3.7 Representation of ObjectsThe Java virtual machine does not mandate any particular internal structure for objects.8 --------------------------------------------------------------------------------3.8 Floating-Point ArithmeticThe Java virtual machine incorporates a subset of the floating-point arithmetic specified in IEEE Standard for Binary Floating-Point Arithmetic (ANSI/IEEE Std. 754-1985, New York). 3.8.1 Java Virtual Machine Floating-Point Arithmetic and IEEE 754The key differences between the floating-point arithmetic supported by the Java virtual machine and the IEEE 754 standard are: The floating-point operations of the Java virtual machine do not throw exceptions, trap, or otherwise signal the IEEE 754 exceptional conditions of invalid operation, division by zero, overflow, underflow, or inexact. The Java virtual machine has no signaling NaN value.The Java virtual machine does not support IEEE 754 signaling floating-point comparisons.The rounding operations of the Java virtual machine always use IEEE 754 round to nearest mode. Inexact results are rounded to the nearest representable value, with ties going to the value with a zero least-significant bit. This is the IEEE 754 default mode. But Java virtual machine instructions that convert values of floating-point types to values of integral types round toward zero. The Java virtual machine does not give any means to change the floating-point rounding mode.The Java virtual machine does not support either the IEEE 754 single extended or double extended format, except insofar as the double and double-extended-exponent value sets may be said to support the single extended format. The float-extended-exponent and double-extended-exponent value sets, which may optionally be supported, do not correspond to the values of the IEEE 754 extended formats: the IEEE 754 extended formats require extended precision as well as extended exponent range. 3.8.2 Floating-Point ModesEvery method has a floating-point mode, which is either FP-strict or not FP-strict. The floating-point mode of a method is determined by the setting of the ACC_STRICT bit of the access_flags item of the method_info structure (§4.6) defining the method. A method for which this bit is set is FP-strict; otherwise, the method is not FP-strict. Note that this mapping of the ACC_STRICT bit implies that methods in classes compiled by a compiler that predates the Java 2 platform, v1.2, are effectively not FP-strict.We will refer to an operand stack as having a given floating-point mode when the method whose invocation created the frame containing the operand stack has that floating-point mode. Similarly, we will refer to a Java virtual machine instruction as having a given floating-point mode when the method containing that instruction has that floating-point mode.If a float-extended-exponent value set is supported (§3.3.2), values of type float on an operand stack that is not FP-strict may range over that value set except where prohibited by value set conversion (§3.8.3). If a double-extended-exponent value set is supported (§3.3.2), values of type double on an operand stack that is not FP-strict may range over that value set except where prohibited by value set conversion. In all other contexts, whether on the operand stack or elsewhere, and regardless of floating-point mode, floating-point values of type float and double may only range over the float value set and double value set, respectively. In particular, class and instance fields, array elements, local variables, and method parameters may only contain values drawn from the standard value sets.3.8.3 Value Set ConversionAn implementation of the Java virtual machine that supports an extended floating-point value set is permitted or required, under specified circumstances, to map a value of the associated floating-point type between the extended and the standard value sets. Such a value set conversion is not a type conversion, but a mapping between the value sets associated with the same type. Where value set conversion is indicated, an implementation is permitted to perform one of the following operations on a value:If the value is of type float and is not an element of the float value set, it maps the value to the nearest element of the float value set. If the value is of type double and is not an element of the double value set, it maps the value to the nearest element of the double value set. In addition, where value set conversion is indicated certain operations are required:Suppose execution of a Java virtual machine instruction that is not FP-strict causes a value of type float to be pushed onto an operand stack that is FP-strict, passed as a parameter, or stored into a local variable, a field, or an element of an array. If the value is not an element of the float value set, it maps the value to the nearest element of the float value set.Suppose execution of a Java virtual machine instruction that is not FP-strict causes a value of type double to be pushed onto an operand stack that is FP-strict, passed as a parameter, or stored into a local variable, a field, or an element of an array. If the value is not an element of the double value set, it maps the value to the nearest element of the double value set. Such required value set conversions may occur as a result of passing a parameter of a floating-point type during method invocation, including native method invocation; returning a value of a floating-point type from a method that is not FP-strict to a method that is FP-strict; or storing a value of a floating-point type into a local variable, a field, or an array in a method that is not FP-strict.Not all values from an extended-exponent value set can be mapped exactly to a value in the corresponding standard value set. If a value being mapped is too large to be represented exactly (its exponent is greater than that permitted by the standard value set), it is converted to a (positive or negative) infinity of the corresponding type. If a value being mapped is too small to be represented exactly (its exponent is smaller than that permitted by the standard value set), it is rounded to the nearest of a representable denormalized value or zero of the same sign.Value set conversion preserves infinities and NaNs and cannot change the sign of the value being converted. Value set conversion has no effect on a value that is not of a floating-point type.--------------------------------------------------------------------------------3.9 Specially Named Initialization MethodsAt the level of the Java virtual machine, every constructor (§2.12) appears as an instance initialization method that has the special name . This name is supplied by a compiler. Because the name is not a valid identifier, it cannot be used directly in a program written in the Java programming language. Instance initialization methods may be invoked only within the Java virtual machine by the invokespecial instruction, and they may be invoked only on uninitialized class instances. An instance initialization method takes on the access permissions (§2.7.4) of the constructor from which it was derived. A class or interface has at most one class or interface initialization method and is initialized (§2.17.4) by invoking that method. The initialization method of a class or interface is static and takes no arguments. It has the special name . This name is supplied by a compiler. Because the name is not a valid identifier, it cannot be used directly in a program written in the Java programming language. Class and interface initialization methods are invoked implicitly by the Java virtual machine; they are never invoked directly from any Java virtual machine instruction, but are invoked only indirectly as part of the class initialization process.--------------------------------------------------------------------------------3.10 ExceptionsIn the Java programming language, throwing an exception results in an immediate nonlocal transfer of control from the point where the exception was thrown. This transfer of control may abruptly complete, one by one, multiple statements, constructor invocations, static and field initializer evaluations, and method invocations. The process continues until a catch clause (§2.16.2) is found that handles the thrown value. If no such clause can be found, the current thread exits. In cases where a finally clause (§2.16.2) is used, the finally clause is executed during the propagation of an exception thrown from the associated try block and any associated catch block, even if no catch clause that handles the thrown exception may be found.As implemented by the Java virtual machine, each catch or finally clause of a method is represented by an exception handler. An exception handler specifies the range of offsets into the Java virtual machine code implementing the method for which the exception handler is active, describes the type of exception that the exception handler is able to handle, and specifies the location of the code that is to handle that exception. An exception matches an exception handler if the offset of the instruction that caused the exception is in the range of offsets of the exception handler and the exception type is the same class as or a subclass of the class of exception that the exception handler handles. When an exception is thrown, the Java virtual machine searches for a matching exception handler in the current method. If a matching exception handler is found, the system branches to the exception handling code specified by the matched handler.If no such exception handler is found in the current method, the current method invocation completes abruptly (§3.6.5). On abrupt completion, the operand stack and local variables of the current method invocation are discarded, and its frame is popped, reinstating the frame of the invoking method. The exception is then rethrown in the context of the invoker's frame and so on, continuing up the method invocation chain. If no suitable exception handler is found before the top of the method invocation chain is reached, the execution of the thread in which the exception was thrown is terminated.The order in which the exception handlers of a method are searched for a match is important. Within a class file the exception handlers for each method are stored in a table (§4.7.3). At run time, when an exception is thrown, the Java virtual machine searches the exception handlers of the current method in the order that they appear in the corresponding exception handler table in the class file, starting from the beginning of that table. Because try statements are structured, a compiler for the Java programming language can always order the entries of the exception handler table such that, for any thrown exception and any program counter value in that method, the first exception handler that matches the thrown exception corresponds to the innermost matching catch or finally clause. Note that the Java virtual machine does not enforce nesting of or any ordering of the exception table entries of a method (§4.9.5). The exception handling semantics of the Java programming language are implemented only through cooperation with the compiler. When class files are generated by some other means, the defined search procedure ensures that all Java virtual machines will behave consistently.More information on the implementation of catch and finally clauses is given in Chapter 7, 'Compiling for the Java Virtual Machine.'--------------------------------------------------------------------------------3.11 Instruction Set SummaryA Java virtual machine instruction consists of a one-byte opcode specifying the operation to be performed, followed by zero or more operands supplying arguments or data that are used by the operation. Many instructions have no operands and consist only of an opcode. Ignoring exceptions, the inner loop of a Java virtual machine interpreter is effectivelydo { fetch an opcode; if (operands) fetch operands; execute the action for the opcode;} while (there is more to do);The number and size of the operands are determined by the opcode. If an operand is more than one byte in size, then it is stored in big-endian order-high-order byte first. For example, an unsigned 16-bit index into the local variables is stored as two unsigned bytes, byte1 and byte2, such that its value is (byte1
標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品精品99| 99久久亚洲精品| 国产盗摄——sm在线视频| 久久国产电影| 日韩视频一区| 日韩区欧美区| 国产欧美一级| 欧美亚洲福利| 98精品视频| 亚洲天堂黄色| 国产日韩中文在线中文字幕 | 日韩中文字幕| 亚洲乱码视频| 日韩视频中文| 每日更新成人在线视频| 久久亚洲风情| 精品九九在线| 国产日本亚洲| 丝袜美腿亚洲一区| 亚洲电影有码| 欧美在线日韩| 日韩一区二区三区精品| 欧美亚洲专区| 欧美/亚洲一区| 亚洲天堂免费| 亚欧洲精品视频在线观看| 91大神在线观看线路一区| 一区二区电影| 久久亚洲二区| 国产精品亚洲片在线播放| 国产精品伦理久久久久久| 亚洲精品日韩久久| 97久久超碰| 老色鬼精品视频在线观看播放| 麻豆高清免费国产一区| 久久久久国产精品一区三寸 | 丝袜美腿亚洲一区二区图片| 国产精品第一国产精品| 国产精品毛片| 91看片一区| 久久精品99久久久| 日产精品一区二区| 久久国产中文字幕| 国产精品免费看| 国产一级一区二区| 日韩黄色大片| 蜜桃视频在线网站| 国产精品一级| 久久久久久黄| 麻豆成人91精品二区三区| 精品成av人一区二区三区| 樱桃成人精品视频在线播放| 国产精品主播在线观看| 国产精品亚洲一区二区三区在线观看| 亚洲爱爱视频| 免费日韩精品中文字幕视频在线| 欧美日韩精品在线一区| 精品日韩毛片| 亚洲精品系列| 午夜一级在线看亚洲| 日本国产精品| 久久久久国产精品一区二区| 丁香婷婷久久| 91欧美国产| 亚洲精品.com| 视频一区中文字幕| 国产精品一线| 亚洲性色视频| 日本精品在线中文字幕| 红杏一区二区三区| 福利视频一区| 韩国女主播一区二区三区| 丝袜美腿高跟呻吟高潮一区| 国产精品呻吟| 亚洲三级毛片| 日韩精品导航| 日韩一区二区三区四区五区| 99久久久久国产精品| 亚洲精品1区| 日韩欧美三级| 里番精品3d一二三区| 久久超级碰碰| 国产精品久久久网站| 国产日韩中文在线中文字幕| 国产精品videosex极品| 激情视频网站在线播放色| 欧美精品不卡| 日韩高清不卡一区| 91成人在线精品视频| 亚洲中午字幕| 久久福利毛片| 宅男噜噜噜66国产日韩在线观看| 国内精品麻豆美女在线播放视频| 国产一区日韩一区| 午夜国产欧美理论在线播放| 国产在线成人| 免费观看久久久4p| 美女av在线免费看| 你懂的网址国产 欧美| 国产精品九九| 麻豆视频一区| 激情婷婷亚洲| 日韩一区二区三区免费| 日韩成人三级| 香蕉视频成人在线观看| 日韩午夜免费| 97精品中文字幕| 四虎成人精品一区二区免费网站| 亚洲理论在线| 日韩不卡免费高清视频| 欧美日韩国产亚洲一区| 视频一区免费在线观看| 伊人影院久久| 亚洲伊人影院| 亚洲作爱视频| 日本高清不卡一区二区三区视频| 久久99性xxx老妇胖精品| 亚洲激情中文在线| 久久久久黄色| 蜜臀a∨国产成人精品| 国产乱论精品| 麻豆国产一区| 一区免费在线| 欧美中文字幕一区二区| 青青草国产精品亚洲专区无| aa国产精品| 精品视频在线观看网站| 精品久久精品| 麻豆国产91在线播放| 日韩欧美三级| 久久国产日本精品| 99久精品视频在线观看视频| 婷婷激情图片久久| 国产99亚洲| 婷婷综合亚洲| 国产日韩中文在线中文字幕| 99视频精品视频高清免费| 欧美极品一区二区三区| 九一成人免费视频| 欧洲一级精品| 成人自拍av| 久久精品影视| 日本中文字幕一区二区视频 | 久久伊人亚洲| 亚洲一区二区三区高清| 久久精品国产免费| 久久av在线| 国产一区二区三区成人欧美日韩在线观看 | 精品国产欧美日韩一区二区三区| 国产精久久久| 老司机免费视频一区二区三区| 日韩精品一区二区三区av| 偷拍亚洲精品| 久久精品国产大片免费观看| 亚洲欧美高清| 色在线视频观看| 亚洲高清毛片| 日本不卡一区二区| 九一国产精品| 亚久久调教视频| 蜜臀av免费一区二区三区| 中文字幕一区二区三区日韩精品| www.九色在线| 欧美1区2区3| 91成人福利| 麻豆91精品视频| 国产精品yjizz视频网| 国产精品a级| 亚洲在线久久| 精品久久国产一区| 国产亚洲高清在线观看| 丰满少妇一区| 日韩欧美中文在线观看| 丁香婷婷久久| 久久成人国产| 日韩在线黄色| 97在线精品| 欧美日韩亚洲在线观看| 免费在线播放第一区高清av| 免费的成人av| 99精品视频在线| 桃色一区二区| 不卡中文字幕| 蜜桃视频欧美| 黄色网一区二区| 日本不卡一区二区三区| а√在线中文在线新版| 日韩综合精品| 美女视频黄 久久| 国产精品国码视频| 91九色综合| 亚洲免费婷婷| 国产精品久久久久久久久久妞妞 | 中文字幕在线高清| 国产精品一线天粉嫩av| 另类欧美日韩国产在线| 国产精品乱战久久久| 国产精品xxx| 韩国久久久久久| 久久精品国产亚洲一区二区三区|