<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Java的數據類型

      • 變量就是申請內存來存儲值。也就是說,當創建變量的時候,需要在內存中申請空間。
      • 內存管理系統根據變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數據。

      因此,通過定義不同類型的變量,可以在內存中儲存整數、小數或者字符。

      Java 的兩大數據類型:

      • 內置數據類型
      • 引用數據類型

      內置數據類型

      Java語言提供了八種基本類型。六種數字類型(四個整數型,兩個浮點型),一種字符類型,還有一種布爾型。

      || 數據類型 | 字節數|位(bit)| 值范圍 | 包裝類 | 包裝類父類 | 默認值 |
      |:--??:--??:--??:--??:--??:--??:--??:--??:--??
      | 整形 | byte | 1 | 8bit | [-28-1,28-1-1]即為[-128,127] | java.lang.Byte | java.lang.Number | 0 |
      | 整形 | short | 2 | 16bit | [-216-1,216-1-1]即為[-32768,32767] | java.lang.Short | java.lang.Number | 0 |
      | 整形 | int | 4 | 32bit | [-232-1,232-1-1] | java.lang.Integer | java.lang.Number | 0 |
      | 整形 | long | 8 | 64bit | [-264-1,264-1-1] | java.lang.Long | java.lang.Number | 0L |
      | 浮點型 | float | 4 | 32bit | [1.4E-45,3.4028235E38] | java.lang.Float | java.lang.Number | 0.0f |
      | 浮點型 | double | 8 | 64bit | [4.9E-324,1.7976931348623157E308] | java.lang.Double | java.lang.Number | 0.0d |
      | 布爾型 | boolean | 1 | 8bit | true,false | java.lang.Boolean | java.lang.Object | false |
      | 字符型 | char | 2 |16bit | [\u0000, \uffff]轉換10進制[0,65535] | java.lang.Character | java.lang.Object | 'u0000'|

      • java八種基本數據類型分為四類八種,四類分別為整型、浮點型、布爾型、字符型;八種分別為byte、short、int、long、float、double、boolean、char;
      • java八種基本數據類型的字節數:分別為1、2、4、8個字節;1字節(byte、boolean)、 2字節(short、char)、4字節(int、float)、8字節(long、double);
      • 整數的默認類型為int,浮點數的默認類型為double;
      • 八種基本數據類型的包裝類:除了char的是Character、int類型的是Integer,其他都是首字母大寫
      • 關于值的范圍問題,需要注意char類型是無符號的,不能為負,所以是0開始的;

      對于數值類型的基本類型的取值范圍,我們無需強制去記憶,因為它們的值都已經以常量的形式定義在對應的包裝類中了。請看下面的例子:

      public class PrimitiveTypeTest {  
          public static void main(String[] args) {  
              // byte  
              System.out.println("基本類型:byte 二進制位數:" + Byte.SIZE);  
              System.out.println("包裝類:java.lang.Byte");  
              System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
              System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  
              System.out.println();  
        
              // short  
              System.out.println("基本類型:short 二進制位數:" + Short.SIZE);  
              System.out.println("包裝類:java.lang.Short");  
              System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
              System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
              System.out.println();  
        
              // int  
              System.out.println("基本類型:int 二進制位數:" + Integer.SIZE);  
              System.out.println("包裝類:java.lang.Integer");  
              System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
              System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
              System.out.println();  
        
              // long  
              System.out.println("基本類型:long 二進制位數:" + Long.SIZE);  
              System.out.println("包裝類:java.lang.Long");  
              System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
              System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
              System.out.println();  
        
              // float  
              System.out.println("基本類型:float 二進制位數:" + Float.SIZE);  
              System.out.println("包裝類:java.lang.Float");  
              System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
              System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
              System.out.println();  
        
              // double  
              System.out.println("基本類型:double 二進制位數:" + Double.SIZE);  
              System.out.println("包裝類:java.lang.Double");  
              System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  
              System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  
              System.out.println();  
        
              // char  
              System.out.println("基本類型:char 二進制位數:" + Character.SIZE);  
              System.out.println("包裝類:java.lang.Character");  
              // 以數值形式而不是字符形式將Character.MIN_VALUE輸出到控制臺  
              System.out.println("最小值:Character.MIN_VALUE="  
                      + (int) Character.MIN_VALUE);  
              // 以數值形式而不是字符形式將Character.MAX_VALUE輸出到控制臺  
              System.out.println("最大值:Character.MAX_VALUE="  
                      + (int) Character.MAX_VALUE);  
          }  
      }
      

      編譯以上代碼輸出結果如下所示:

      基本類型:byte 二進制位數:8
      包裝類:java.lang.Byte
      最小值:Byte.MIN_VALUE=-128
      最大值:Byte.MAX_VALUE=127
      
      基本類型:short 二進制位數:16
      包裝類:java.lang.Short
      最小值:Short.MIN_VALUE=-32768
      最大值:Short.MAX_VALUE=32767
      
      基本類型:int 二進制位數:32
      包裝類:java.lang.Integer
      最小值:Integer.MIN_VALUE=-2147483648
      最大值:Integer.MAX_VALUE=2147483647
      
      基本類型:long 二進制位數:64
      包裝類:java.lang.Long
      最小值:Long.MIN_VALUE=-9223372036854775808
      最大值:Long.MAX_VALUE=9223372036854775807
      
      基本類型:float 二進制位數:32
      包裝類:java.lang.Float
      最小值:Float.MIN_VALUE=1.4E-45
      最大值:Float.MAX_VALUE=3.4028235E38
      
      基本類型:double 二進制位數:64
      包裝類:java.lang.Double
      最小值:Double.MIN_VALUE=4.9E-324
      最大值:Double.MAX_VALUE=1.7976931348623157E308
      
      基本類型:char 二進制位數:16
      包裝類:java.lang.Character
      最小值:Character.MIN_VALUE=0
      最大值:Character.MAX_VALUE=65535
      

      Float和Double的最小值和最大值都是以科學記數法的形式輸出的,結尾的"E+數字"表示E之前的數字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

      實際上,JAVA中還存在另外一種基本類型 void,它也有對應的包裝類 java.lang.Void,不過我們無法直接對它們進行操作。

      Java 各個類型的默認值:

      public class Test {
          static boolean bool;
          static byte by;
          static char ch;
          static double d;
          static float f;
          static int i;
          static long l;
          static short sh;
          static String str;
       
          public static void main(String[] args) {
              System.out.println("Bool :" + bool);
              System.out.println("Byte :" + by);
              System.out.println("Character:" + ch);
              System.out.println("Double :" + d);
              System.out.println("Float :" + f);
              System.out.println("Integer :" + i);
              System.out.println("Long :" + l);
              System.out.println("Short :" + sh);
              System.out.println("String :" + str);
          }
      }
      

      實例輸出結果為:

      Bool     :false
      Byte     :0
      Character:
      Double   :0.0
      Float    :0.0
      Integer  :0
      Long     :0
      Short    :0
      String   :null
      

      注意:

      byte、int、long、和short都可以用十進制、16進制以及8進制的方式來表示。
      當使用字面量的時候,前綴 0 表示 8 進制,而前綴 0x 代表 16 進制, 例如:

      int decimal = 100;
      int octal = 0144;
      int hexa =  0x64;
      

      包裝類

      • java是一門面向對象的語言,但是8中基本數據類型不具備面向對象的特征,所以實際使用中很不便所以為java八種基本數據類型提供了對應的包裝類。
      • 以List為例,大家都知道一個動態數組的add(Object o)方法只能接受一個引用類型,即一個對象,而怎樣把一個數字放到一個動態數組里面?
      • 對應包裝類比較特殊的就是int對應的Integer和char對應的Character;
      • 對應包裝類的直接父類:前6個由于是數,直接父類為Number,而后兩個的直接父類就是Object類;

      自動拆箱與裝箱

      簡介:jdk1.5之后的新特性。該特性是編譯器認可的,是在編譯器自動將基本數據類型和包裝類相互轉換,節省了麻煩。

      • 自動拆箱 包裝類——>基本數據類型 (原理是調用了xxxValue方法)
      • 自動裝箱 基本數據類型——>包裝類 (原理是調用了valueOf方法)
      public void d() {
      		/*自動裝箱:valueOf*/
      		Integer i=123;//原理是 Integer i=Integer.valueOf(123);
      		
      		/*自動拆箱*/
      		int i1=i+1;//原理是	int i1=i.intValue()+1;
      		
      		Integer a=123;
      		Integer b=123;
      		Integer c=a+b;
      		/*原理為Integer c=Integer.valueOf(a.intValue()+b.intValue());*/
      	}
      
      

      引用類型

      • 在Java中,引用類型的變量非常類似于C/C++的指針。引用類型指向一個對象,指向對象的變量是引用變量。這些變量在聲明時被指定為一個特定的類型,比如 Employee、Puppy 等。變量一旦聲明后,類型就不能被改變了。
      • 對象、數組都是引用數據類型。
      • 所有引用類型的默認值都是null。
      • 一個引用變量可以用來引用任何與之兼容的類型。
      • 例子:Site site = new Site("Runoob")。

      Java 常量

      常量在程序運行時是不能被修改的。

      在 Java 中使用 final 關鍵字來修飾常量,聲明方式和變量類似:
      雖然常量名也可以用小寫,但為了便于識別,通常使用大寫字母表示常量。

      final double PI = 3.1415927;
      

      自動類型轉換

      整型、實型(常量)、字符型數據可以混合運算。運算中,不同類型的數據先轉化為同一類型,然后進行運算。

      轉換從低級到高級。

      低  ------------------------------------>  高
      
      byte,short,char—> int —> long—> float —> double 
      

      • 不能對boolean類型進行類型轉換。

      • 不能把對象類型轉換成不相關類的對象。

      • 在把容量大的類型轉換為容量小的類型時必須使用強制類型轉換。

      • 轉換過程中可能導致溢出或損失精度,例如:

      int i =128;   
      byte b = (byte)i;
      

      因為 byte 類型是 8 位,最大值為127,所以當 int 強制轉換為 byte 類型時,值 128 時候就會導致溢出。

      • 浮點數到整數的轉換是通過舍棄小數得到,而不是四舍五入,例如:
      (int)23.7 == 23;        
      (int)-45.89f == -45
      

      自動類型轉換

      必須滿足轉換前的數據類型的位數要低于轉換后的數據類型,例如: short數據類型的位數為16位,就可以自動轉換位數為32的int類型,同樣float數據類型的位數為32,可以自動轉換為64位的double類型。

      public class ZiDongLeiZhuan{
              public static void main(String[] args){
                  char c1='a';//定義一個char類型
                  int i1 = c1;//char自動類型轉換為int
                  System.out.println("char自動類型轉換為int后的值等于"+i1);
                  char c2 = 'A';//定義一個char類型
                  int i2 = c2+1;//char 類型和 int 類型計算
                  System.out.println("char類型和int計算后的值等于"+i2);
              }
      }
      

      運行結果為:

      char自動類型轉換為int后的值等于97
      char類型和int計算后的值等于66
      

      解析:c1 的值為字符 a ,查 ASCII 碼表可知對應的 int 類型值為 97, A 對應值為 65,所以 i2=65+1=66。

      強制類型轉換

      • 條件是轉換的數據類型必須是兼容的。
      • 格式:(type)value type是要強制類型轉換后的數據類型 實例:
      public class QiangZhiZhuanHuan{
          public static void main(String[] args){
              int i1 = 123;
              byte b = (byte)i1;//強制類型轉換為byte
              System.out.println("int強制類型轉換為byte后的值等于"+b);
          }
      }
      

      運行結果:

      int強制類型轉換為byte后的值等于123
      

      隱含強制類型轉換

      • 整數的默認類型是 int。

      • 浮點型不存在這種情況,因為在定義 float 類型時必須在數字后面跟上 F 或者 f。

      Integer number too large

      public class test {
      
          public static void main(String[] args) {
      
              long b=100000000000;//編譯不通過
          }
      }
      

      Error:(11, 16) java: 過大的整數: 100000000000

      +=的情況

      public static void main(String[] args) {
      		short a=1;	//第一行
      		 a=a+1;		//第二行
      		 a+=1;		//第三行
      }
      /*第幾行的代碼會出錯?
      答案:第二行會出錯,由于a+1變為了int類型,而int類型不能直接賦值給short類型
      但是+=這種情況是特殊的,所以不會出錯;
      */
      
      posted on 2021-05-05 21:41  啞吧  閱讀(66)  評論(0)    收藏  舉報



      主站蜘蛛池模板: 免费人成网站免费看视频| 国产AV影片麻豆精品传媒| 午夜DY888国产精品影院| 无遮高潮国产免费观看| xxxxbbbb欧美残疾人| 亚洲 中文 欧美 日韩 在线| A级毛片100部免费看| 最新国产精品精品视频| 日本中文一二区有码在线| 26uuu另类亚洲欧美日本| 国产精品久久无码不卡黑寡妇| 久久99久国产麻精品66| av天堂久久天堂av| 色综合色国产热无码一| 深夜精品免费在线观看| 亚洲国产成人久久精品不卡| 国产午夜福利在线视频| 99久久精品费精品国产一区二区 | 亚洲一二三区精品美妇| 欧美18videosex性欧美tube1080| 老少配老妇老熟女中文普通话| 富宁县| 国产高清视频一区二区三区| 日本少妇自慰免费完整版| 男女激情一区二区三区| 久久精品丝袜高跟鞋| 亚洲天堂一区二区三区三州| 日韩一区二区三区三级| XXXXXHD亚洲日本HD| 国产区精品视频自产自拍| 一本本月无码-| 欧洲亚洲精品免费二区| 在线精品国精品国产不卡| 国产va免费精品观看| 日本久久99成人网站| 久色伊人激情文学你懂的| 2020国产成人精品视频| 国产精品99久久免费| 高潮精品熟妇一区二区三区| 精品视频福利| 亚洲欧美综合一区二区三区|