目錄
JAVA 章節二基本資料型別
" >JAVA 章節二基本資料型別
#目錄 " >#目錄 
实例" >实例
二、引用类型" >二、引用类型
Java数据类型转换" >Java数据类型转换
一、自动类型转换" >一、自动类型转换
必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。" >必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。
二、强制类型转换" >二、强制类型转换
Java的常量" >Java的常量
首頁 Java java教程 JAVA 入坑教學 | 章節二 基本資料類型

JAVA 入坑教學 | 章節二 基本資料類型

Feb 25, 2017 am 09:46 AM

JAVA 章節二基本資料型別

#目錄 


    ##Java基本資料型別:兩大類別
  • #內建資料型別
    • 引用資料型別

  • #Java類型的轉換



#自動類型轉換

強制型別轉換

#Java的常數

JAVA 入坑教學 | 章節二 基本資料類型#Java基本資料類型

一、內建資料型別

    • Java語言

      提供了

    • #八種基本型別

      。六種數字類型(四個整數型,兩個浮點型),一種字元類型,還有一種布林型。

    數值類型--整數型別byte:

byte資料型別是8位元、有符號的,以二進位補碼表示的整數;

######最小值是-128(-2^7);##################最大值是127(2^7-1);########### #######預設值是0;##################byte型別用在大型陣列中節省空間,主要取代整數,因為byte變數所佔用的空間只有int型別的四分之一;##################範例:byte a = 100,byte b = -50。 #####################################數值類型--整數型別 ######short: ############
    • short資料類型是16位元、有符號的以二進位補碼表示的整數

    • 最小值是-32768(-2^15);

    • #最大值是32767(2^15 - 1);

##Short資料型別也可以像byte一樣節省空間。一個short變數是int型變數所佔空間的二分之一;

    • #預設值是0;

    • ##範例:short s = 1000,short r = -20000。

    • #數值類型--整數型別 int:

int資料型態是32位元、有符號的二進位補碼表示的整數;最小值是-2,147,483,648(-2^31);

    • #最大值是2,147,483,647 (2^31 - 1);

    • 一般地整數變數預設為int型別;

    • 預設值是0;

    • 範例:int a = 100000, int b = -200000。

    • #數值類型--整數型別 long:

long資料型別是64位元、有符號的二進位補碼表示的整數;

最小值是-9,223,372,036,854,775,808(-2^63);
    • 最大值是9,223,372,036,854,775,807 (2^63 -1);

    • 這種型別主要使用在需要比較大整數的系統上;

    • #預設值是0L;

    • # 範例: long a = 100000L,Long b = -200000L。

    • #############數值類型--浮點數類型 ###float:##### #########################float資料型態是單一精確度、32位元、符合IEEE 754標準的浮點數;######## ###########float在儲存大型浮點陣列的時候可節省記憶體空間;##################預設值是0.0f;# #################浮點數不能用來表示精確的值,如貨幣;#################範例: float f1 = 234.5f。 ######

数值型--浮点类型 double:

    • double数据类型是双精度、64位、符合IEEE 754标准的浮点数;

    • 浮点数的默认类型为double类型;

    • double类型同样不能表示精确的值,如货币;

    • 默认值是0.0d;

    • 例子:double d1 = 123.4。

布尔型--boolean:

    • boolean数据类型表示一位的信息;

    • 只有两个取值:true和false;

    • 这种类型只作为一种标志来记录true/false情况;

    • 默认值是false;

    • 例子:boolean one = true。

字符型--char:

    • char类型是一个单一的16位Unicode字符;

    • 最小值是’\u0000’(即为0);

    • 最大值是’\uffff’(即为65,535);

    • char数据类型可以储存任何字符;

    • 例子:char letter = ‘A’。

实例

对于数值类型的基本类型的取值范围,我们无需强制去记忆,因为它们的值都已经以常量的形式定义在对应的包装类中了。请看下面的例子:


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中,引用类型的变量非常类似于C/C++的指针。引用类型指向一个对象,指向对象的变量是引用变量。这些变量在声明时被指定为一个特定的类型,比如Employee、Pubby等。变量一旦声明后,类型就不能被改变了。


需要注意:

  1. 对象、数组都是引用数据类型。

  2. 所有引用类型的默认值都是null。

  3. 一个引用变量可以用来引用与任何与之兼容的类型。

  • 例子:Site site = new Site("Runoob")。




Java数据类型转换


Java 语言是一种强类型的语言。强类型的语言有以下几个要求:


  • 变量或常量必须有类型:要求声明变量或常量时必须声明类型,而且只能在声明以后才能使用。

  • 赋值时类型必须一致:值的类型必须和变量或常量的类型完全一致。

  • 运算时类型必须一致:参与运算的数据类型必须一致才能运算。



但是在实际的使用中,经常需要在不同类型的值之间进行操作,这就需要一种新的语法来适应这种需要,这个语法就是数据类型转换。


在数值处理这部分,计算机和现实的逻辑不太一样,对于现实来说,1和 1.0 没有什么区别,但是对于计算机来说,1 是整数类型,而 1.0 是小数类型,其在内存中的存储方式以及占用的空间都不一样,所以类型转换在计算机内部是必须的。


Java 语言中的数据类型转换有两种:



  • 自动类型转换:编译器自动完成类型转换,不需要在程序中编写代码。

  • 强制类型转换:强制编译器进行类型转换,必须在程序中编写代码。



由于基本数据类型中 boolean 类型不是数字型,所以基本数据类型的转换是出了 boolean 类型以外的其它 7 种类型之间的转换。下面来具体介绍两种类型转换的规则、适用场合以及使用时需要注意的问题。

一、自动类型转换


自动类型转换,也称隐式类型(隐含类型)转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以 Java 语言在设计时,没有为该操作设计语法,而是由 JVM 自动完成。 当范围低的基本类型和范围高的基本类型做运算时,范围低的就会自动转换为高范围的类型,还有,当子类赋给父类变量时,也属于自动类型转换。而一般强制类型转换就是反过来说,也是他们的区别

  • 1. 整数的默认类型时int

  • 2. 浮点型不存在这种情况,因为在定义float类型时必须在数字后面跟上F或者f



转换规则:从存储范围小的类型到存储范围大的类型。
具体规则为:byte→short(char)→int→long→float→double

所有,整型、实型(常量)、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从 --> 低级到高级。


byte,short,char—> int —> long—> float —> double
登入後複製


也就是说 byte 类型的变量可以自动转换为 short 类型,示例代码:


byte  b  =  10;
登入後複製



short sh = b;这里在赋值时,JVM 首先将 b 的值转换为 short 类型,然后再赋值给 sh。
在类型转换时可以跳跃。示例代码:



byte  b1  =  100;int  n  =  b1;
登入後複製



注意问题 : 在整数之间进行类型转换时,数值不发生改变,而将整数类型,特别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。

  • int i =128;   byte b = (byte)i;
    登入後複製

    因为byte类型时8位,最大值为127,所以当强制转换为int类型值128时候就会导致溢出。


  • ——浮点数到整数的转换是通过舍弃小数得到,而不是四舍五入,例如:

    (int)23.7 == 23;		(int)-45.89f == -45
    登入後複製

必须满足转换前的数据类型的位数要低于转换后的数据类型,例如: short数据类型的位数为16位,就可以自动转换位数为32的int类型,同样float数据类型的位数为32,可以自动转换为64位的double类型。

数据类型转换必须满足如下规则:

1. 不能对boolean类型进行类型转换。

2. 不能把对象类型转换成不相关类的对象。

3. 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。

4. 转换过程中可能导致溢出或损失精度,例如:

public class ZiDongLeiZhuan{
        public static void main(String[] args){
            char cao1='a';//定义一个char类型
            int it1 = cao1;//char自动类型转换为int
            System.out.println("char自动类型转换为int后的值等于"+it1);
            char cao2 = 'A';//定义一个char类型
            int it2 = cao2+10;//char 类型和 int 类型计算
            System.out.println("char类型和int计算后的值等于"+it2);
        }
}
登入後複製


运行结果为:


char自动类型转换为int后的值等于 97
char类型和int计算后的值等于 75
登入後複製


解析:

cao1 的值为字符'a', 查 ascii 码表可知对应的int类型值为 97( 文章最后会提供 ASCII 表 )

那么字符 cao2 的'A' 对应值为65,所以it2=65+10=75。


二、强制类型转换

  • 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。

  • 1. 条件是转换的数据类型必须是兼容的。

  • 2. 格式:(type)value type是要强制类型转换后的数据类型

  • 实例:

  • public class QiangZhiZhuanHuan{
            public static void main(String[] args){
                int i1 = 123456;
                byte b = (byte)i1;//强制类型转换为byte
                System.out.println("int强制类型转换为byte后的值等于"+b);
                
            }
    }
    登入後複製
  • 运行结果:

    int强制类型转换为byte后的值等于 12356
    登入後複製

转换规则:从存储范围大的类型到存储范围小的类型。

具体规则为:double→float→long→int→short(char)→byte

语法格式为:(转换到的类型)需要转换的值

示例代码:


double  d  =  3.10;int  n  =  (int)d;
登入後複製


这里将 double 类型的变量 d 强制转换成 int 类型,然后赋值给变量 n。需要说明的是小数强制转换为整数,采用的是“去 1 法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是 3。整数强制转换为整数时取数字的低位,例如 int 类型的变量转换为 byte 类型时,则只去 int 类型的低 8 位(也就是最后一个字节)的值。


示例代码:


int  n  =  123;byte  b  =  (byte)n;int  m  =  1234;byte  b1  =  (byte)m;
登入後複製


则 b 的值还是 123,而 b1 的值为-46。

b1 的计算方法如下:m 的值转换为二进制是10011010010,取该数字低8位的值作为b1的值,则b1的二进制值是11010010,按照机器数的规定,最高位是符号位,1 代表负数,在计算机中负数存储的是补码,则该负数的原码是 10101110,该值就是十进制的-46。


注意问题:强制类型转换通常都会存储精度的损失,所以使用时需要谨慎。


Java的常量

常量在程序运行时,不会被修改的量。

在 Java 中使用 final 关键字来修饰常量,声明方式和变量类似:

final double PI = 3.1415927;
登入後複製

虽然常量名也可以用小写,但为了便于识别,通常使用大写字母表示常量。

字面量可以赋给任何内置类型的变量。例如:

byte a = 68;
登入後複製
char a = 'A'
登入後複製

byte、int、long、和short都可以用十进制、16进制以及8进制的方式来表示。

当使用常量的时候,前缀0表示8进制,而前缀0x代表16进制。例如:

int decimal = 100;
登入後複製
int octal = 0144;
登入後複製
int hexa =  0x64;
登入後複製


和其他语言一样,Java的字符串常量也是包含在两个引号之间的字符序列。下面是字符串型字面量的例子:

"Hello World"
"two\nlines"
"\"This is in quotes\""
登入後複製

字符串常量和字符常量都可以包含任何Unicode字符。例如:

char a = '\u0001';
String a = "\u0001";
登入後複製



Java语言支持一些特殊的转义字符序列:


\r\f\b
符號 字元意義
##\n 換行(0x0a)
#\r
##回車(0x0d)
取代頁符號(0x0c)
已退格(0x08) ##\s
#空格(0x20) #\t
製表符 ############\"############雙引號#################\ '### 單引號
\\ 反斜線
#\ddd 八進位字元(ddd)



ASCII 表



###################################################################################################################################################### # #\uxxxx############16進位Unicode字元(xxxx)########################### #########附:ASCII 表############################### 以上是JAVA  入坑教學|章節二基本資料類型 的內容,更多相關內容請關注PHP中文網(www.php.cn)! ################
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java Spring 面試題 Java Spring 面試題 Aug 30, 2024 pm 04:29 PM

在本文中,我們保留了最常被問到的 Java Spring 面試問題及其詳細答案。這樣你就可以順利通過面試。

突破或從Java 8流返回? 突破或從Java 8流返回? Feb 07, 2025 pm 12:09 PM

Java 8引入了Stream API,提供了一種強大且表達力豐富的處理數據集合的方式。然而,使用Stream時,一個常見問題是:如何從forEach操作中中斷或返回? 傳統循環允許提前中斷或返回,但Stream的forEach方法並不直接支持這種方式。本文將解釋原因,並探討在Stream處理系統中實現提前終止的替代方法。 延伸閱讀: Java Stream API改進 理解Stream forEach forEach方法是一個終端操作,它對Stream中的每個元素執行一個操作。它的設計意圖是處

PHP:網絡開發的關鍵語言 PHP:網絡開發的關鍵語言 Apr 13, 2025 am 12:08 AM

PHP是一種廣泛應用於服務器端的腳本語言,特別適合web開發。 1.PHP可以嵌入HTML,處理HTTP請求和響應,支持多種數據庫。 2.PHP用於生成動態網頁內容,處理表單數據,訪問數據庫等,具有強大的社區支持和開源資源。 3.PHP是解釋型語言,執行過程包括詞法分析、語法分析、編譯和執行。 4.PHP可以與MySQL結合用於用戶註冊系統等高級應用。 5.調試PHP時,可使用error_reporting()和var_dump()等函數。 6.優化PHP代碼可通過緩存機制、優化數據庫查詢和使用內置函數。 7

Java 中的時間戳至今 Java 中的時間戳至今 Aug 30, 2024 pm 04:28 PM

Java 中的時間戳記到日期指南。這裡我們也結合範例討論了介紹以及如何在java中將時間戳記轉換為日期。

PHP與Python:了解差異 PHP與Python:了解差異 Apr 11, 2025 am 12:15 AM

PHP和Python各有優勢,選擇應基於項目需求。 1.PHP適合web開發,語法簡單,執行效率高。 2.Python適用於數據科學和機器學習,語法簡潔,庫豐富。

Java程序查找膠囊的體積 Java程序查找膠囊的體積 Feb 07, 2025 am 11:37 AM

膠囊是一種三維幾何圖形,由一個圓柱體和兩端各一個半球體組成。膠囊的體積可以通過將圓柱體的體積和兩端半球體的體積相加來計算。本教程將討論如何使用不同的方法在Java中計算給定膠囊的體積。 膠囊體積公式 膠囊體積的公式如下: 膠囊體積 = 圓柱體體積 兩個半球體體積 其中, r: 半球體的半徑。 h: 圓柱體的高度(不包括半球體)。 例子 1 輸入 半徑 = 5 單位 高度 = 10 單位 輸出 體積 = 1570.8 立方單位 解釋 使用公式計算體積: 體積 = π × r2 × h (4

PHP與Python:核心功能 PHP與Python:核心功能 Apr 13, 2025 am 12:16 AM

PHP和Python各有優勢,適合不同場景。 1.PHP適用於web開發,提供內置web服務器和豐富函數庫。 2.Python適合數據科學和機器學習,語法簡潔且有強大標準庫。選擇時應根據項目需求決定。

PHP與其他語言:比較 PHP與其他語言:比較 Apr 13, 2025 am 12:19 AM

PHP適合web開發,特別是在快速開發和處理動態內容方面表現出色,但不擅長數據科學和企業級應用。與Python相比,PHP在web開發中更具優勢,但在數據科學領域不如Python;與Java相比,PHP在企業級應用中表現較差,但在web開發中更靈活;與JavaScript相比,PHP在後端開發中更簡潔,但在前端開發中不如JavaScript。

See all articles