日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java 静态对象数组_Java静态方法和实例方法 java中的数组作为形参传入

發布時間:2024/9/19 java 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java 静态对象数组_Java静态方法和实例方法 java中的数组作为形参传入 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原標題:Java靜態方法和實例方法 java中的數組作為形參傳入

Java靜態方法和實例方法 java中的數組作為形參傳入

Java虛擬機

啟動一個Java程序的時候,會誕生一個虛擬機實例,當程序關閉退出時,該實例會消失。

如果一個機器上運行著三個Java程序,即有三個Java虛擬機實例

Java虛擬機會調用某個初始類的main()方法運行一個Java程序,此方法將會作為程序的初始線程啟動,任何線程都是由主線程啟動的。

守護線程和非守護線程

Java虛擬機有兩種線程,守護線程和非守護線程。

例如垃圾收集任務的線程,屬于守護線程。

Java可以將創建的任何線程定義為守護線程

main為非守護線程,當虛擬機中的所有非守護線程終止的時候,虛擬機實例將會自動退出。

類加載器

用于加載class文件中的類

運行數據區

分為本地方法區,堆,棧,寄存器,本地方法棧

方法區

被稱為靜態區,和堆一樣,會被所有線程共享。方法區會包含靜態的class和static變量

在java虛擬機啟動的時候會被裝載

儲存對象,即new出的實例,會在堆中儲存。

會被所有線程共享,不存放基本類型和對象引用。

對象中會有一個指向方法區的指針,用來把堆中new出的對象和方法區的類和靜態變量連接起來

堆有兩個部分,一個句柄池,一個對象池。

句柄池

句柄池有兩部分,一個指向對象變量的指針

a e = new a()

其中,儲存的是執行對象變量的指針,即指向棧中e的變量的地址

還有一部分是指向方法區中的指針

即指向方法區中類a的指針

對象鎖

虛擬機中每個對象都有一個對象鎖,用于協調多個線程訪問同一個對象時的同步

關于數組

在Java中和js一個樣子

數組即對象,對象即數組

數組是儲存在堆中的

所以,在調用方法的時候傳入數組即傳入了對象,這個時候(由于java中只有一個堆,用來儲存對象)在方法中對數組的操作,即操作了堆中對象的操作。

和棧不同,屬于直接引用了堆中的地址,屬于引用而不是開辟了一塊新的儲存空間。即一個指針,指向其堆中數組的地址

每次啟動一個新線程的時候,Java虛擬機會為其其分配一個棧。

Java虛擬機只執行出棧和壓棧的操作。

某個線程執行的方法稱為該線程的當前方法,當前方法使用的棧幀屬于當前幀。當前方法屬于的類稱為當前類,當前類的常量池稱為當前常量池。

每個線程調用一個Java的方法的時候,會在該線程的Java棧中壓入一個新棧,這個新棧稱為當前幀,這個幀用來儲存一些非靜態變量的內容。

當方法調用完成以后,會彈出幀,銷毀內容

關于方法調用傳入數組和變量的的區別,數組,是一個對象,指向堆中的一塊儲存地址,變量,屬于當前方法幀中的方法棧,調用的時候會直接壓棧,調用完成以后會執行出棧操作。所以傳入變量不會保存,傳入數組會保存更改

Java棧上的數據所有數據是此線程私有的。不能被其他線程共享

堆 會被共享,方法區會被共享

靜態方法和實例方法

靜態方法會在程序運行的時候直接裝載進入方法區。而實例方法會在new的時候以對象的方法裝載進入堆中。

最大的區別在于內存的區別,由于main函數為static靜態方法,會直接在運行的時候裝載進入內存區,實例方法必須new,在堆中創建內存區域。再進行引用。返回搜狐,查看更多

責任編輯:

總結

以上是生活随笔為你收集整理的java 静态对象数组_Java静态方法和实例方法 java中的数组作为形参传入的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。