17.類型轉換

自動類型轉換

容量小的數據類型可以自動轉換為容量大的數據類型

		byte b = 123;//byte b2 = 300;//報錯,超過了byte最大值127//char c = -3;//報錯,char范圍是0~65536,不在范圍char c2 = 'a';//a在ascii碼里是98int i = c2;long d01 = 123213;float f = d01;

特例

可以將整型常量直接賦值給byte,short,char等類型變量,而不需要進行強制類型轉換,只要不超出其表數范圍

public static void main(String[] args){char a=100;//整型常量可以直接賦值int i=100;char b=i;//整型int變量不能直接賦值。錯誤: 不兼容的類型: 從int轉換到char可能會有損失。char c=(char)i;//正確}

強制類型轉換

用于顯示的轉換一個數值的類型。可能造成精度降低和溢出。

int i=100;char c=(char)i;//正確

注意!

當將一種類型強制轉換成另一種類型,而又超出了目標類型的表示范圍,就會被截斷成為一個完全不同的值。


int i=-100;
char b=(char)i;
System.out.println(b);



類型提升

做所有的二元運算符(+-/*%),都會有類型提升的問題!

	int a = 3;long b = 4;double d = 5.3;//int c = a+b;  //a+b 提升為了long類型,報錯。int c = (int)(a+b); //float f = a + d; //a+d 提升為了double類型,報錯。float f = (float)(a + d);

注意!

類型轉換中,如果超過了類型的表數范圍,則返回錯誤的值。如下例

		int money = 1000000000;  //10億int years = 20;long total = money*years;   //返回的是負數 System.out.println(total);// -1474836480

正確的,提升類型

		int money = 1000000000;  //10億int years = 20;long total = (long)money*years;  System.out.println(total);// 20000000000

上例是在運算前先把money的類型從int提升到long。


再來一例:

//一個人70年心跳多少次long times = 70*60*24*365*70;//返回負數System.out.println(times);//-1719527296

正確的方式,在第一個數轉為long類型

long times = 70L*60*24*365*70;
System.out.println(times);//2575440000



-------------

更多的Java,Angular,Android,大數據,J2EE,Python,數據庫,Linux,Java架構師,:

http://www.cnblogs.com/zengmiaogen/p/7083694.html



本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/538751.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/538751.shtml
英文地址,請注明出處:http://en.pswp.cn/news/538751.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

docker rabbitmq_一文看懂Rabbitmq,從安裝到實戰演練

Rabbitmq的初步使用隨著微服務概念發展,大應用逐步拆分為小應用,提高開發效率,專門的人做專門的事情,逐漸的流行起來。在微服務上實現通信的方式大部分是采用rpc方式,也有升級版本的grpc。還有另外一種實現就是使用mq來…

Angular v6 正式發布

Angular 6 正式發布 Angular 6 已經正式發布了!這個主要版本并不關注于底層的框架,更多地關注于工具鏈,以及使 Angular 在未來更容易快速推進。 作為發布的一部分,我們同步了主要的框架包 (angular/core, angular/common, angula…

bootstrap五星評分_如何用純代碼實現評分星級顯示?

showRatingStars/*** showRatingStars 顯示評分星級* param {Object} myCanvas 畫布對象* param {Number} rating 評分* param {Number} counts star個數* param {Number} size star大小* param {Object} style star樣式* Example: style {* borderColor:"#21DEEF",…

18.變量

Java是一種強類型語言,每個變量都必須聲明其類型。 Java變量是程序中最基本的存儲單元,其要素包括變量名,變量類型和作用域。 變量在使用前必須對其聲明,只有在變量聲明以后,才能為其分配相應長度的存儲單元。 注意事項…

alertdialog android api 11,android – 設備api級別11的DialogFragments

我設法在兼容包的DialogFragment.java中正確修復了這個問題:改變第74行:boolean mShowsDialog false;注釋掉第232行:// mShowsDialog mContainerId 0;然后將兩個show方法更改為:public void show(FragmentManager manager, Str…

py 字典添加多個value_# Python 3 # Python 3字典Dictionary(1)

Python3 字典字典是另一種可變容器模型,且可存儲任意類型對象。字典的每個鍵值(key>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:d {key1 : value1, key2 : value2 }鍵必須是唯…

饒軍:Apache Kafka的過去,現在,和未來

歡迎大家前往騰訊云社區,獲取更多騰訊海量技術實踐干貨哦~ 本文首發在云社區,未經許可,不得轉載。大家好,我大概簡單的介紹一下,我叫饒軍,我是硅谷的初創公司Con?uent的聯合創始人之一,我們公司…

機器人 樹莓派 自閉癥_用機器人孩子提高社交能力 讓自閉兒童走出自閉

一項由耶魯大學的研究團隊研究發現,通過讓患有自閉癥譜系障礙(autism spectrum disorders,ASD)的孩童與機器人相處一個月,極大地提高了自閉癥兒童的社交能力。耶魯大學研究中的機器人可以通過眼神接觸和模仿其它社交行為,通過講故事和互動游戲…

19.常量-final

final 常量 final修飾,只能被初始化一次。 public static void main(String[] args){final int a3;a4;//報錯/*TestVariable.java:7: 錯誤: 無法為最終變量a分配值a4;^ 1 個錯誤*/}常量一般用大寫來修飾。 ------------- 更多的Java,Angular,…

Android手機avi轉換為mp4手機,如何把avi轉換為mp4

AVI是目前比較常見的一種音視頻交錯格式,這種格式的文件在多種地方是可以看到的,大多在游戲錄制、光盤文件中可以見到此類文件。其畫質不錯,適合在電腦上觀看,但是現在我們使用較多的是手機、iPad等設備。如果我們想要在這些設備上…

偽代碼書寫規范_C++代碼書寫規范(推薦新手程序員)

代碼就是程序員的面子,無論是在工作中在電腦上寫程序代碼還是在面試時在紙上寫演示代碼我們都希望寫出整潔,優雅的代碼。特別在工作中當我們碰到需要維護別人的代碼,或者是多人參與一個項目大家一起寫代碼的時候,如果碰到一些丑陋…

Java基礎17:Java IO流總結

版權聲明:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/a724888/article/details/80201802 這位大俠,這是我的公眾號:程序員江湖。 分享程序員面試與技術的那些事。 干貨滿滿,關注就送。 本文介…

nuxt頁面跳轉_nuxt 項目如何解決組件復用時頁面不刷新的問題

組件復用會在兩種情況下發生:1、使用 keep-alive 時,頁面再次跳轉時,數據不更新每一次路由的切換都會導致頁面被重新渲染,無論是各種鉤子還是異步獲取數據函數都會被執行,為了提高網站性能,可以使用 keep-a…

20.命名規范

所有變量,方法,類名:見名知意 變量,方法名 --首字母小寫和駝峰原則。 如:run(),getName() 常量 ---大寫字母和下劃線:MAX_VALUE 類名 ---首字母大寫和駝峰原則。 如:Man,HelloWorld ------…

k8s查看pod的yaml文件_K8s-yaml的使用及命令

YAML配置文件管理對象對象管理:# 創建deployment資源kubectl create-f nginx-deployment.yaml# 查看deploymentkubectl get deploy# 查看ReplicaSetkubectl get rs# 查看pods所有標簽kubectl get pods--show-labels# 根據標簽查看podskubectl get pods-l appnginx# …

Orange Business Services 全球發布 Easy Go Network,幫助企業加速實現“網絡即服務”...

100% 數字化, 軟件定義網絡( SDN) 產品在 75 個國家上市 在云、移動化、大數據和物聯網(IoT)趨勢的推動下,企業不斷尋求更加智能和更加靈活的網絡,以支持他們的數字化轉型方案。而網絡只有演進至“網絡即服務”(NaaS&a…

vue的html自動刷新,Vue頁面刷新記住頁面狀態的實現

環境vue項目,頁面有搜索、篩選項等。需求頁面跳轉,切換或者刷新,希望可以記住用戶在頁面的篩選狀態方案v1vue有提供一種緩存組件的解決方案 — keep-alive。緩存不活動的組件實例,而不是銷毀它們。我們可以使用keep-alive包括路由…

python 程序停止打印日志_Python日志打印

簡單示例import sysimport ctypesimport loggingimport logging.handlersreload(sys)sys.setdefaultencoding(utf-8)LOG_FILE test_loglogging.basicConfig(filename LOG_FILE,format %(asctime)s - %(levelname)s -%(process)d- %(filename)s:%(funcName)s:%(lineno)d - %(…

21.和和instance of

>> 右移一位。相當于除2 << 左移一位。相當于乘2 public static void main(String[] args) {int a3<<2;int b12>>2;System.out.println("a"a);System.out.println("b"b);}解析&#xff1a; a3*2*212 b12/2/23 運行結果&#xf…