亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Java的造型運算符

2019-11-18 13:23:36
字體:
來源:轉載
供稿:網友

  “造型”(Cast)的作用是“與一個模型匹配”。在適當的時候,java會將一種數據類型自動轉換成另一種。例如,假設我們為浮點變量分配一個整數值,計算機會將int自動轉換成float。通過造型,我們可明確設置這種類型的轉換,或者在一般沒有可能進行的時候強迫它進行。
  為進行一次造型,要將括號中希望的數據類型(包括所有修改符)置于其他任何值的左側。下面是一個例子:
  void casts() {
  int i = 200;
  long l = (long)i;
  long l2 = (long)200;
  }
  正如您看到的那樣,既可對一個數值進行造型處理,亦可對一個變量進行造型處理。但在這兒展示的兩種情況下,造型均是多余的,因為編譯器在必要的時候會自動進行int值到long值的轉換。當然,仍然可以設置一個造型,提醒自己留意,也使程序更清楚。在其他情況下,造型只有在代碼編譯時才顯出重要性。
  在C和C++中,造型有時會讓人頭痛。在Java里,造型則是一種比較安全的操作。但是,若進行一種名為“縮小轉換”(Narrowing Conversion)的操作(也就是說,腳本是能容納更多信息的數據類型,將其轉換成容量較小的類型),此時就可能面臨信息丟失的危險。此時,編譯器會強迫我們進行造型,就好象說:“這可能是一件危險的事情——假如您想讓我不顧一切地做,那么對不起,請明確造型?!倍鴮τ凇胺糯筠D換”(Widening conversion),則不必進行明確造型,因為新類型肯定能容納原來類型的信息,不會造成任何信息的丟失。
  Java答應我們將任何主類型“造型”為其他任何一種主類型,但布爾值(bollean)要除外,后者根本不答應進行任何造型處理。“類”不答應進行造型。為了將一種類轉換成另一種,必須采用非凡的方法(字串是一種非凡的情況,本書后面會講到將對象造型到一個類型“家族”里;例如,“橡樹”可造型為“樹”;反之亦然。但對于其他外來類型,如“巖石”,則不能造型為“樹”)。
  1. 字面值
  最開始的時候,若在一個程序里插入“字面值”(Literal),編譯器通常能準確知道要生成什么樣的類型。但在有些時候,對于類型卻是曖昧不清的。若發生這種情況,必須對編譯器加以適當的“指導”。方法是用與字面值關聯的字符形式加入一些額外的信息。下面這段代碼向大家展示了這些字符。
  //: Literals.java
  class Literals {
   char c = 0xffff; // max char hex value
   byte b = 0x7f; // max byte hex value
   short s = 0x7fff; // max short hex value
   int i1 = 0x2f; // Hexadecimal (lowercase)
   int i2 = 0X2F; // Hexadecimal (uppercase)
   int i3 = 0177; // Octal (leading zero)
   // Hex and Oct also work with long.
   long n1 = 200L; // long suffix
   long n2 = 200l; // long suffix
   long n3 = 200;
   //! long l6(200); // not allowed
   float f1 = 1;
   float f2 = 1F; // float suffix
   float f3 = 1f; // float suffix
   float f4 = 1e-45f; // 10 to the power
   float f5 = 1e+9f; // float suffix
   double d1 = 1d; // double suffix
   double d2 = 1D; // double suffix
   double d3 = 47e47d; // 10 to the power
  } ///:~
  十六進制(Base 16)——它適用于所有整數數據類型——用一個前置的0x或0X指示。并在后面跟隨采用大寫或小寫形式的0-9以及a-f。若試圖將一個變量初始化成超出自身能力的一個值(無論這個值的數值形式如何),編譯器就會向我們報告一條出錯消息。注重在上述代碼中,最大的十六進制值只會在char,byte以及short身上出現。若超出這一限制,編譯器會將值自動變成一個int,并告訴我們需要對這一次賦值進行“縮小造型”。這樣一來,我們就可清楚獲知自己已超載了邊界。
  八進制(Base 8)是用數字中的一個前置0以及0-7的數位指示的。在C,C++或者Java中,對二進制數字沒有相應的“字面”表示方法。
  字面值后的尾隨字符標志著它的類型。若為大寫或小寫的L,代表long;大寫或小寫的F,代表float;大寫或小寫的D,則代表double。
  指數總是采用一種我們認為很不直觀的記號方法:1.39e-47f。在科學與工程學領域,“e”代表自然對數的基數,約等于2.718(Java一種更精確的double值采用Math.E的形式)。它在象“1.39×e的-47次方”這樣的指數表達式中使用,意味著“1.39×2.718的-47次方”。然而,自FORTRAN語言發明后,人們自然而然地覺得e代表“10多少次冪”。這種做法顯得頗為古怪,因為FORTRAN最初面向的是科學與工程設計領域。理所當然,它的設計者應對這樣的混淆概念持謹慎態度(注釋①)。但不管怎樣,這種非凡的表達方法在C,C++以及現在的Java中頑固地保留下來了。所以倘若您習慣將e作為自然對數的基數使用,那么在Java中看到象“1.39e-47f”這樣的表達式時,請轉換您的思維,從程序設計的角度思考它;它真正的含義是“1.39×10的-47次方”。
 ?、伲篔ohn Kirkham這樣寫道:“我最早于1962年在一部IBM 1620機器上使用FORTRAN II。那時——包括60年代以及70年代的早期,FORTRAN一直都是使用大寫字母。之所以會出現這一情況,可能是由于早期的輸入設備大多是老式電傳打字機,使用5位Baudot碼,那種碼并不具備小寫能力。乘冪表達式中的‘E’也肯定是大寫的,所以不會與自然對數的基數‘e’發生沖突,后者必然是小寫的?!瓻’這個字母的含義其實很簡單,就是‘EXPonential’的意思,即‘指數’或‘冪數’,代表計算系統的基數——一般都是10。當時,八進制也在程序員中廣泛使用。盡管我自己未看到它的使用,但假若我在乘冪表達式中看到一個八進制數字,就會把它認作Base 8。我記得第一次看到用小寫‘e’表示指數是在70年代末期。我當時也覺得它極易產生混淆。所以說,這個問題完全是自己‘潛入’FORTRAN里去的,并非一開始就有。假如你真的想使用自然對數的基數,實際有現成的函數可供利用,但它們都是大寫的?!?br />  注重假如編譯器能夠正確地識別類型,就不必使用尾隨字符。對于下述語句:
  long n3 = 200;
  它并不存在含混不清的地方,所以200后面的一個L大可省去。然而,對于下述語句:
  float f4 = 1e-47f; //10的冪數
  編譯器通常會將指數作為雙精度數(double)處理,所以假如沒有這個尾隨的f,就會收到一條出錯提示,告訴我們須用一個“造型”將double轉換成float。
  2. 轉型
  大家會發現假若對主數據類型執行任何算術或按位運算,只要它們“比int小”(即char,byte或者short),那么在正式執行運算之前,那些值會自動轉換成int。這樣一來,最終生成的值就是int類型。所以只要把一個值賦回較小的類型,就必須使用“造型”。此外,由于是將值賦回給較小的類型,所以可能出現信息丟失的情況)。通常,表達式中最大的數據類型是決定了表達式最終結果大小的那個類型。若將一個float值與一個double值相乘,結果就是double;如將一個int和一個long值相加,則結果為long。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲性猛交xxxxwww| 美女久久久久久久| 日本亚洲欧洲色α| 国产精品久久久久久久一区探花| 色偷偷888欧美精品久久久| 国产精品久久久久高潮| 成人动漫网站在线观看| 91久久久久久久| 日韩精品免费一线在线观看| 精品久久久香蕉免费精品视频| 国产视频在线一区二区| 国产精品免费福利| 亚洲欧洲视频在线| 日韩av免费在线观看| 国产中文字幕91| 欧美激情欧美激情| 久久香蕉频线观| 色妞一区二区三区| 国产精品久久久久久久久久久久久久| 亚洲性视频网站| 久久影院资源网| 日韩欧美在线视频免费观看| 青青久久aⅴ北条麻妃| 神马久久桃色视频| 高跟丝袜一区二区三区| 欧美日本精品在线| 日韩人体视频一二区| 欧美大尺度电影在线观看| 青青a在线精品免费观看| 久久人人爽人人爽人人片av高清| 欧美日韩国产精品一区二区不卡中文| 91极品视频在线| 欧美激情网友自拍| 亚洲综合一区二区不卡| 欧美一级大片视频| 欧美性感美女h网站在线观看免费| 亚洲天堂av在线免费观看| 国产精品久久久久久久久久免费| 欧美激情va永久在线播放| 久久精品国产亚洲精品| 亚洲欧美日韩中文在线| 亚洲图片欧美日产| 91视频国产精品| 欧美老肥婆性猛交视频| 亚洲激情小视频| 日韩精品中文在线观看| 欧美一区二区大胆人体摄影专业网站| 久久这里有精品视频| 最近的2019中文字幕免费一页| 欧美大片在线看免费观看| 在线观看欧美成人| 国产成人高清激情视频在线观看| 久久精品国产亚洲精品| 91精品久久久久久久久久久久久| 亚洲精品免费在线视频| 亚洲精品福利在线| 欧美日韩高清区| 久久亚洲精品小早川怜子66| 国产精品∨欧美精品v日韩精品| 国产噜噜噜噜久久久久久久久| 国产午夜精品久久久| 97久久伊人激情网| 精品高清美女精品国产区| 午夜精品国产精品大乳美女| 日韩欧美一区二区在线| 久热精品视频在线观看| 91精品国产电影| 成人性生交大片免费看小说| 亚洲字幕在线观看| 色吧影院999| 亚洲永久在线观看| 91免费看国产| 亚洲sss综合天堂久久| 久久99精品视频一区97| 国产成人精彩在线视频九色| 国产成人涩涩涩视频在线观看| 亚洲精品欧美一区二区三区| 欧美性理论片在线观看片免费| 亚洲精品国产品国语在线| 国产69精品久久久久9| 精品人伦一区二区三区蜜桃网站| 日韩中文字幕在线视频播放| 亚洲综合中文字幕在线| 欧美激情一级欧美精品| 日韩精品免费在线视频观看| 国产精品视频在线观看| 国产精品自拍偷拍视频| 日韩在线视频免费观看| 97在线视频免费观看| 久久久人成影片一区二区三区观看| 国产不卡av在线| 日韩欧美第一页| 久久久久久噜噜噜久久久精品| 97精品伊人久久久大香线蕉| 欧美黑人性视频| 国产欧美一区二区三区在线看| 成人免费视频在线观看超级碰| 亚洲精品视频在线播放| 国产精品99久久久久久久久久久久| 韩国福利视频一区| 日韩女优在线播放| 久久久久久久久电影| 国产午夜精品理论片a级探花| 91av在线播放视频| 97精品视频在线播放| 国产精品成av人在线视午夜片| 久久影视免费观看| 全色精品综合影院| 成年人精品视频| 亚洲精品在线91| yellow中文字幕久久| 国产性色av一区二区| 日韩在线观看免费高清| 日韩高清电影好看的电视剧电影| 这里只有精品视频| 成人精品久久av网站| 美女扒开尿口让男人操亚洲视频网站| 亚洲电影免费观看高清完整版在线观看| 欧美激情久久久久久| 欧美成年人视频| 91久久精品在线| 成人在线中文字幕| 中文字幕少妇一区二区三区| 国产在线一区二区三区| 亚洲欧美一区二区精品久久久| 亚洲成色777777女色窝| 国产在线精品成人一区二区三区| 日韩亚洲欧美中文高清在线| 国产精品情侣自拍| 在线亚洲午夜片av大片| 欧美人与物videos| 日韩中文视频免费在线观看| 91在线免费观看网站| 操人视频在线观看欧美| 欧美性猛交99久久久久99按摩| 91免费人成网站在线观看18| 亚洲人成免费电影| 中文字幕精品国产| 亚洲欧美国产va在线影院| 久久久午夜视频| 91精品国产自产91精品| 青青精品视频播放| 久久影院中文字幕| 亚洲欧美制服综合另类| 日韩欧美国产中文字幕| 欧美精品激情视频| 国产精品69久久| 欧美亚洲视频一区二区| 日韩极品精品视频免费观看| 91精品国产亚洲| 69久久夜色精品国产69乱青草| 69久久夜色精品国产69| 青青久久av北条麻妃海外网| 色天天综合狠狠色| 国产免费一区二区三区在线能观看| 亚洲国产精品va在线观看黑人| 欧美日韩激情视频| 欧美洲成人男女午夜视频| 亚洲国产欧美久久| 亚洲欧美精品一区二区| 一本色道久久88综合亚洲精品ⅰ| 日本一区二区在线免费播放| 国产又爽又黄的激情精品视频| 视频在线观看99|