本文目錄一覽:
- 1、java中如何進行安全的類型轉換
- 2、Java強制數據類型轉換
- 3、Java的強制轉換優先級比.(點號)優先級高嗎
- 4、JAVA語言數據類型轉換有什麼特點?
- 5、Java數據類型自動轉換的優先順序
- 6、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