當前位置:首頁 » 編程語言 » java隱式

java隱式

發布時間: 2022-02-23 10:15:44

java中什麼是顯式類型轉換和隱式類型轉換

自動類型轉換,也稱隱式類型轉換,是指不需要書寫代碼,由系統自動完成的類型轉換。由於實際開發中這樣的類型轉換很多,所以Java語言在設計時,沒有為該操作設計語法,而是由JVM自動完成。
轉換規則
存儲范圍小的類型到存儲范圍大的類型。
具體規則為:
byte→short(char)→int→long→float→double
也就是說byte類型的變數可以自動轉換為short類型,示例代碼:
byte b = 10;
short sh = b;
這里在賦值時,JVM首先將b的值轉換為short類型,然後再賦值給sh。
在類型轉換時可以跳躍。示例代碼:
byte b1 = 100;
int n = b1;
l 注意問題
在整數之間進行類型轉換時,數值不發生改變,而將整數類型,特別是比較大的整數類型轉換成小數類型時,由於存儲方式不同,有可能存在數據精度的損失。
強制類型轉換,也稱顯式類型轉換,是指必須書寫代碼才能完成的類型轉換。該類類型轉換很可能存在精度的損失,所以必須書寫相應的代碼,並且能夠忍受該種損失時才進行該類型的轉換。
轉換規則
從存儲范圍大的類型到存儲范圍小的類型。
具體規則為:
double→float→long→int→short(char)→byte
語法格式為:
(轉換到的類型)需要轉換的值
示例代碼:
double d = 3.10;
int n = (int)d;
這里將double類型的變數d強制轉換成int類型,然後賦值給變數n。需要說明的是小數強制轉換為整數,採用的是「去1法」,也就是無條件的舍棄小數點的所有數字,則以上轉換出的結果是3。整數強制轉換為整數時取數字的低位,例如int類型的變數轉換為byte類型時,則只去int類型的低8位(也就是最後一個位元組)的值。
示例代碼:
int n = 123;
byte b = (byte)n;
int m = 1234;
byte b1 = (byte)m;
則b的值還是123,而b1的值為-46。b1的計算方法如下:m的值轉換為二進制是10011010010,取該數字低8位的值作為b1的值,則b1的二進制值是11010010,按照機器數的規定,最高位是符號位,1代表負數,在計算機中負數存儲的是補碼,則該負數的原碼是10101110,該值就是十進制的-46。
l 注意問題
強制類型轉換通常都會存儲精度的損失,所以使用時需要謹慎。

Ⅱ java中什麼是顯示調用和隱式調用

當我們在調用類的構造器來創建對象的時候,首先要調用的是父類的非靜態的初始化塊,接著會調用構造器,但是父類的構造器可能有多個,也就是重載,當調用完父類的非靜態初始化塊之後,將會調用的是當前類的非靜態初始化塊然後是自身的構造函數,調用父類的構造函數就有兩種調用的方式,一個是顯示調用,另一個是隱式調用,下面通過代碼來說一下這兩者間的區別。

class Person {
public Person (){}
public Person (String name){
system.out.println(name);
}
}
class Student extends Person {
public Student{
super ("hello world");
}
public Student{
this();
}
public Student{
}
}

了解了這段代碼的輸出情況,你也就是了解了顯示調用和隱式調用,這里出現的關鍵字super,super調用用於顯示調用父類的構造器,this則用來顯示調用本類中的另一個重載的構造器,這兩種構造器只能在構造器中使用,而且出現在構造函數的第一行代碼中,因此構造器中兩種關鍵字只能用其中一個,而且每個只能調用一次。

Ⅲ java中 顯式和隱式的操作具體是怎麼回事 什麼叫做顯式,什麼叫做隱式

什麼顯式隱式操作,你是說變數類型的顯式和隱式轉換吧
顯式轉換:就是要你自己明確寫出來,比如說把人轉化為男人
隱式轉換:就是不需要你自己明確標明,Java虛擬機默認就可以轉的,比如要把男人轉化為人

Ⅳ java 的+=的隱式轉換

從左到右轉都是隱式轉換的,虛擬機自動幫你辦到,反過來就是強制轉型,但是會有丟失精度的可能。

Ⅳ 關於java中的隱式調用問題

這是因為System.out.println這個方法可以列印出任何對象或者數據類型的關系

他可以列印出8種基本類型和對象,基本類型就不說了,如果他發現參數為對象的話,會自動調用該對象的toString()方法進行列印,這也就是所謂的隱士調用了。

你的R1,R2是對象,所以他會選擇該對象中的toString()方法,然後列印,toString()是由Object類派生的,所以任何對象都擁有這個方法

Ⅵ 在JAVA中什麼是隱式對象

http://..com/question/88628930.html?fr=qrl&cid=870&index=1&fr2=query

Ⅶ java里隱式繼承說的是什麼

java中的繼承,子類可以從父類繼承所有的屬性和方法,無論訪問修飾符是private或是其他,都會被子類繼承,但是因為訪問修飾符的限制,導致在子類中無法直接訪問到繼承過來的private屬性和方法

Ⅷ java的類初始化,隱式,顯示,什麼意思

1.Java對象何時被初始化

Java對象在其被創建時初始化,在Java代碼中,有兩種行為可以引起對象的創建。其中比較直觀的一種,也就是通常所說的顯式對象創建,就是通過new關鍵字來調用一個類的構造函數,通過構造函數來創建一個對象,這種方式在java規范中被稱為「由執行類實例創建表達式而引起的對象創建」。
當然,除了顯式地創建對象,以下的幾種行為也會引起對象的創建,但是並不是通過new關鍵字來完成的,因此被稱作隱式對象創建,他們分別是:

● 載入一個包含String字面量的類或者介面會引起一個新的String對象被創建,除非包含相同字面量的String對象已經存在與虛擬機內了(JVM會在內存中會為所有碰到String字面量維護一份列表,程序中使用的相同字面量都會指向同一個String對象)


●自動裝箱機制可能會引起一個原子類型的包裝類對象被創建;

●String連接符也可能會引起新的String或者StringBuilder對象被創建,同時還可能引起原子類型的包裝對象被創建,比如(本人試了下,在mac ox下1.6.0_29版本的javac,對待下面的代碼會通過StringBuilder來完成字元串的連接,並沒有將i包裝成Integer,因為StringBuilder的append方法有一個重載,其方法參數是int);


2.Java如何初始化對象

當一個對象被創建之後,虛擬機會為其分配內存,主要用來存放對象的實例變數及其從超類繼承過來的實例變數(即使這些從超類繼承過來的實例變數有可能被隱藏也會被分配空間)。在為這些實例變數分配內存的同時,這些實例變數也會被賦予默認值。

上面的代碼中,Foo和Bar中都定義了變數i,在main方法中,我們用Foo引用一個Bar對象,如果實例變數與方法一樣,允許被覆蓋,那麼列印的結果應該是1,但是實際的結果確是0。
但是如果我們在Bar的方法中直接使用i,那麼用的會是Bar對象自己定義的實例變數i,這就是隱藏,Bar對象中的i把Foo對象中的i給隱藏了,這條規則對於靜態變數同樣適用。

在內存分配完成之後,java的虛擬機就會開始對新創建的對象執行初始化操作,因為java規范要求在一個對象的引用可見之前需要對其進行初始化。在Java中,三種執行對象初始化的結構,分別是實例初始化器、實例變數初始化器以及構造函數。

http://www..com/s?wd=52014085078

Ⅸ java中隱式參數的含義是什麼

要知道隱式參數,就要先知道顯式參數,顯式參數很容易理解,就是方法中明確定義的參數。
那麼隱式參數就是未在方法是定義的,但的確又動態影響到程序運行的「參數」。一類就是this引用。
比如
int s=0;
compute(int i){
s+=i;

}
雖然調用該方法時只傳遞了參數i,但實際執行的是this.s+=i。這個this就是隱式的了。其他還有對象引用、類等,道理是一樣的,就不再贅述了。

Ⅹ java中的九大隱式對象

application---所有用戶和整個伺服器都可訪問
session---當前用戶登錄有效
request---一次請求有效,通常在2個JSP中有效
pageContext---當前用戶一個JSP頁面有效
response 響應請求
out 輸出內容
page 相當於JAVA中的this
config 初始化的配置文件(web.xml)訪問對象
exception JSP中的異常處理

熱點內容
安卓的系統在哪個文件里 發布:2025-01-09 06:06:10 瀏覽:818
室內光源如何配置 發布:2025-01-09 06:01:21 瀏覽:428
怎麼加密伺服器上的文檔 發布:2025-01-09 05:56:22 瀏覽:467
安卓80跟90哪個好用 發布:2025-01-09 05:55:28 瀏覽:333
原力文件夾 發布:2025-01-09 05:51:44 瀏覽:127
php寫入文本 發布:2025-01-09 05:45:00 瀏覽:879
考研編程作品 發布:2025-01-09 05:35:00 瀏覽:332
安卓相冊哪個好看 發布:2025-01-09 05:16:01 瀏覽:983
java分析數據 發布:2025-01-09 05:16:00 瀏覽:853
視頻md5加密 發布:2025-01-09 05:08:59 瀏覽:927