1. 程式人生 > >JAVA中四種常見建立物件方法

JAVA中四種常見建立物件方法

一、使用new關鍵字

這是我們最常見的也是最簡單的建立物件的方式,通過這種方式我們還可以呼叫任意的夠贊函式(無參的和有參的)。

比如:Student student = new Student();

二、呼叫物件的clone的方法

無論何時我們呼叫一個物件的clone方法,JVM就會建立一個新的物件,將前面的物件的內容全部拷貝進去,用clone方法建立物件並不會呼叫任何建構函式。要使用clone方法,我們必須先實現Cloneable介面並實現其定義的clone方法。

如:Student stu2 = <Student>stu.clone();

三、運用反射手段

我們可以使用Class類的newInstance方法建立物件,這個newInstance方法呼叫無參的構造器建立物件。

如:Student student2 = (Student)Class.forName("根路徑.Student").newInstance();
或:Student stu = Student.class.newInstance();

我們也可以使用Constructor類的newInstance方法。此方法和Class類的newInstance方法很像,java.lang.relect.Constructor類裡也有一個newInstance方法可以建立物件。我們可以通過這個newInstance方法呼叫有引數的和私有的建構函式。

如:Constructor<Student> constructor = Student.class.getInstance();
   Student stu = constructor.newInstance();

這兩種newInstance的方法就是大家所說的反射,事實上Class的newInstance方法內部呼叫Constructor的newInstance方法。這也是眾多框架Spring、Hibernate、Struts等使用後者的原因。

四、運用反序列化

當我們序列化和反序列化一個物件,JVM會給我們建立一個單獨的物件,在反序列化時,JVM建立物件並不會呼叫任何建構函式。為了反序列化一個物件,我們需要讓我們的類實現Serializable介面。

如:ObjectInputStream in = new ObjectInputStream (new FileInputStream("data.obj"));
   Student stu3 = (Student)in.readObject();

相關推薦

JAVA常見建立物件方法

一、使用new關鍵字 這是我們最常見的也是最簡單的建立物件的方式,通過這種方式我們還可以呼叫任意的夠贊函式(無參的和有參的)。 比如:Student student = new Student(); 二、呼叫物件的clone的方法 無論何時我們呼叫一

Java常見的單例模式以及各自優缺點總結

餓漢式實現:餓漢式單例模式程式碼中,static變數會在類裝載時初始化,此時也不會涉及多個執行緒物件訪問該物件的問題。虛擬機器保證只會裝載一次該類,肯定不會發生併發訪問的問題。因此,可以省略synchronized關鍵字。問題:如果只是載入本類,而不是呼叫getInstan

Java8常見的排序方法

思想 vat 左右 排好序 完全二叉樹 load linu 歸並 pack 排序方法的演示1)插入排序(直接插入排序、希爾排序)2)交換排序(冒泡排序、快速排序)3)選擇排序(直接選擇排序、堆排序)4)歸並排序5)分配排序(基數排序)所需輔助空間最多:歸並排序所需輔助空間最

java的內部類建立物件方法

public class A { public class B { public void hxy() { System.out.println("hxy"); } } public sta

java 常見記憶體溢位錯誤的處理方法

相信有一定Java開發經驗的人或多或少都會遇到OutOfMemoryError的問題,這個問題曾困擾了我很長時間,隨著解決各類問題經驗的積累以及對問題根源的探索,終於有了一個比較深入的認識。 在解決java記憶體溢位問題之前,需要對jvm(java虛擬機器)的

java許可權修飾符,靜態程式碼塊,構造程式碼塊,構造方法執行順序。

一、java中類有四種許可權 1、要想僅能在本類中訪問使用private修飾。 2、要想本包中的類都可以訪問不加修飾符即可。 3、要想本包中的類與其他包中的子類可以訪問使用protected修飾。(不在同一包中時,只能在子類裡面可以呼叫,其他測試類建物件都不行,只給不同包中的子

java常見記憶體溢位錯誤的處理方法

相信有一定java開發經驗的人或多或少都會遇到OutOfMemoryError的問題,這個問題曾困擾了我很長時間,隨著解決各類問題經驗的積累以及對問題根源的探索,終於有了一個比較深入的認識。 在解決java記憶體溢位問題之前,需要對jvm(java虛擬機器

java訪問修飾符

pub oid 默認 成員變量 修飾 對象 fault 其中 () Java中的四種訪問修飾符:public、protected、default(無修飾符,默認)、private。 四種修飾符可修飾的成分(類、方法、成員變量) public protect

Java引用的區分

isn 賦值 public medium 是否 comm 回調 ant container 強引用(StrongReference) 強引用就是指在程序代碼之中普遍存在的,比如下面這段代碼中的object和str都是強引用: 1 2 Object obje

java訪問修飾符區別及詳解全過程

HP dnv ax1 pci gda fmm utc dos rdp 客戶端程序員:即在其應用中使用數據類型的類消費者,他的目標是收集各種用來實現快速應用開發的類。   類創建者:即創建新數據類型的程序員,目標是構建類。     訪問控制存在的原因:a、讓客戶端程序員無法觸

java修飾符(private、default、protected、public)的訪問權限

ble ted span java 修飾符 20px col family style 權限如下: no. 範圍 private default protected public 1 同一包下的同一個類 √ √ √ √ 2 同一包下的不同類 × √ √ √

Java常見的NPE問題

avi oar 返回 對象 [] 報錯 不能 alt public 1、Map下的NPE 直接上代碼: public class User { private Integer id; private String name;

基礎 | Java引用的區別

在JDK 1.2以前,Java中的引用定義為:如果引用型別的資料中儲存的數值代表的是另一塊記憶體的起始地址,則這塊記憶體即代表著一個引用。故在該定義下,一個Java物件僅有被應用和未被引用兩種狀態。 在JDK 1.2之後,Java對引用的概念進行了擴充,將引用分為強引用、軟引用

java轉換時間的方法

將String ->util date - > sql date 在學過mvc後,可以新建一個工具類,把轉換程式碼寫到util包中 public class DateUtil { private static SimpleDateFormat sdf = new Sim

JavaScript呼叫函式的方法

理解函式的四種呼叫方式對理解this有很大的幫助 1.函式呼叫 即直接呼叫,比如fn(),this指向函式當時的context,在瀏覽器中是window,在node中是global 2.方法呼叫 比如Obj.fn() this指向Obj. 如a.b.c.d.f()那t

JAVA操作xml方式的比較

. 介紹 1)DOM(JAXP Crimson解析器) DOM是用與平臺和語 言無關的方式表示XML文件的官方W3C標準。DOM是以層次結構組織的節點或資訊片斷的集合。這個層次結構允許開發人員在樹中尋找 特定資訊。分析該結構通常需要載入整個文件和構造層次結構,然後才能做任何工作。由於它是基於資訊層次

java常見的排序演算法實現

在Java中得資料結構比較 | 資料機構 | 優點| 缺點 | |陣列 | 插入快,在直到下標得情況下可快速地存取| 查詢慢,刪除慢,大小固定 | |有序陣列 | 比無序得陣列查詢快|刪除和插入慢,大小固定 | |棧 | 提供後進先出方式的存取| 存取其他項很

java引用型別

 今天看程式碼,裡面有一個類java.lang.ref.SoftReference把小弟弄神了,試想一下,接觸java已經有3年了哇,連lang包下面的類都不瞭解,怎麼混。後來在網上查資料,感覺收穫頗多,現記錄如下。        物件的強、軟、弱和虛引用在JDK 1.2以

Java引用強 軟 弱 虛 的詳細介紹及理解

 Java中強軟弱虛四種引用 一:引用的目的: 在Java中垃圾回收器的執行是JVM操作的,但是我們仍然可以在一定程度上與垃圾回收器進行互動,其目的在於更好的幫助垃圾回收器管理好應用的記憶體,避免記憶

Java引用(強、軟、弱、虛)

1. 強引用(StrongReference)  強引用是使用最普遍的引用。如果一個物件具有強引用,那垃圾回收器絕不會回收它。當記憶體空間不足,Java虛擬機器寧願丟擲OutOfMemoryError錯誤,使程式異常終止,也不會靠隨意回收具有強引用的物件來解決記憶體不足的問題。 2. 軟引用(SoftR