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

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

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

瀏覽:198日期: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)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久毛片大屁完整版| 国产理论在线| 国产中文字幕一区二区三区| 久久精品国产久精国产| 精品一区二区三区中文字幕在线| 久久精品日韩欧美| 日韩视频网站在线观看| 欧美/亚洲一区| 美女久久网站| 日韩精品乱码av一区二区| 国产日产一区| 欧美影院视频| 色综合狠狠操| 亚洲欧洲一区| 欧美日韩在线精品一区二区三区激情综合| 国产精品美女久久久久久不卡| 高潮久久久久久久久久久久久久| 久久亚洲国产| 深夜福利亚洲| 久久精品国产福利| 激情久久久久久| 日韩中文av| 国产在线观看www| 性色一区二区| 麻豆免费精品视频| 五月婷婷六月综合| 91九色综合| 久久久夜精品| 国产情侣一区在线| 欧美日韩国产免费观看视频| 亚洲欧洲专区| 黄色在线网站噜噜噜| 国产农村妇女精品一二区| 国产探花在线精品一区二区| 成人啊v在线| 亚洲婷婷丁香| 国产成人免费av一区二区午夜| 亚洲电影在线一区二区三区| 日本午夜精品一区二区三区电影 | 麻豆国产精品视频| 日韩一级网站| 精品国产美女a久久9999| 香蕉久久国产| 97精品一区| 91嫩草精品| 在线精品视频在线观看高清| 久久不卡日韩美女| 国产亚洲激情| 日韩不卡一区| 欧美亚洲综合视频| 伊人成人在线视频| 精品国产欧美日韩| 日本va欧美va欧美va精品| 欧美不卡高清一区二区三区| 国产另类在线| 四虎成人精品一区二区免费网站 | 欧美精品日日操| 国产伦理久久久久久妇女| 国产日韩专区| 亚洲天堂免费电影| 免费在线亚洲欧美| 日韩高清成人在线| 视频一区在线播放| 久久精品高清| av免费不卡国产观看| 国产丝袜一区| 亚洲五月综合| 欧美精品一二| 亚洲91精品| 久久久久一区| 日韩免费小视频| 都市激情国产精品| 久久久久久亚洲精品美女| 欧美亚洲综合视频| 亚洲免费福利一区| 日韩专区在线视频| 欧美日韩四区| 伊人久久大香线蕉av不卡| 精品久久影院| 精品国产不卡| 国精品产品一区| 精品国产精品久久一区免费式| 日本成人在线视频网站| 免费人成精品欧美精品| 久久av一区| 性欧美长视频| 久久亚洲影院| 亚洲精品字幕| 亚洲精品乱码| 91大神在线观看线路一区| 亚洲日产av中文字幕| 亚洲精品黄色| 欧美亚洲tv| 国产毛片精品| 精品视频网站| 日韩成人免费| 欧美日韩视频网站| 91精品一区二区三区综合在线爱 | 精品国产aⅴ| 亚洲黄色免费av| 人人香蕉久久| 一区三区视频| 亚洲欧洲av| 国产欧美日韩一级| 免费亚洲一区| 国产精品久久久久av电视剧| 91精品国产自产在线观看永久∴| 国产一区二区中文| 国产视频一区欧美| 日韩精品中文字幕一区二区| 日韩在线观看一区二区三区| 国产精品天堂蜜av在线播放| 麻豆精品在线| 精品国模一区二区三区| 五月精品视频| 日本一区二区三区视频在线看| 国产精品毛片久久久| 国产成人精品一区二区免费看京 | 久久xxxx| 欧美三级第一页| 老牛影视精品| 亚洲性色视频| 欧美亚洲一级| 日本蜜桃在线观看视频| 亚州av乱码久久精品蜜桃| 最近国产精品视频| 精品国产aⅴ| 免费久久精品| 日韩成人av影视| 夜鲁夜鲁夜鲁视频在线播放| 亚洲专区一区| 美女视频黄久久| 不卡视频在线| 欧美在线日韩| 日韩不卡免费高清视频| 综合国产在线| 麻豆久久一区二区| 亚洲精品一区二区在线看| 日韩国产在线观看| 国产精选在线| 蜜桃视频在线观看一区二区| 精品一区二区三区中文字幕视频| 激情欧美一区二区三区| 日韩激情精品| 国产99久久久国产精品成人免费| 亚洲三级精品| 日本美女一区| 久久精品99久久久| 欧美在线亚洲| 精品国产亚洲日本| 综合激情视频| 国产福利电影在线播放| 一区二区电影在线观看| 91嫩草亚洲精品| 日韩av在线免费观看不卡| 国产麻豆久久| 国产精品一站二站| 伊人成人网在线看| 电影91久久久| 97成人在线| 国产色综合网| 日韩伦理一区| 麻豆视频观看网址久久| 麻豆9191精品国产| www在线观看黄色| 久久国产生活片100| 99久久婷婷| 麻豆精品新av中文字幕| 综合亚洲自拍| 好吊一区二区三区| 美女av在线免费看| 国产精品日韩精品中文字幕| 蜜臀久久久99精品久久久久久| 偷拍精品精品一区二区三区| 国产精品高清一区二区| 最新国产精品视频| 亚洲专区在线| 久久影视一区| 在线亚洲人成| 美女视频免费精品| 国产三级精品三级在线观看国产| 久久免费国产| 国产一区二区三区不卡视频网站 | 国产精品久久| 亚洲精品女人| 在线综合亚洲| 久久精品一区二区不卡| 久久精品国产精品亚洲毛片| 欧美日韩一视频区二区| 亚洲精品看片| 日韩影院精彩在线| 一区福利视频| 9色精品在线| 婷婷激情久久| 日韩中文视频| 欧美三级精品| 久久久久蜜桃| 日韩欧美精品综合| 欧美天堂视频| 久久久噜噜噜|