『壹』 在java中class和Class 的區別
*.class是java編譯後的文件
=======================
java.lang
類 Class<T>
java.lang.Object
java.lang.Class<T>
所有已實現的介面:
Serializable, AnnotatedElement, GenericDeclaration, Type
--------------------------------------------------------------------------------
public final class Class<T>extends Objectimplements Serializable, GenericDeclaration, Type, AnnotatedElementClass 類的實例表示正在運行的 Java 應用程序中的類和介面。枚舉是一種類,注釋是一種介面。每個數組屬於被映射為 Class 對象的一個類,所有具有相同元素類型和維數的數組都共享該 Class 對象。基本的 Java 類型(boolean、byte、char、short、int、long、float 和 double)和關鍵字 void 也表示為 Class 對象。
Class 沒有公共構造方法。Class 對象是在載入類時由 Java 虛擬機以及通過調用類載入器中的 defineClass 方法自動構造的。
以下示例使用 Class 對象來顯示對象的類名:
void printClassName(Object obj) {
System.out.println("The class of " + obj +
" is " + obj.getClass().getName());
}
還可以使用一個類字面值(JLS Section 15.8.2)來獲得命名類型(或 void)的 Class 對象。例如:
System.out.println("The name of class Foo is: "+Foo.class.getName());
『貳』 初學java,弱弱的問一下,類名.class是啥意思
java虛擬機一開始的時候是不載入這個類的所以這個類的一些靜態變數之類的董事是不存在的,只有當你第一次使用這個類的時候虛擬機才會載入這個類。在虛擬機當中存在class這個類,其他的類的的名稱加上.class(即類名.class)是這個類的一個對象。當我們需要使用這個類的時候可以用class的函數通過類名.class來載入這個類或者直接通過使用這個類來讓虛擬機載入你的類.
『叄』 介紹一下Java中的Class類有哪些
Class類無構造方法,獲取伏困Class類的實例有三種方法。
(1) 利用對肆局象調用getClass()方法獲取該對象的Class實例。缺雹念
(2) 使用Class類的靜態方法forName(),用類的名字獲取一個Class實例:forName()方法定義如下:
public static Class forName(String name, boolean initialize, ClassLoader loader) throws ClassNotFoundException
(3) 運用 .class 的方式來獲取Class實例,對於基本數據類型的封裝類,還可以採用 .TYPE 來獲取相應的基本數據類型的Class實例。
『肆』 JAVA 類名.class是什麼意思
ConfMgr.class是獲取ConfMgr的class對象,類型類指的是代表一個類型的類,因為一切皆是對象,幾種獲取class對象的方法:
1,所有的引用數據類型(類-類型)的類名、基本數據類型都可以通過.class方式獲取其 Class對象。
對於基本數據類型的封裝類還可以通過.TYPE 的方式獲取其 Class 對象,但要注意。TYPE 實際上獲取的封裝類對應的基本類型的 Class 對象的引用。
那麼你可以判斷出int.class==Integer.TYPE 返回 true,int.class==Integer.class 返回 false!通過這種方式不會初始化靜態域,使用.class、.TYPE 的方式獲取 Class對象叫做類的字面常量;
2,Class 的 forName(String name)傳入一個類的完整類路徑也可以獲得 Class 對象。
由於使用的是字元串,必須強制轉換才可以獲取泛型的Class<T>的 Class對象,並且必須獲取這個方法可能拋出的ClassNotFoundException異常。這種方法可以初始化靜態域。
3,還可通過類的對象實例下的getClass()方法來獲取Class對象,即 實例名getClass()
(4)java中的class類擴展閱讀
在一個面向對象的系統中,類(class)是數據和操作數據的方法的集合。數據和方法一起描述對象(object)的狀態和行為。
每一對象是其狀態和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。
當編輯並運行一個Java程序時,需要同時涉及到這四種方面。使用文字編輯軟體(例如記事本、寫字板、UltraEdit等)或集成開發環境(Eclipse、MyEclipse等)在Java源文件中定義不同的類。
通過調用類(這些類實現了Java API)中的方法來訪問資源系統,把源文件編譯生成一種二進制中間碼,存儲在class文件中。
通過運行與操作系統平台環境相對應的Java虛擬機來運行class文件,執行編譯產生的位元組碼,調用class文件中實現的方法來滿足程序的Java API調用 。
『伍』 JAVA中class是什麼意思
java中把生啟做成Class對象和實例對象弄混了,更何況生成Class對象和生成instance都有多種方式。所以只有弄清其中的原理,才可以深入理解。首先要生成Class對象,然後再生成Instance。
Class對象的生成方式如下:
1.Class.forName("類名字元串") (注意:類名字元叢旁雹串必須是全稱,包名+類名)
2.類名.class
3.實滲帆例對象.getClass()
當我們編寫一個新的JAVA類時,JVM就會幫我們編譯成class對象,存放在同名的.class文件中。在運行時,當需要生成這個類的對象,JVM就會檢查此類是否已經裝載內存中。若是沒有裝載,則把.class文件裝入到內存中。若是裝載,則根據class文件生成實例對象。
但願能幫到你
『陸』 java class
java class是什麼,讓我們一起了解一下?
CLASS是在網路工程中的一種協議,在java中有兩種對象:實例對象和Class對象。每個類運行時的類型信息就是用Class對象表示的,它包含了與類有關的信息,其實實例對象就是通過Class對象來創建的。
那我們如何獲得Class對象?
1、Class.forName(「類的全限定名」)
2、實例對象.getClass()
3、類名.class (類字面常量)
實戰操作:如何獲得一個實例的類型類?
Object類中包含一個方法名叫getClass,利用這個方法就可以獲得一個實例的類型類。類型類指的是代表一個類型的類,因為一切皆是對象,類型也不例外,在Java使用類耐滑型類來表示一個類型,所有的類型類都是Class類的實例。getClass()會看到返回Class 。
JDK中,普通的Class.newInstance()方法的定義返回Object,要將該返回類型強制轉換為另一種類型,但是使用泛型的Class ,Class.newInstance()方法具有一個特定的返回類型。
代碼如下: public class Main2 { public static void main(String[] args) throws InstantiationException, IllegalAccessException { System.out.println("1-----------"); Dog dog1 = creatNew1(Dog.class); System.out.println(dog1.name + " is " + dog1.type+ "\n"); System.out.println("2-----------"); Animal ani1 = creatNew2(Cat.class); Cat cat1 = (Cat) ani1; System.out.println(cat1.name + " is " + cat1.type + "\n"); System.out.println("3-----------"); Object obj = creatNew3(Dog.class); Dog dog2 = (Dog) obj; System.out.println(dog1.name + " is " + dog2.type + "\n"); System.out.println("4-----------"); Object obj2 = creatNew4(Cat.class); Cat cat2 = (Cat) obj2; System.out.println(cat2.name + " is " + cat2.type + "\n"); System.out.println("5-----------"); Object obj3 = creatNew5(new Cat()); Cat cat3 = (Cat) obj3; 蔽畝碼 System.out.println(cat3.name + " is 宏哪" + cat3.type + "\n"); } /** * 此方法是一個非泛型類中的泛型方法,參數為Class 類型,可以傳入任何類,但是Class 將參數在函數內部的類型固定為 T類,使用clazz.newInstance(),返回的類型也為固定的 T 類型。 * 如: 傳入Dog.class, 函數中的 T 固定為Dog.class,函數返回的是Dog類型,不需要強制轉換為Dog類型 * (當然,函數返回類型也可以是Object類型,但是沒必要) */ public static T creatNew1(Class clazz) throws IllegalAccessException, InstantiationException { System.out.println(clazz);//列印具體傳入的類型。 return clazz.newInstance(); } /** * 此方法參數是Class ,只能傳入Animal及其子類的類型,函數返回類型只能聲明為Animal或Object類型, * 如:傳入Cat.class,函數返回一個Animal的子類對象,需將此子類對象強制轉換為具體的子類(即Cat類)。 */ public static Animal creatNew2(Class clazz) throws IllegalAccessException, InstantiationException { System.out.println(clazz);//列印具體傳入的類型。 return clazz.newInstance(); } /** * 此方法參數是Class,可傳入任何類,其返回只能聲明為Object類對象。 * 如:傳入Dog.class, 返回的是Object類型的對象,需強制轉換為Dog類型的對象。 */ public static Object creatNew3(Class clazz) throws IllegalAccessException, InstantiationException { System.out.println(clazz);//列印具體傳入的類型。 return clazz.newInstance(); } /** * 傳入參數Class 和 上一個方法傳入 Class 的區別還不是很清楚,其返回只能聲明為Object類對象。 * 如:Cat.class, 返回的是Object類型的對象,需強制轉換為Cat類型的對象。 */ public static Object creatNew4(Class clazz) throws IllegalAccessException, InstantiationException { System.out.println(clazz);//列印具體傳入的類型。 return clazz.newInstance(); } /** * 傳入Object類型的對象,返回也聲明為Object類型。 */ public static Object creatNew5(Object object) { System.out.println(object.getClass());//列印具體傳入的類型。 return object; } } abstract class Animal { public String type = "type = animal "; } class Dog extends Animal { public String name = "name = gou"; } class Cat extends Animal { public String name = "name = mao"; } /** * 這些方法,傳的參數聲明不同,其返回的聲明也必然要隨之不同。 */
『柒』 java中class是什麼意思
class 是類斗爛搜的聲明。
就像你聲明一歷帶個變數一個用的int,string 等空歷等
聲明一個類 用class
『捌』 java 語言Class類的作用,怎麼使用
java中創建對象時其實不是通過類直接創建的,如果你想要使用Test類,在java中JVM首先載入Test.java文件的位元組碼文件Test.class(也就是編譯後的文件),當JVM(java虛擬機)載入位元組碼文件後,自動為該類創建自己的class對象,在通過class對象創建你以後要創建的對象\x0d\x0a例如:Test t1=new Test(); Test t2=new Test(); 我們都知道java中 == 是比較兩個對象的內存地址,t1.getClass()==t2.getClass();返回是true,證明他們是一個class對象創建出來的。那麼可Class對滑爛吵象的意義就是標志一個類了,Class類為我們提供了很多方法,比如反射技術常用到的Class.forName("包.類");這樣可以獲取一個類的Class對象。\x0d\x0a例如:Test類在org.abc這個包里,那麼可以用Class.forName("org.abc.Test");這樣就返回一個Test類的class對象,拿到這個對象接下來可以做很多事,調用這個信侍類的方法,屬性,構造方法等,具體你去研究下反射技術。如果有不懂在問我。\x0d\x0a針對一種數據類型的Class轉換,比如String.class,int.class,類.class等\x0d\x0a你提出的問題Class參數,就是讓你傳一種Class對象進去。比如String.class,int.class,類.class等\x0d\x0aTest.class==t1.getClass();返回true,怕你有誤解,說明一下類和對象都可以獲取class對象的。並且這歷橋個對象是一個對象,因為一個類對應自己的class對象。
『玖』 java中Class是什麼
java
class就是一般類文件,main
class就是你程序main方法所在的類文件,就是程序的入口,程序從這里開始運行,可能會調用到其它的class文件