成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_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国内精品久久久久久久
日韩欧美中文一区| 欧美一区二区三区婷婷月色 | 国产成人自拍高清视频在线免费播放| 亚洲欧美一区二区不卡| 国产精品天天看| 亚洲免费观看在线视频| fc2成人免费人成在线观看播放| 美女视频第一区二区三区免费观看网站| 国产日韩专区| 性色一区二区| 美女尤物久久精品| 欧美专区日韩专区| 7777精品伊人久久久大香线蕉最新版| 欧美日韩日日摸| 欧美一区二区三区视频在线观看| 欧美美女网站色| 欧美电影免费观看高清完整版在| 久久综合九色综合欧美亚洲| 国产日产欧美一区二区三区| 久久综合伊人| 欧美日韩精品二区第二页| 777xxx欧美| 日本一区二区三级电影在线观看| 亚洲欧洲国产日本综合| 欧美三级欧美一级| 白白色 亚洲乱淫| 不卡一区二区三区四区| av激情亚洲男人天堂| 欧美区日韩区| 一区二区三区不卡视频| 午夜精品久久一牛影视| 久久 天天综合| 91最新地址在线播放| 亚洲区国产区| 欧美日韩中文国产| 久久免费偷拍视频| 夜夜揉揉日日人人青青一国产精品| 日韩国产一二三区| 国产盗摄女厕一区二区三区| 欧美日韩一区二| 日本久久精品电影| 久久综合成人精品亚洲另类欧美| 自拍偷拍亚洲综合| 激情五月婷婷综合| 韩国亚洲精品| 欧美色图在线观看| 亚洲国产精品传媒在线观看| 天堂一区二区在线| 99v久久综合狠狠综合久久| 国产日韩欧美高清免费| 91精品免费在线| 伊人夜夜躁av伊人久久| 国产盗摄精品一区二区三区在线| 亚洲日本成人| 欧美一级淫片007| 亚洲一区二区三区在线看| 成人av中文字幕| 日本高清不卡aⅴ免费网站| 国产香蕉久久精品综合网| 日产国产欧美视频一区精品| 欧美国产综合视频| 欧美卡1卡2卡| 亚洲午夜精品在线| 女生裸体视频一区二区三区| 欧美熟乱第一页| 一区二区在线免费| 99久久国产免费看| 欧美亚洲一区三区| 亚洲精品视频自拍| 91香蕉视频污在线| 成人午夜激情视频| 色国产精品一区在线观看| 中文字幕亚洲区| 波多野结衣视频一区| 精品视频免费看| 欧美又粗又大又爽| 亚洲精品国产第一综合99久久 | 亚洲一区二区在| 国产精品免费视频一区| 成人免费看片app下载| 欧美日韩在线精品一区二区三区激情 | 精东粉嫩av免费一区二区三区| av不卡在线看| 国产精品网曝门| 99v久久综合狠狠综合久久| 欧美日韩国产片| 午夜精品久久久久久久99樱桃| 在线日本成人| 国产区在线观看成人精品| 成人性生交大片免费看视频在线 | 久久99久久久久久久久久久| 国产午夜久久| 日韩美女久久久| 国产精品国码视频| 日本一区二区成人| 91在线观看免费视频| 精品国产亚洲在线| 国产成人在线看| 日韩欧美黄色影院| 国产精品一区在线| 欧美精品三级日韩久久| 久久成人av少妇免费| 欧美日高清视频| 国产精品影音先锋| 欧美xxxxx裸体时装秀| 成人av在线一区二区三区| 亚洲精品一区二区三区在线观看| 成人理论电影网| 国产视频一区二区在线| 欧美深夜福利| 亚洲黄色性网站| 色婷婷av一区| 国产麻豆视频精品| 欧美xxxxx牲另类人与| 91亚洲国产成人精品一区二区三| 国产日韩欧美一区二区三区综合| 欧美日韩亚洲一区二区三区四区| 亚洲欧洲性图库| 久久精品九九| 国产一区视频导航| 精品国产1区2区3区| 韩国在线一区| 婷婷丁香激情综合| 欧美一二三四区在线| 91在线观看地址| 亚洲精品高清在线观看| 在线日韩av片| voyeur盗摄精品| 亚洲色图制服丝袜| 色8久久人人97超碰香蕉987| 国产成人av自拍| 国产精品女主播av| 久久久精品性| 成人激情免费电影网址| 亚洲欧洲99久久| 在线精品视频一区二区| eeuss影院一区二区三区| 亚洲欧美另类小说| 欧美日韩国产高清一区二区三区| 91在线看国产| 亚洲第一在线综合网站| 日韩色在线观看| 91久久精品国产91久久性色tv| 免费成人av资源网| 久久久久久久久久久久久夜| 国产伦精品一区二区三区四区免费| 久久综合色之久久综合| 亚洲一区欧美激情| eeuss鲁片一区二区三区| 亚洲三级电影全部在线观看高清| 欧美综合久久久| 亚洲精品免费在线播放| 欧美伦理视频网站| 99精品视频免费观看| 国产另类ts人妖一区二区| 成人欧美一区二区三区1314| 69堂精品视频| 国产日产高清欧美一区二区三区| 国产精品99久久久久久似苏梦涵| 亚洲激情男女视频| 欧美电影免费提供在线观看| 久久男女视频| 亚洲午夜在线| 国产成人精品亚洲午夜麻豆| 亚洲一区二区三区自拍| 欧美国产综合一区二区| 欧美丝袜丝交足nylons| 国产精品久久九九| 99久久精品情趣| 精品无人码麻豆乱码1区2区 | 久久99精品久久久久久久久久久久 | 久久久久久9999| 欧美日韩三级视频| 久久久蜜桃一区二区人| 亚洲精品日本| 99综合影院在线| 美日韩黄色大片| 亚洲综合色成人| 国产精品美女久久久久久久久久久 | 久久99热狠狠色一区二区| 亚洲在线视频一区| 国产精品第13页| 久久久久高清精品| 日韩一区二区三区免费看| 91成人免费在线视频| 亚洲欧美成人| 日韩亚洲不卡在线| 激情综合激情| 欧美久久电影| 欧美日韩国产探花| 成人黄色软件下载| 国产一区二区不卡在线| 日韩激情av在线| 天天色天天操综合| 亚洲一二三区在线观看| 亚洲视频在线一区| 亚洲私人影院在线观看| 亚洲国产成人自拍| 中文字幕免费不卡| 国产精品女主播av|