java中類型轉換那種性能最優(java中各種類型之間的轉換)

本文目錄一覽:

java中如何進行安全的類型轉換

java中類型轉換有自動轉化跟強制類型轉換;打個比方就是:int轉double類型是自動轉化,

而double轉化成int是強制類型轉化;(注意強制類型轉化會造成數據丟失)

以下是大概類型轉化:

byte-short-int-long-double

char-int -long-double

char-int -float-double

long-float

Java強制數據類型轉換

規則可不少,挺亂的其實:

強制數據類型轉換: int nowC = (int)c;

還可以這樣,使用intValue方法,返回一個int值:

Double d = 5 / 9.0 * (f – 32);

int nowC = d.intValue();

Double類是基本數據類型double所對應的包裝類。

基本數據類型轉換的規則:

Java中基本數據類型共有8種,其中boolean類型不能轉換為其它類型,其它類型也不能轉換為boolean型

除了boolean類型,還有7種,按照它們的容量(也就是表數範圍,就是能表示的數的大小範圍,比如char是0——65535)的大小,從小到大,排序依次為:

byte short char int long float double

1.容量小的向容量大的轉換,可以自動轉換,比如可以直接將一個int類型賦值給double:

double d = 34;

2.容量大的向容量小的轉換,必須強制類型轉換,就是你上面的那種形式,比如:

double c = 5/9.0 *(f – 32);

int nowC = (int)c;

3.整數類型常量默認為int類型,比如17

4.浮點類型常量默認為double類型,比如3.14

5.在多種數據類型混合運算時,容量小的自動轉換為整個表達式中容量最大的,然後再進行計算,比如:

int i = 9; float f = 4f; double d = 3.14; double dd = i+f+d;

此時,i和f都各自先轉換成double,在進行+運算。

6.在多種數據類型混合運算時,byte short char 3者不會互相轉換,他們各自轉換為int再進行計算

7.在有些時候,容量小的會自動提升為容量大的,比如方法重載傳參數時候,

但是byte 和 short 不會自動提升為char,其它類型按照我上面所述的順序提升。

差不多就這些,不明白補充,另外需要注意的是強轉雖然編譯沒問題,但是運行時,有可能會數據溢出,損失精度

Java的強制轉換優先級比.(點號)優先級高嗎

java中運算符:

算術運算符:+,-,*,/,%,++,–

關係運算符:,,=,=,==,!=

布爾邏輯運算符:!,,||

位運算符:,,,,|,^

賦值運算符=,及其擴展賦值運算符如+=,-=,*=,/=

條件運算符?:

其他:分量運算符.

下標運算符[]

實例運算符instanceof

內存分配符new

強制類型轉換運算符(類型)

方法調用運算符()

運算符的運算順序:

運算符優先級表

優先級 運算符 結合性

1 () [] . 從左到右

2 ! +(正) -(負) ~ ++ — 從右向左

3 * / % 從左向右

4 +(加) -(減) 從左向右

5 從左向右

6 = = instanceof 從左向右

7 == != 從左向右

8 (按位與) 從左向右

9 ^ 從左向右

10 | 從左向右

11 從左向右

12 || 從左向右

13 ?: 從右向左

14 = += -= *= /= %= = |= ^= ~= = = = 從右向左

——————————————————————————–

(Element)node1.getFirstChild()應該是從右至左運算,即先運算node1.getFirstChild(),然後再強制轉換。

JAVA語言數據類型轉換有什麼特點?

Java數據類型的轉換原則

從低精度向高精度轉換

byte 、short、int、long、float、double、char

註:兩個char型運算時,自動轉換為int型;當char與別的類型運算時,也會先自動轉換為int型的,再做其它類型的自動轉換

基本類型向類類型轉換

正向轉換:通過類包裝器來new出一個新的類類型的變量

Integer a= new Integer(2);

反向轉換:通過類包裝器來轉換

int b=a.intValue();

類類型向字符串轉換

正向轉換:因為每個類都是object類的子類,而所有的object類都有一個toString()函數,所以通過toString()函數來轉換即可

反向轉換:通過類包裝器new出一個新的類類型的變量

eg1: int i=Integer.valueOf(「123」).intValue()

說明:上例是將一個字符串轉化成一個Integer對象,然後再調用這個對象的intValue()方法返回其對應的int數值。

eg2: float f=Float.valueOf(「123」).floatValue()

說明:上例是將一個字符串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。

eg3: boolean b=Boolean.valueOf(「123」).booleanValue()

說明:上例是將一個字符串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。

eg4:double d=Double.valueOf(「123」).doubleValue()

說明:上例是將一個字符串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。

eg5: long l=Long.valueOf(「123」).longValue()

說明:上例是將一個字符串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。

eg6: char=Character.valueOf(「123」).charValue()

說明:上例是將一個字符串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。

基本類型向字符串的轉換

正向轉換:

如:int a=12;

String b;b=a+」」;

反向轉換:

通過類包裝器

eg1:int i=Integer.parseInt(「123」)

說明:此方法只能適用於字符串轉化成整型變量

eg2: float f=Float.valueOf(「123」).floatValue()

說明:上例是將一個字符串轉化成一個Float對象,然後再調用這個對象的floatValue()方法返回其對應的float數值。

eg3: boolean b=Boolean.valueOf(「123」).booleanValue()

說明:上例是將一個字符串轉化成一個Boolean對象,然後再調用這個對象的booleanValue()方法返回其對應的boolean數值。

eg4:double d=Double.valueOf(「123」).doubleValue()

說明:上例是將一個字符串轉化成一個Double對象,然後再調用這個對象的doubleValue()方法返回其對應的double數值。

eg5: long l=Long.valueOf(「123」).longValue()

說明:上例是將一個字符串轉化成一個Long對象,然後再調用這個對象的longValue()方法返回其對應的long數值。

eg6: char=Character.valueOf(「123」).charValue()

說明:上例是將一個字符串轉化成一個Character對象,然後再調用這個對象的charValue()方法返回其對應的char數值。

Java數據類型自動轉換的優先順序

樓主你好: 轉換原則:從低精度向高精度轉換byte 、short、int、long、float、double、char

註:兩個char型運算時,自動轉換為int型;當char與別的類型運算時,也會先自動轉換為int型的,再做其它類型的自動轉換

基本類型有以下四種:int 長度數據類型有:byte(8bits)、short(16bits)、int(32bits)、long(64bits)、

float 長度數據類型有:單精度(32bits float)、雙精度(64bits double)

boolean 類型變量的取值有:ture、false 。1位元組(8位)

char數據類型有:unicode字符,16位

對應的類類型:Integer、Float、Boolean、Character、Double、Short、Byte、Long

java 強制轉換類型有性能開銷嗎?

1、java強制轉換類型,對性能沒有什麼影響。

2、盡量不要使用強制轉換。

3、手機上的java ide,你用過嗎?隨時隨地寫java,無需安裝任何操作環境,簡單,直接,一切就是這麼容易。快來造吧。。

4、學java,用java,都少不了i碼邦,10月10日國內Android和ios已經全部上線,歡迎下載。國際版即將上線,屆時你將和全球程序員共享一個社區。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/254039.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 02:38
下一篇 2024-12-14 17:40

相關推薦

  • Java JsonPath 效率優化指南

    本篇文章將深入探討Java JsonPath的效率問題,並提供一些優化方案。 一、JsonPath 簡介 JsonPath是一個可用於從JSON數據中獲取信息的庫。它提供了一種DS…

    編程 2025-04-29
  • java client.getacsresponse 編譯報錯解決方法

    java client.getacsresponse 編譯報錯是Java編程過程中常見的錯誤,常見的原因是代碼的語法錯誤、類庫依賴問題和編譯環境的配置問題。下面將從多個方面進行分析…

    編程 2025-04-29
  • Java騰訊雲音視頻對接

    本文旨在從多個方面詳細闡述Java騰訊雲音視頻對接,提供完整的代碼示例。 一、騰訊雲音視頻介紹 騰訊雲音視頻服務(Cloud Tencent Real-Time Communica…

    編程 2025-04-29
  • int類型變量的細節與注意事項

    本文將從 int 類型變量的定義、聲明、初始化、範圍、運算和類型轉換等方面,對 int 類型變量進行詳細闡述和講解,幫助讀者更好地掌握和應用 int 變量。 一、定義與聲明 int…

    編程 2025-04-29
  • Java Bean加載過程

    Java Bean加載過程涉及到類加載器、反射機制和Java虛擬機的執行過程。在本文中,將從這三個方面詳細闡述Java Bean加載的過程。 一、類加載器 類加載器是Java虛擬機…

    編程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介紹

    本文將詳細介紹Java Milvus SearchParam withoutFields的相關知識和用法。 一、什麼是Java Milvus SearchParam without…

    編程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java語言中的一個版本,於2014年3月18日發佈。本文將從多個方面對Java 8中某一周的周一進行詳細的闡述。 一、數組處理 Java 8新特性之一是Stream…

    編程 2025-04-29
  • Java判斷字符串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字符串中是否存在多個指定字符: 一、字符串遍歷 字符串是Java編程中非常重要的一種數據類型。要判斷字符串中是否存在多個指定字符…

    編程 2025-04-29
  • Python3定義函數參數類型

    Python是一門動態類型語言,不需要在定義變量時顯示的指定變量類型,但是Python3中提供了函數參數類型的聲明功能,在函數定義時明確定義參數類型。在函數的形參後面加上冒號(:)…

    編程 2025-04-29
  • VSCode為什麼無法運行Java

    解答:VSCode無法運行Java是因為默認情況下,VSCode並沒有集成Java運行環境,需要手動添加Java運行環境或安裝相關插件才能實現Java代碼的編寫、調試和運行。 一、…

    編程 2025-04-29

發表回復

登錄後才能評論