java匿名對象 回收_Java 匿名對象

我們知道一般實例化一個對象的格式,如下:

Car car = new Car();

其中,變量名 car 就是 new Car() 這個對象的名字。car 是引用類型的變量,它的值存放的是對象的引用(或地址),通過 car 這個變量我們就可以間接使用對象。

那所謂 Java 匿名對象,簡單理解就是對象沒有名字嘛。那怎樣的對象會沒有名字呢?如下:

new Car();

那這種匿名對象如何使用呢?所謂使用就是指調用對象的屬性和方法。如下:

new Car().door;

new Car().start();

這兩行代碼有兩個 new 關鍵字,說明實例化了兩個對象,并不是一個哦。

由于這兩個對象沒有名字,所以這兩行代碼執行完以后,我們就無法再使用它們了,然后它們將會被 GC(Java 垃圾回收機制)當作垃圾回收掉。

所以,匿名對象只能被調用一次。

那匿名對象有什么用處呢?沒什么卵用。

唯一有點用處的地方就是,當對象對方法或屬性僅進行一次調用的時候,使用匿名對象可以少寫一些代碼,代碼看起來更簡潔。

//匿名對象調用方法

new Car().start();

//非匿名對象調用方法

Car car = new Car();

car.start();

看到了吧,使用匿名對象只需要一行代碼,而非匿名對象需要兩行代碼。

另外,匿名對象也可以作為參數傳遞給方法

//給汽車添加一個重啟方法

public void restart(Car car) { // 汽車熄火了,需要傳入另一輛汽車幫忙點火重新啟動

//...

}

Car car = new Car();

car.restart(new Car()); //匿名對象作為參數使用

以后看到匿名對象的使用,相信你不會再覺得別扭或奇怪啦。

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

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

相關文章

java int 正則表達式_java正則表達式

Java正則表達式正則表達式定義了字符串的模式。正則表達式可以用來搜索、編輯或處理文本。正則表達式并不僅限于某一種語言,但是在每種語言中有細微的差別。Java正則表達式和Perl的是最為相似的。java.util.regex包主要包括以下三個類:Pattern類&#xf…

mysql.h 動態編譯命令_Linux環境編譯動態庫和靜態庫總結

對Linux環境動態庫和靜態庫的一些基礎知識做一些總結,首先總結靜態庫的編譯步驟。1 先基于.cpp或者.c文件生成對應的.o文件2將幾個.o文件 使用ar -cr命令 生成libname.a文件libname.a 為靜態庫, name 為靜態庫的名字,可以根據模塊功能命名。舉…

netbeans java中文_Ubuntu?下jdk安裝中文字體?java?解決netbeans?方塊字?中文亂碼

安裝環境Ubuntu 11.04、javajdk1.6.0_27首先找到你需要的字體,比如我就是從windows系統里拷出來的,C:\WINDOWS\Fonts這里有很多字體,我只拷貝了simsun.ttc(中文 宋體,從xp系統拷貝的,win7 下沒有這個文件)安裝java后&a…

python 教學_「Python基礎」一次就裝好Python手把手裝到好

一、前言:安裝Python有兩個主要的方法,視情況而定我兩個都會用:(1)安裝 AnacondaAnaconda像一個懶人包,安裝它等于把Python安裝好連同把Python大部分的套件也下載好了,不只如此連通較常用的Python IDE一同幫你裝到好。…

java求二維數組每行的最大值_用JAVA輸入一個二維數組a[3][4]的元素值,求輸出其元素最大值...

展開全部這個簡單啊,把所有元素遍歷一邊62616964757a686964616fe58685e5aeb931333335343963代碼:import java.util.Scanner;public class Help2 {public static void main(String[] args) {Scanner inputnew Scanner(System.in);System.out.print("…

java redis 面試題_Java開發人員怎么面試 常見Redis面試題有哪些

Java開發人員怎么面試?常見Redis面試題有哪些?Redis是目前各大企業都在使用的人們技術,也是企業選拔人才時考核的一個難題。有很多同學只是簡單了解Redis的應用,但對于為什么要用Redis以及企業面試中有關Redis的問題卻答不上來。接…

java方法重載實事例_零基礎java入門教程函數重載function實例化格式案例

java函數的重載,說白了就是函數塊函數名一樣,但函數類型和參數類型和參數列表個數不同重載之和參數列表有關系,與返回值無關java函數重載函數重載鋪墊如下圖函數重載鋪墊上圖功能顯示,功能一致所以功能一致所以用的功能函數名一致…

java 類 屬性數量_跟我學java編程—Java類的屬性與成員變量

在定義類時,經常需要抽象出它的屬性,并定義在類的主體中。下面就來介紹與屬性相關的內容。常量屬性在類中定義的屬性有常量屬性和成員屬性之分。常量屬性用final關鍵字修飾,常量只能賦值一次,在程序中不能修改它的值。一般來說&am…

java獲取界面輸入數字_通過JAVA設計 GUI 界面的計算器程序,用戶可以通過鼠標依次輸入參加計算的數值,進行加、減、乘、...

通過JAVA設計 GUI 界面的計算器程序,用戶可以通過鼠標依次輸入參加計算的數值,進行加、減、乘、2016-08-22 0 0 0 4.0分其他1積分下載如何獲取積分?通過JAVA設計 GUI 界面的計算器程序,用戶可以通過鼠標依次輸入參加計算的數值&am…

java自定義錯誤碼類_如何編寫和應用Java的自定義異常類

11.7.1編寫自定義異常類的模式編寫自定義異常類實際上是繼承一個API標準異常類,用新定義的異常處理信息覆蓋原有信息的過程。常用的編寫自定義異常類的模式如下:public class CustomException extends Exception {//或者繼承任何標準異常類public Custom…

java對mysql查詢_如何利用java對mysql數據庫進行增刪改查

代碼如下:增:Test//數據插入public void demo1() {Connection connnull;Statement stmtnull;try {//注冊驅動Class.forName("com.mysql.jdbc.Driver");//創建連接connDriverManager.getConnection("jdbc:mysql://localhost:3306/name&quo…

util.java_TelnetUtil.java

package com.ailk.ess.webapp2.servermng.net;import java.io.InputStream;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import org.apache.commons.net.telnet.TelnetClient;public class TelnetUtil {//telnet客戶端對象VT220/VT52Telnet…

生活中java繼承例子_簡單繼承例子:java

通用類,來繼承出圓和矩形。package circle;public class Geometric {private String color"white";private boolean filled;private java.util.Date dateCreated;public Geometric(){dateCreatednew java.util.Date();}public Geometric(String color,boo…

java技術簡介英文_Java技術常見的英文縮寫

1、 URL,Uniform Resource Location,統一資源定位符。2、 JDBC,Java DataBase Connectivity,Java數據庫連接。3、 JSP,Java Server Pages,Java服務器頁面。4、 JVM,Java Virtual Machine&#x…

Java解決空引用_Java 匠人手法 - 優雅的處理空值

原標題:Java 匠人手法 - 優雅的處理空值作者:Lrwin導語在筆者幾年的開發經驗中,經常看到項目中存在到處空值判斷的情況,這些判斷,會讓人覺得摸不這頭緒,它的出現很有可能和當前的業務邏輯并沒有關系。但它會…

mysql 嘗試讀取超過流末尾的_MySql異常:嘗試讀取超出流末尾的內容

問題詳細描述:2020-09-04 11:28:19,576 [DefaultQuartzScheduler_Worker-1] DEBUG MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal error encountered during command execution. ---> MySql.Data.MySqlClient.MySqlException (0x80004005): Fatal …

mysql對稱連接什么意思_對稱加密與非對稱加密的區別是什么

區別:1、對稱加密中加密和解密使用的秘鑰是同一個;非對稱加密中采用兩個密鑰,一般使用公鑰進行加密,私鑰進行解密。2、對稱加密解密的速度比較快,非對稱加密和解密花費的時間長、速度相對較慢。3、對稱加密的安全性相對…

php引號變量_下列PHP數據庫insert語句中變量前后的點和雙引號有什么作用?

這就要從雙引號和單引號的作用講起:雙引號里面的字段會經過編譯器解釋然后再當作HTML代碼輸出,但是單引號里面的不需要解釋,直接輸出。例如:$abcI love u;echo $abc //結果是:I love uecho $abc //結果是:$abcecho "$abc&quo…

php excel 設置常規_php實現的操作excel類詳解

本文實例講述了php實現的操作excel類。分享給大家供大家參考,具體如下:class Excel{static $instancenull;private $excelnull;private $workbooknull;private $workbookaddnull;private $worksheetnull;private $worksheetaddnull;private $sheetnum1;p…

php析構函數使用,php析構函數__destruct()使用方法及實例講解

通過上一篇文章《php 構造函數__construct()使用分析》的講解,我們已經知道了什么叫構造方法。那么與構造方法對應的就是析構方法。析構方法允許在銷毀一個類之前執行的一些操作或完成一些功能,比如說關閉文件、釋放結果集等。析構方法是PHP5才引進的新內…