java復合賦值運算符_Java 之復合賦值運算符

1.引入問題

切入正題,看下面代碼,結果應該是怎么樣的

public class App{

public static void main( String[] args ){

byte a=1 ;

int b = 10;

a= a+b;

System.out.println(a);

a+=b;

System.out.println(a);

}

}

這段代碼的執行結果是什么??

2. 執行結果

。。。。。。。。。。。。。。。。。。。答案如下。。。。。。。。。。。。。。

上面的代碼的編譯的時候會報錯,編譯失敗。因為在函數內部第三行中,左邊的a是byte類型,右邊的a是byte類型 b是int類型,當a和b相加的時候就會進行類型提升。導致a+b的結果是int,把一個int型的值賦值給一個byte類型的時候自然會報錯。但是a+=b;這行代碼卻是可以正常執行的,這是為什么呢?

3. 結果分析

關于第三行報錯的原因上面已經說過了,但是a+=b;能夠正常執行的原因是什么呢?根據JLS(Java語言規范)指出,復合賦值運算符表達式 E1 op= E2 等價于 E1 = (T)((E1) op (E2)) 其中T是E1的類型,但E1只會被求值一次。也就是說上面a+b的執行過程是這樣的,a = (byte)(a+b);在賦值的時候發生了強制轉換,所以是可以正常編譯通過的。這樣就解釋了上面編譯的結果了。

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

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

相關文章

程序代碼初學者_初學者:如何使用熱鍵在Windows中啟動任何程序

程序代碼初學者Assigning shortcut keys to launch programs in Windows is probably one of the oldest geek tricks in the book, but in true geek fashion we are going to show you how to do it in Windows 8. 分配快捷鍵以在Windows中啟動程序可能是本書中最古老的怪胎技…

stevedore——啟用方式

2019獨角獸企業重金招聘Python工程師標準>>> setuptools維護的入口點注冊表列出了可用的插件,但是并沒有為最終用戶提供使用或啟用的方法。 下面將描述用于管理要使用的擴展集的公共模式。 通過安裝方式啟用 對于許多應用程序,僅僅安裝一個擴…

java 重置定時器_可重置Java定時器

我想有一個java.utils.Timer與一個可重置時間在java.I需要設置一次off事件發生在X秒。如果在創建定時器的時間和X秒之間沒有發生任何事情,則事件會正常發生。然而,如果在X秒之前,我決定該事件應該發生在Y秒后,然后我想要能夠告訴定…

C# -- 文件的壓縮與解壓(GZipStream)

文件的壓縮與解壓 需引入 System.IO.Compression; 1.C#代碼(入門案例) 1 Console.WriteLine("壓縮文件...............");2 using (FileStream fr File.OpenRead("d:\\test.txt"))3 {4 …

win7屏保文件.scr_如何將屏保添加到Ubuntu 12.04

win7屏保文件.scrUbuntu 12.04 doesn’t ship with any screen savers, just a black screen that appears when your system is idle. If you’d rather have screensavers, you can swap gnome-screensaver for XScreenSaver. Ubuntu 12.04沒有附帶任何屏幕保護程序&#xff…

簡單讀寫XML文件

IPAddress.xml 文件如下&#xff1a; <?xml version"1.0" encoding"utf-8"?><IP><IPAddress>192.168.0.120</IPAddress></IP> 在 Form 窗體(讀取XML配置.Designer.cs)中有如下控件&#xff1a; 代碼 privateSystem.Wind…

如何與Ubuntu One同步配置文件

Ubuntu One lets you easily synchronize files and folders, but it isn’t clear how to sync configuration files. Using Ubuntu One’s folder synchronization options or some symbolic links, you can synchronize configuration files across all your computers. Ubu…

java 輸入流關閉順序_Java IO流中先關閉輸出流還是先關閉輸入流?為什么?

java中需要手動釋放的資源bai常見的有以下兩個&#xff1a;流相du關資zhi源流相關資源一般遵循&#xff1a;1)先開后關dao&#xff0c;先開的輸入流&#xff0c;再開的輸出流&#xff0c;通過讀取輸入流寫入輸出流中&#xff0c;那么應該先關輸出流&#xff0c;再關輸入流&…

解析Linux操作系統文件目錄

隨著Linux的不斷發展&#xff0c;越來越多的人開始使用Linux&#xff0c;對于那些剛剛接觸的人來說&#xff0c;恐怕最先感到困惑的就是那些“不明不白”的目錄了。如果想熟練使用Linux&#xff0c;讓Linux聽命于自己&#xff0c;就必須掌握這些目錄&#xff0c;下面就以Xteam公…

智能家居設備_您的智能家居設備正在監視您嗎?

智能家居設備In a world where we’re all paranoid about devices spying on us (and rightfully so), perhaps no other devices receive more scrutiny than smarthome products. But is that scrutiny warranted? 在一個我們都對監視設備的人都抱有偏執的世界(理應如此)&a…

Jenkins忘記admin密碼處理方法

1、先找到enkins/config.xml文件&#xff0c;并備份。 此文件位于Jenkins系統設置的主目錄&#xff0c;根據自己的配置情況而定。我的位置如下 /data/temp/jenkins/config.xml2、然后編輯config.xml刪除<useSecurity>true</useSecurity>至</securityRealm>&a…

java讀取excel某個單元格的值_java poi怎么獲取excel單元格的內容

展開全部package edu.sjtu.erplab.poi;import java.io.InputStream&chww.xqy.chain" target"_blank" class"link-baike">FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;impor…

科研繪圖工具軟件_如何在Windows 10 Mail中使用繪圖工具

科研繪圖工具軟件Microsoft recently released a new feature for the Windows 10 Mail app that lets you convey messages with drawings right inside the body of an email. This is a great way to quickly sketch things like graphs or tables to get your point across…

子元素相對于父元素垂直居中對齊

記個筆記 1. 元素相對于瀏覽器居中 <style>.window-center {/* 將position設置為fixed&#xff0c;使元素相對于瀏覽器窗口定位 */position: fixed;/* 將margin設置為auto&#xff0c;使瀏覽器自動推算元素外邊距 */margin: auto;/* 將上下左右邊距&#xff08;相對于瀏覽…

SQL Server編程(06)觸發器

SQL Server 通過觸發器用來保證業務邏輯和數據的完整性。在SQL Server中&#xff0c;觸發器是一種特殊類型的存儲過程&#xff0c;可在執行語言事件時自動觸發。SQL Server中觸發器包括三種&#xff1a;DML觸發器、DDL觸發器和登錄觸發器。 DML觸發器&#xff1a;執行DML語句觸…

網站運行java_定制化Azure站點Java運行環境(5)

Java 8下PermGen及參數設置在上一章節中&#xff0c;我們定制化使用了Java 8環境&#xff0c;使用我們的測試頁面打印出了JVM基本參數&#xff0c;但如果我們自己觀察&#xff0c;會發現在MXBeans中&#xff0c;沒有出現PermGen的使用數據&#xff0c;初始大小等信息&#xff0…

三階魔方魔方公式_觀看此魔方的自我解決

三階魔方魔方公式Finally: a Rubik’s cube that can solve itself. A maker named Human Controller built it in Japan, and you can see it in action right now. 最后&#xff1a;一個可以解決自身問題的魔方。 一家名為Human Controller的制造商在日本制造了它&#xff0…

pc樣式在ie8中的bug

2019獨角獸企業重金招聘Python工程師標準>>> pc樣式在ie8中的bug 1,box-sizing:border-box: 在ie中,此屬性的使用有限制: (在IE8中&#xff0c;min-width屬性適用于content-box即使box-sizing設置為border-box。 Chrome select在使用時從元素中選擇選項時遇到問…

下載: 蝦米音樂_您所說的內容:如何組織凌亂的音樂收藏

下載: 蝦米音樂Earlier this week we asked you to share your tips, tricks, and tools, for managing a messy music collection. Now we’re back to share so great reader tips; read on to find ways to tame your mountain of music. 本周早些時候&#xff0c;我們要求您…

Django form表單

Django form表單 目錄 普通方式手寫注冊功能 views.pylogin.html使用form組件實現注冊功能 views.pylogin2.html常用字段與插件 initialerror_messagespasswordradioSelect單選Select多選Select單選checkbox多選checkboxDjango Form所有內置字段校驗補充進階 應用Bootstrap樣式…