知识大全 Java的造型运算符

Posted 造型

篇首语:从困难中战胜出来的人 才是真正的赢家。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java的造型运算符相关的知识,希望对你有一定的参考价值。

Java的造型运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   造型 (Cast)的作用是 与一个模型匹配 在适当的时候 Java会将一种数据类型自动转换成另一种 例如 假设我们为浮点变量分配一个整数值 计算机会将int自动转换成float 通过造型 我们可明确设置这种类型的转换 或者在一般没有可能进行的时候强迫它进行   为进行一次造型 要将括号中希望的数据类型(包括所有修改符)置于其他任何值的左侧 下面是一个例子   void casts()   int i = ;  long l = (long)i;  long l = (long) ;    正如您看到的那样 既可对一个数值进行造型处理 亦可对一个变量进行造型处理 但在这儿展示的两种情况下 造型均是多余的 因为编译器在必要的时候会自动进行int值到long值的转换 当然 仍然可以设置一个造型 提醒自己留意 也使程序更清楚 在其他情况下 造型只有在代码编译时才显出重要性   在C和C++中 造型有时会让人头痛 在Java里 造型则是一种比较安全的操作 但是 若进行一种名为 缩小转换 (Narrowing Conversion)的操作(也就是说 脚本是能容纳更多信息的数据类型 将其转换成容量较小的类型) 此时就可能面临信息丢失的危险 此时 编译器会强迫我们进行造型 就好象说 这可能是一件危险的事情——如果您想让我不顾一切地做 那么对不起 请明确造型 而对于 放大转换 (Widening conversion) 则不必进行明确造型 因为新类型肯定能容纳原来类型的信息 不会造成任何信息的丢失   Java允许我们将任何主类型 造型 为其他任何一种主类型 但布尔值(bollean)要除外 后者根本不允许进行任何造型处理 类 不允许进行造型 为了将一种类转换成另一种 必须采用特殊的方法(字串是一种特殊的情况 本书后面会讲到将对象造型到一个类型 家族 里 例如 橡树 可造型为 树 反之亦然 但对于其他外来类型 如 巖石 则不能造型为 树 )    字面值  最开始的时候 若在一个程序里插入 字面值 (Literal) 编译器通常能准确知道要生成什么样的类型 但在有些时候 对于类型却是暧昧不清的 若发生这种情况 必须对编译器加以适当的 指导 方法是用与字面值关联的字符形式加入一些额外的信息 下面这段代码向大家展示了这些字符   //: Literals java  class Literals    char c = xffff; // max char hex value   byte b = x f; // max byte hex value   short s = x fff; // max short hex value   int i = x f; // Hexadecimal (lowercase)   int i = X F; // Hexadecimal (uppercase)   int i = ; // Octal (leading zero)   // Hex and Oct also work with long    long n = L; // long suffix   long n = l; // long suffix   long n = ;   //! long l ( ); // not allowed   float f = ;   float f = F; // float suffix   float f = f; // float suffix   float f = e f; // to the power   float f = e+ f; // float suffix   double d = d; // double suffix   double d = D; // double suffix   double d = e d; // to the power   ///:~  十六进制(Base )——它适用于所有整数数据类型——用一个前置的 x或 X指示 并在后面跟随采用大写或小写形式的 以及a f 若试图将一个变量初始化成超出自身能力的一个值(无论这个值的数值形式如何) 编译器就会向我们报告一条出错消息 注意在上述代码中 最大的十六进制值只会在char byte以及short身上出现 若超出这一限制 编译器会将值自动变成一个int 并告诉我们需要对这一次赋值进行 缩小造型 这样一来 我们就可清楚获知自己已超载了边界   八进制(Base )是用数字中的一个前置 以及 的数位指示的 在C C++或者Java中 对二进制数字没有相应的 字面 表示方法   字面值后的尾随字符标志着它的类型 若为大写或小写的L 代表long 大写或小写的F 代表float 大写或小写的D 则代表double   指数总是采用一种我们认为很不直观的记号方法 e f 在科学与工程学领域 e 代表自然对数的基数 约等于 (Java一种更精确的double值采用Math E的形式) 它在象 ×e的 次方 这样的指数表达式中使用 意味着 × 的 次方 然而 自FORTRAN语言发明后 人们自然而然地觉得e代表 多少次幂 这种做法显得颇为古怪 因为FORTRAN最初面向的是科学与工程设计领域 理所当然 它的设计者应对这样的混淆概念持谨慎态度(注释①) 但不管怎样 这种特别的表达方法在C C++以及现在的Java中顽固地保留下来了 所以倘若您习惯将e作为自然对数的基数使用 那么在Java中看到象 e f 这样的表达式时 请转换您的思维 从程序设计的角度思考它 它真正的含义是 × 的 次方   ① John Kirkham这样写道 我最早于 年在一部IBM 机器上使用FORTRAN II 那时——包括 年代以及 年代的早期 FORTRAN一直都是使用大写字母 之所以会出现这一情况 可能是由于早期的输入设备大多是老式电传打字机 使用 位Baudot码 那种码并不具备小写能力 乘幂表达式中的 E 也肯定是大写的 所以不会与自然对数的基数 e 发生冲突 后者必然是小写的 E 这个字母的含义其实很简单 就是 Exponential 的意思 即 指数 或 幂数 代表计算系统的基数——一般都是 当时 八进制也在程序员中广泛使用 尽管我自己未看到它的使用 但假若我在乘幂表达式中看到一个八进制数字 就会把它认作Base 我记得第一次看到用小写 e 表示指数是在 年代末期 我当时也觉得它极易产生混淆 所以说 这个问题完全是自己 潜入 FORTRAN里去的 并非一开始就有 如果你真的想使用自然对数的基数 实际有现成的函数可供利用 但它们都是大写的   注意如果编译器能够正确地识别类型 就不必使用尾随字符 对于下述语句   long n = ;  它并不存在含混不清的地方 所以 后面的一个L大可省去 然而 对于下述语句   float f = e f; // 的幂数  编译器通常会将指数作为双精度数(double)处理 所以假如没有这个尾随的f 就会收到一条出错提示 告诉我们须用一个 造型 将double转换成float    转型  大家会发现假若对主数据类型执行任何算术或按位运算 只要它们 比int小 (即char byte或者short) 那么在正式执行运算之前 那些值会自动转换成int 这样一来 最终生成的值就是int类型 所以只要把一个值赋回较小的类型 就必须使用 造型 此外 由于是将值赋回给较小的类型 所以可能出现信息丢失的情况) 通常 表达式中最大的数据类型是决定了表达式最终结果大小的那个类型 若将一个float值与一个double值相乘 结果就是double 如将一个int和一个long值相加 则结果为long cha138/Article/program/Java/JSP/201311/19534

相关参考

知识大全 java的算术运算符

  Java的基本算术运算符与其他大多数程序设计语言是相同的其中包括加号(+)减号()除号(/)乘号(*)以及模数(%从整数除法中获得余数)整数除法会直接砍掉小数而不是进位  Java也用一种简写形式

知识大全 Java的字串运算符+

Java的字串运算符+  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  这个运算符在Java里有一

知识大全 Java的逻辑运算符

Java的逻辑运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  逻辑运算符AND(&

知识大全 Java的关系运算符

Java的关系运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  关系运算符生成的是一个布尔(

知识大全 Java的逗号运算符

Java的逗号运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!    在C和C++里逗号不仅作

知识大全 Java中引用,造型等问题解析

Java中引用,造型等问题解析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  作者chris译 

知识大全 Java中的位移运算符

Java中的位移运算符  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &nb

知识大全 Java 基本语法(三)——运算符和类型转换

Java基本语法(三)——运算符和类型转换  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  原创:

知识大全 java.lang.String类运算符重载

java.lang.String类运算符重载  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Gi

知识大全 java获得字符串间运算符变量的值

cha138/Article/program/Java/JSP/201311/20012