Java中數(shù)據(jù)轉(zhuǎn)換及字符串的“+”操作方法
隱式轉(zhuǎn)換(自動(dòng)類(lèi)型轉(zhuǎn)換)
較小范圍的數(shù)據(jù)類(lèi)型轉(zhuǎn)成較大范圍的數(shù)據(jù)類(lèi)型
強(qiáng)制轉(zhuǎn)換(顯式轉(zhuǎn)換)
將數(shù)據(jù)范圍大的數(shù)據(jù)類(lèi)型轉(zhuǎn)換為數(shù)據(jù)范圍小的數(shù)據(jù)類(lèi)型
1.基本數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換
當(dāng)需要將一個(gè)較大的數(shù)據(jù)類(lèi)型(如float
或double
)轉(zhuǎn)換為一個(gè)較小的數(shù)據(jù)類(lèi)型(如int
或byte
)時(shí),由于精度的損失,Java要求顯式強(qiáng)制轉(zhuǎn)換。例如:
double d = 9.78; int i = (int) d; // 強(qiáng)制轉(zhuǎn)換,結(jié)果是9(小數(shù)部分被截?cái)啵?/pre>
2. 引用類(lèi)型之間的轉(zhuǎn)換
在對(duì)象類(lèi)型的轉(zhuǎn)換中,可以將子類(lèi)對(duì)象引用賦值給父類(lèi)引用(隱式),但如果想要將父類(lèi)引用賦值給子類(lèi)引用,則需要進(jìn)行強(qiáng)制轉(zhuǎn)換。強(qiáng)制轉(zhuǎn)換需要確保實(shí)際對(duì)象是目標(biāo)類(lèi)型的實(shí)例,否則會(huì)拋出
ClassCastException。 class Animal {} class Dog extends Animal {} Animal animal = new Dog(); // 隱式轉(zhuǎn)換 Dog dog = (Dog) animal; // 強(qiáng)制轉(zhuǎn)換
3. 注意事項(xiàng)
- 類(lèi)型安全性:在進(jìn)行強(qiáng)制轉(zhuǎn)換時(shí),必須確保對(duì)象的實(shí)際類(lèi)型與轉(zhuǎn)換后的類(lèi)型相符。例如,將一個(gè)
Animal
對(duì)象強(qiáng)制轉(zhuǎn)換為Dog
類(lèi)型,如果該對(duì)象實(shí)際上是Cat
,則會(huì)導(dǎo)致運(yùn)行時(shí)錯(cuò)誤。 - 使用
instanceof
檢查:為了避免ClassCastException
,可以使用instanceof
運(yùn)算符來(lái)檢查一個(gè)對(duì)象是否是某個(gè)類(lèi)型的實(shí)例:
if (animal instanceof Dog) { // 判斷animal是否可以強(qiáng)轉(zhuǎn)為Dog Dog dog = (Dog) animal; // 安全的強(qiáng)制轉(zhuǎn)換 }
字符串的“+”操作
只要是運(yùn)算式里面有字符串,那么“+”操作就是拼接,得到的就是字符串
"123" + 123 --> 得到123123 // 連續(xù)加:從左到右依次運(yùn)算 1 + 99 + "hello world" + 1 + 2 --> 得到"100hello world12"
字符相加
char a = 'A'; char b = 'B'; int result = a + b; // result 是 130(65 + 66)
char a = 'A'; char b = 1; // b 表示增加的偏移量 char result = (char) (a + b); // result 是 'B'
到此這篇關(guān)于Java中數(shù)據(jù)轉(zhuǎn)換以及字符串的“+”操作的文章就介紹到這了,更多相關(guān)java數(shù)據(jù)轉(zhuǎn)換內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
你必須得會(huì)的SpringBoot全局統(tǒng)一處理異常詳解
程序在運(yùn)行的過(guò)程中,不可避免會(huì)產(chǎn)生各種各樣的錯(cuò)誤,這個(gè)時(shí)候就需要進(jìn)行異常處理,本文主要為大家介紹了SpringBoot實(shí)現(xiàn)全局統(tǒng)一處理異常的方法,需要的可以參考一下2023-06-06Java后端請(qǐng)求接收多個(gè)對(duì)象入?yún)⒌臄?shù)據(jù)方法(推薦)
本文介紹了如何使用SpringBoot框架接收多個(gè)對(duì)象作為HTTP請(qǐng)求的入?yún)?通過(guò)創(chuàng)建數(shù)據(jù)模型、DTO類(lèi)和Controller,我們可以輕松處理復(fù)雜的請(qǐng)求數(shù)據(jù)2024-11-11java中字符進(jìn)行全角半角轉(zhuǎn)換示例代碼
全角:指一個(gè)字符占用兩個(gè)標(biāo)準(zhǔn)字符位置,而半角:指一字符占用一個(gè)標(biāo)準(zhǔn)的字符位置,在日常開(kāi)發(fā)中經(jīng)常會(huì)遇到全角半角轉(zhuǎn)換的要求,下面這篇文章主要給大家介紹了關(guān)于java中字符進(jìn)行全角半角轉(zhuǎn)換的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-08-08win10 下 idea2020安裝 JetBrains-agent.jar 包后閃退的問(wèn)題及解決辦法
這篇文章主要介紹了win10 下 idea2020安裝 JetBrains-agent.jar 包后閃退的解決辦法,本文給大家?guī)?lái)原因分析及解決方法,需要的朋友可以參考下2020-08-08基于Graphics2D drawImage圖片失真的解決方案
這篇文章主要介紹了基于Graphics2D drawImage圖片失真的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11Java類(lèi)的序列化版本唯一標(biāo)識(shí)符serialVersionUID使用
serialVersionUID是一個(gè)類(lèi)的序列化版本唯一標(biāo)識(shí)符,用于確保在反序列化過(guò)程中類(lèi)的實(shí)例與序列化文件中的類(lèi)版本相匹配,它在版本兼容性和安全性方面起著關(guān)鍵作用2025-01-01mybatis?plus配置自動(dòng)create_time和update_time方式
在處理數(shù)據(jù)時(shí),注意時(shí)間類(lèi)型的轉(zhuǎn)換非常重要,不同編程環(huán)境和數(shù)據(jù)庫(kù)對(duì)時(shí)間數(shù)據(jù)的處理方式各異,因此在數(shù)據(jù)遷移或日常處理中需謹(jǐn)慎處理時(shí)間格式,個(gè)人經(jīng)驗(yàn)表明,了解常用的時(shí)間轉(zhuǎn)換函數(shù)和方法能有效避免錯(cuò)誤,提高工作效率,希望這些經(jīng)驗(yàn)?zāi)転榇蠹規(guī)?lái)幫助2024-09-09java中List刪除時(shí)需要的注意事項(xiàng)
最近在利用java中的LIST在刪除時(shí)發(fā)現(xiàn)了一個(gè)錯(cuò)我,通過(guò)查找相關(guān)的資料終于解決了,覺(jué)著有必要分享處理給同樣遇到這個(gè)問(wèn)題的朋友參考,下面這篇文章主要介紹了java中List刪除時(shí)需要的注意事項(xiàng),需要的朋友可以一起來(lái)看看吧。2017-01-01