『壹』 java 為什麼要有裝箱和拆箱

1、封裝(Encapsulation)是面向對象方法的重要原則,就是把對象的屬性和操作(或服務)結合為一個獨立的整體,並盡可能隱藏對象的內部實現細節。
封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的介面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。封裝是一種信息隱藏技術,在java中通過關鍵字private,protected和public實現封裝。什麼是封裝?封裝把對象的所有組成部分組合在一起,封裝定義程序如何引用對象的數據,封裝實際上使用方法將類的數據隱藏起來,控制用戶對類的修改和訪問數據的程度。 適當的封裝可以讓程式碼更容易理解和維護,也加強了程式碼的安全性。

『貳』 java包裝類怎樣理解裝箱與拆箱又怎樣理解請通俗的解釋一下,舉個例子也行

Java有一個類型系統有兩個部分組成,包含基本類型(byte、char、int、short、long、float、double、boolean)和引用類型。而基本類型則對應著各自的引用類型,稱為裝箱的基本類型。而引用類型對應著各自的基本類型,稱為拆箱的基本類型。對應的類型為:(Byte、Character、Integer、Short、Long、Float、Double、Boolean)
下面一具體例子來說明裝箱與拆箱
//java 1.5之前創建一個Integer對象Integer i = new Integer(10);//java 1.5之後有了裝箱的特性,直接用下列方式生成一個Integer對象//在這個過程中會將int 類型的10自動裝箱成為Integer類型Integer i = 10;//拆箱 輸出的值為20,這個過程中,會先將Integer類型的j自動拆箱為基本類型的10,最後完成運算Integer j = new Integer(10);int k = 10;
System.out.print(j+k);

『叄』 java 什麼是拆箱和裝箱,拆箱和裝箱 嘛用啊

裝箱就是把基礎類型封裝成一個類。比如把int封裝成Integer,這時你就不能把他當成一個數了,而是一個類了,對他的操作就需要用它的方法了。拆箱就是把類轉換成基礎類型。比如你算個加法什麼的是不能用類的,就得把它轉換成基本類型,jdk5以後已經可以自動轉換了貌似。基本類型你應該懂的吧,就那八種

『肆』 java 為什麼要有裝箱和拆箱

把一個基本類型包裝成一個類,一個是可以使這個類型具有很多可以調用的方法。二個是Java向面像對象語言的靠近。其實Java還不算是很純的面向對象的語言。真正的面向對象,是沒有基本數據類型的。它只有一種類型,就是對象。三個是在泛型中,基本類型是不可以做泛型參數的。如:List <int> list = new ArrayList<int> ();這是不合法的。你只能這個樣寫List<Integer> list = new ArrayList<Integer> ();也就是要用int型的包裝類類型來解決基本類型不可以做泛型參數的問題 。
一名話,包裝類有更多的方法和用途, 而這是基本類型沒有的!!!

『伍』 關於java的裝箱和拆箱的問題

裝箱就是把抄基礎類型封裝成一襲個類。比如把int封裝成Integer,這時你就不能把他當成一個數了,而是一個類了,對他的操作就需要用它的方法了。拆箱就是把類轉換成基礎類型。比如你算個加法什麼的是不能用類的,就得把它轉換成基本類型,jdk5以後已經可以自動轉換了貌似。基本類型你應該懂的吧,就那八種

『陸』 java中自動拆箱和自動裝箱的使用

網路文庫:
http://wenku..com/view/debd606aaf1ffc4ffe47ac83.html

『柒』 java初學,關於拆箱

盡管i1和i2封裝的數值相同,但i1和i2是不同的兩個對象,因此i1!=i2。
如果要比較數值應當這樣
if (i1.intValue() != i2.intValue())
System.out.println("N");

自動裝箱拆箱是java 1.5的新特性。當使用重載的=運算符直接將整數賦給Interger對象時,如果這個整數小於128,此時裝箱後的對象會放在VM的緩存中,當第二次賦值的數和這個緩存中的數相等時,此時不會新開辟空間,而是直接講緩存中對象的指針返回。即:
Integer i1=100; // i1被創建,存在VM的緩存中
Integer i2=100; // i2的數字與緩存中的數字一樣,直接返回緩存中對象的指針,既i2 = i1
因此,這樣賦值以後,i1和i2指向同一對象,進而if(i1 == i2)就是true

『捌』 java中的自動裝箱與自動拆箱是什麼意思

java 基本類中 四類八種,int long 等等,
java 包裝類型 也是八種 Integer Long 等等;
這些基本都知道,

實例化一個對象,
Test test = new Test(參數);
而包裝類,可以這么寫:
Integer a = 100; 這是自動裝箱;
int b =a ; 這是自動拆箱

『玖』 java為何不能自動裝箱和自動拆箱問題代碼如下,求解釋。

jdk5以上才支持autoboxing,應該是你的jdk版本不夠吧。
eclipse里,project->properties,搜jdk,看看compiler那裡的jdk版本,調整至1.5以上

『拾』 什麼是java中的自動裝箱和自動拆箱

java自動裝箱和拆箱
基本數據類型,如int,float,double,boolean,char,byte,不具備對象的特徵,不能調用方法。
裝箱:將基本類型轉換成包裝類對象
int i=10;
Integer x=new Integer(i);手動裝箱
Integer y=10;自動裝箱
拆箱:將包裝類對象轉換成基本類型的值
Integer j=new Integer(8);
int m=j.intValue();//手動拆箱
int n=j;//自動拆箱
java為什麼要引入自動裝箱和拆箱的功能?又是怎麼實現的呢?
主要是用於java集合中,List<Inteter> list=new ArrayList<Integer>();
list集合如果要放整數的話,只能放對象,不能放基本類型,因此需要將整數自動裝箱成對象。
實現原理:javac編譯器的語法糖
public class Main {
public static void main(String[] args) {
Integer i1 = 100;
Integer i2 = 100;
Integer i3 = 200;
Integer i4 = 200;
System.out.println(i1==i2);
System.out.println(i3==i4);
}
}
//結果為:true false
在通過Integer.valueOf()方法創建Integer對象的時候,如果數值在[-128,127]之間,便返回指向IntegerCache.cache中已經存在的對象的引用(位於堆對象池中);否則創建一個新的Integer對象(創建在java堆中)。上面的代碼中i1和i2的數值為100,因此會直接從cache中取已經存在的對象,所以i1和i2指向的是同一個對象,而i3和i4則是分別指向不同的對象。
public class Main {
public static void main(String[] args) {
Double i1 = 100.0;
Double i2 = 100.0;
Double i3 = 200.0;
Double i4 = 200.0;
System.out.println(i1==i2);
System.out.println(i3==i4);
}
}
//結果為:false false
為什麼Double類的valueOf方法會採用與Integer類的valueOf方法不同的實現呢?很簡單:在某個范圍內的整型數值的個數是有限的,而浮點數卻不是。
public class Main {
public static void main(String[] args) {
Boolean i1 = false;
Boolean i2 = false;
Boolean i3 = true;
Boolean i4 = true;
System.out.println(i1==i2);
System.out.println(i3==i4);
}
}
//結果為:true true
至於為什麼是這個結果,同樣地,看了Boolean類的源碼也會一目瞭然。下面是Boolean的valueOf方法的具體實現:
public static Boolean valueOf(boolean b) {
return (b ? TRUE : FALSE);
}
public class H {
public static void main(String[] args) {
Integer m=10;
int n=10;
System.out.println(m==n);
}
}
//結果為:true