一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - Java的數據類型和參數傳遞(詳解)

Java的數據類型和參數傳遞(詳解)

2020-11-29 13:43Java之家 Java教程

下面小編就為大家帶來一篇Java的數據類型和參數傳遞(詳解)。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Java提供的數據類型主要分為兩大類:基本數據類型和引用數據類型。

Java中的基本數據類型

 

名稱 大小  取值范圍
byte型 (字節) 8bit -128-127 (-2^7到2^7-1)

short型 (短整型)

16bit -2^15到2^15-1
int型 (整形) 32bit -2^31到2^31-1
long型 (長整型) 64bit -2^63到2^63-1
float型 (單精度浮點型) 32bit  
double型 (雙精度浮點型) 64bit  
char型 (字符型) 16bit  
boolean型 (布爾型) true和false 只有兩種結果,要么為“真”要么為“假”

 

 

Java中的引用數據類型:

Java作為面向對象的語言,Java中所有用class,interface,abstract class定義的都屬于Java的引用數據類型。

如何理解Java中的基本數據類型和引用數據類型:

1.Java的基本數據類型是由Java語言本身提供的數據類型,不需要用戶自己定義;

2.Java中的引用數據類型則是由用戶自己定義的,而引用數據類型的定義需要用到基本數據類型;

3.從內存關系上來說:

Java的的內存分為兩大塊:棧內存和堆內存

棧內存負責存儲方法中的基本數據類型變量和對象的引用變量

堆內存負責存儲通過new關鍵字產生的數據,也就是new關鍵字后面的類中的屬性和方法。

Java中基本數據類型存儲在棧內存中,而引用數據類型的類型名存儲在棧內存中,但是引用數據類型的內容則存儲在堆內存中。兩者之間通過地址來連接,實現互相的訪問。

 

Java的數據類型和參數傳遞(詳解)

4.數據由小范圍往大范圍轉換時,JVM會自動幫我們實現類型的轉換。比如:int i=10;long l=i;類似于這樣的數據轉換,Java的虛擬機可以自動幫我們來完成這個工作。但是當數據由大范圍往小范圍轉換時就需要手動的加上強制類型轉換。如果在轉過程中出現數據的溢出則根據小范圍的數據類型的值域進行變動。比如說把整形的-129賦值給byte這時候輸出byte的值就是127;如果把整形的128賦值給byte類型,那么輸出的就應該是-128。

Java中的參數傳遞

基本數據類型:

?
1
2
3
4
5
6
7
8
9
10
public void test1(){
  int i=10;
  long l;
  l=i;
  System.out.println(i);//輸出值10
  System.out.println(l);//輸出值10
  l=i+1;
  System.out.println(i);//輸出值10
  System.out.println(l);//輸出值11
 }

由于基本數據類型是變量名與變量值一同存儲在棧內存中,i 和 l 這兩個變量是互相獨立的,對 l 的賦值操作并不會影響 i 值。

引用數據類型:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
public class Book {
 private String name;
 
 public String getName() {
  return name;
 }
 
 public void setName(String name) {
  this.name = name;
 }
}
public class Test {
 public static void main(String[] args) {
  Book book1=new Book();
  book1.setName("《百年孤獨》");
  Book book2=new Book();
  book2.setName("《圍城》");
  System.out.println("book1:"+book1.getName());//輸出:book1:《百年孤獨》
  System.out.println("book2:"+book2.getName());//輸出:book2:《圍城》
  book1=book2;
  book1.setName("《活著》");
  System.out.println("book1:"+book1.getName());//輸出:book1:《活著》
  System.out.println("book2:"+book2.getName());//book2:《活著》
 
 }
}

Java的數據類型和參數傳遞(詳解)

第一次new了兩個對象分別是book1,book2他們的書名分別是“百年孤獨”和“圍城”。然后通過賦值,book1也指向了與book2一樣的內存區域,這時無論是對book1 還是book2 進行操作影響的都是同一塊內存區域了。這也就是為什么后面的輸出都是一樣的原因了。另外book1原先開辟的內存空間由于沒有使用,JVM的垃圾回收機制會對其進行處理,將這些不用的內存空間進行釋放。

以上這篇Java的數據類型和參數傳遞(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持服務器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品免费看 | 丝袜高跟小说 | 91真人毛片一级在线播放 | 成年女人毛片免费观看97 | 国产成人免费 | h版小说| 国产福利不卡一区二区三区 | 色老板在线视频观看 | 91精品国产色综合久久不卡蜜 | 天堂va在线 | 婷婷色在线播放 | 免费看黄色大片 | 啪哆哆 | 蜜桃视频一区二区三区四区 | 男人的天堂久久精品激情a 男人的天堂va | 欧美亚洲另类在线观看 | 午夜福利理论片在线播放 | 大伊香蕉精品二区视频在线 | 美女脱了内裤让男生玩屁股 | 性绞姿始动作动态图 | 国产成人福利免费观看 | 国产午夜亚洲精品理论片不卡 | 国产爱啪啪| 韩国漂亮美女三级在线观看 | 9久热久爱免费精品视频在线观看 | 四虎影院精品 | 国产一卡2卡3卡四卡精品网 | 亚洲欧美一区二区久久 | 久久99热狠狠色AV蜜臀 | 欧美日韩不卡视频 | 甜蜜惩罚小说 | 亚洲欧美7777 | 国产91素人搭讪系列天堂 | 精品一区二区国语对白 | 国产 日韩 欧美视频二区 | 色综合国产| 无码人妻丰满熟妇啪啪网不卡 | 日朝欧美亚洲精品 | 香蕉久久夜色精品国产尤物 | 色中色导航| 欧美一区欧美二区 |