成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

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

瀏覽:149日期:2024-07-03 14:40:06
內(nèi)容: 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
標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
另类天堂av| 亚洲精品久久| 欧美精品91| 日韩欧美中文字幕一区| 香蕉久久一区二区不卡无毒影院| 欧美午夜视频| 久久蜜桃av一区二区天堂| 国产主播一区二区| 欧美日韩视频在线观看一区二区三区| 一区二区三区日韩在线观看| 在线视频观看日韩| 国产精品欧美精品| 欧美黄色一区| 久久新电视剧免费观看| 成人毛片在线观看| 日韩午夜激情视频| 国产福利一区二区| 制服丝袜一区二区三区| 精品一区二区三区在线观看| 色94色欧美sute亚洲线路一ni| 国产精品的网站| 91色porny在线视频| 26uuu国产电影一区二区| 国产一区二区导航在线播放| 在线精品视频小说1| 青青草97国产精品免费观看无弹窗版 | 午夜久久美女| 国产欧美一区二区在线| 国产精品国产三级国产专区53| 欧美激情在线一区二区三区| 欧美二区在线| 日本一区二区成人| 韩国久久久久| 樱花草国产18久久久久| 免费一区视频| 日本成人超碰在线观看| 欧美亚洲尤物久久| 精品一区二区三区在线播放视频| 欧美精品777| 成人免费视频一区| 久久久五月婷婷| 好看不卡的中文字幕| 亚洲欧洲综合另类| 亚洲欧美日韩另类精品一区二区三区 | 最新国产拍偷乱拍精品| 亚洲黄色免费网站| 亚洲综合日本| 麻豆一区二区三| 日韩视频国产视频| 91亚洲大成网污www| 国产日韩欧美电影| 伊伊综合在线| 亚洲一区电影777| 欧美日韩精品三区| 成人免费看的视频| 国产欧美精品一区二区色综合朱莉| 国语自产精品视频在线看8查询8| 亚洲一区二区三区四区中文字幕| 色婷婷久久久亚洲一区二区三区| 久久国产精品72免费观看| 日韩欧美黄色影院| 色综合久久中文综合久久97| 中文字幕亚洲一区二区va在线| av成人免费观看| 青青草原综合久久大伊人精品优势 | 亚洲欧美日韩精品久久久| 久久国产精品第一页| 亚洲精品在线三区| 在线观看成人av| 天堂精品中文字幕在线| 欧美一二三四在线| 亚洲一二区在线| 日本aⅴ亚洲精品中文乱码| 欧美xxxxxxxx| 亚洲欧洲视频| 韩国欧美国产一区| 国产欧美精品一区| 国产美女诱惑一区二区| 久草这里只有精品视频| 久久婷婷久久一区二区三区| 日韩天堂av| 激情偷乱视频一区二区三区| 国产性天天综合网| 国产日韩欧美| 国产精品影视网| 亚洲日本乱码在线观看| 欧美日韩一级二级| 国内久久精品| 久久国产乱子精品免费女| 国产欧美精品区一区二区三区 | 亚洲激情影院| 精品一区二区三区影院在线午夜 | 中文字幕在线不卡一区二区三区| 色网综合在线观看| 99久久精品久久久久久清纯| 一区二区三区精品| 日韩一区二区三区四区| 亚洲网站视频| 精品一区二区三区久久| 国产精品久久久久久久久免费相片 | 欧美日韩一区二区三区免费| 全国精品久久少妇| 久久蜜桃香蕉精品一区二区三区| 色婷婷精品久久二区二区蜜臀av| yourporn久久国产精品| 午夜精品久久久久久久99水蜜桃 | 国产成人在线观看免费网站| 亚洲日本韩国一区| 日韩午夜激情电影| 亚洲永久免费精品| 99久久免费精品| 日韩精品成人一区二区三区| 欧美激情综合网| 欧美性猛交xxxx乱大交退制版| 欧美.www| 久久99在线观看| 亚洲品质自拍视频| 精品少妇一区二区三区在线视频| 国产伦精品一区二区三区照片91| 91亚洲大成网污www| 久久国内精品自在自线400部| 亚洲欧洲日产国码二区| 欧美一区二区三区白人| 国产精品一区在线播放| 97精品久久久久中文字幕| 日韩精品一区第一页| 中文久久乱码一区二区| 在线不卡一区二区| 羞羞视频在线观看欧美| 欧美日韩网站| 国产成人亚洲精品青草天美| 日韩黄色免费网站| 自拍偷自拍亚洲精品播放| 精品国产免费久久| 欧美日韩成人一区| 性色一区二区三区| 狠狠88综合久久久久综合网| 成人在线视频首页| 免费在线看一区| 亚洲一区视频在线观看视频| 国产精品网站在线播放| 日韩视频一区二区三区在线播放| 色先锋aa成人| 中文精品视频| 国产精品99免费看| 国产99一区视频免费| 六月丁香综合在线视频| 亚洲一区二三区| 1024成人网色www| 国产日韩欧美一区二区三区乱码| 日韩欧美卡一卡二| 欧美区视频在线观看| 色女孩综合影院| 一区二区三区国产在线| 国产一区日韩一区| 91在线视频18| 懂色av一区二区三区免费观看| 久久99精品久久久久久动态图| 亚洲一区二区成人在线观看| 国产精品视频麻豆| 精品欧美久久久| 91精品国产91久久久久久一区二区| 色先锋aa成人| 久久久久国产精品一区二区| 国产亚洲第一区| 亚洲高清在线观看一区| 国产精品国产亚洲精品看不卡15 | 欧美午夜精品一区| 日本久久精品电影| 免费视频一区| 亚洲一卡久久| 国产精品亚洲一区| 亚洲国产日韩美| 亚洲午夜视频| 激情久久五月| 伊伊综合在线| 亚洲经典三级| 国产视频一区免费看| 一区二区三区精品视频在线观看 | 欧美视频在线观看一区二区| 色噜噜夜夜夜综合网| 色偷偷一区二区三区| 在线亚洲人成电影网站色www| 久久av一区二区| 麻豆精品91| 久久亚洲综合| 久久精品官网| 在线日韩av片| 欧美少妇xxx| 欧美日韩国产区一| 欧美酷刑日本凌虐凌虐| 欧美日韩精品高清| 欧美精品18+| 欧美xxx久久| 国产女人18水真多18精品一级做| 久久人人爽爽爽人久久久| 久久久久国产精品人| 国产日韩一级二级三级| 国产精品美女久久久久高潮| 中文字幕一区av|