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

歡迎訪問 生活随笔!

生活随笔

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

java

Java中9大内置基本数据类型Class实例和数组的Class实例

發布時間:2023/12/18 java 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java中9大内置基本数据类型Class实例和数组的Class实例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。

1、Java中9大內置幾本數據類型:
對于對象來說,可以直接使用對象.getClass()或者Class.forName(className);、類名.class都可以獲取Class實例.
但是我們的基本數據類型,就沒有類的權限定名,也沒有getClass方法.
問題:那么如何使用Class類來表示基本數據類型的Class實例?
byte,short,int,long,char,float,double,boolean,void關鍵字
上述8種類型和void關鍵字,都有class屬性.
表示int的Class對象: Class clz = int.class;
表示boolean的Class對象: Class clz = boolean.class;
表示void的Class對象:Class clz = void.class;
所有的數據類型都有class屬性,表示都是Class對象.
思考:
int的包裝類是Integer
Integer.class ==?== int.class 相等嗎????
結果是false,說明是兩份字節碼.

Integer 和int是同一種數據類型嗎? 不是

但是在八大基本數據類型的包裝類中都有一個常量:TYPE,
TYPE表示的是該包裝類對應的基本數據類型的Class實例.
如:<pre><code>
Integer.TYPE----->int.class

Integer.TYPE==int.class;//YES

Integer.TYPE == Integer.class;//ERROR</pre></code>
摘自jdk源碼:基本數據類型包裝類TYPE的實現。

/** The {@code Class} instance representing the primitive type* {@code int}.** @since JDK1.1*/ public static final Class<Integer> TYPE = (Class<Integer>) Class.getPrimitiveClass("int");/** Return the Virtual Machine's Class object for the named* primitive type.*/ static native Class getPrimitiveClass(String name);

2、數組類型的Class實例
每個數組屬于被映射為 Class 對象的一個類,所有具有相同元素類型和維數的數組都共享該 Class 對象(摘自JDK原話)。
數組的Class實例:
String[] sArr1 ={"A","C"};
String[] sArr2 = {};
String[][] sArr = {};
int[] sArr = {};
表示數組的Class實例:
String[] sArr1 = {"A","C"};
Class clz = String[].class;//此時clz表示就是一個String類型的一位數組類型

所有具有相同元素類型和維數的數組才共享同一份字節碼(Class對象);
注意:和數組中的元素沒有一點關系.

eg:<pre><code>
public static void main(String[] args) {

String[] s1 = {};String[] s2 = {"A"};String[] s3 = {"A","b"};int[] i ={}; System.out.println(s1.getClass() == s2.getClass());//trueSystem.out.println(s1.getClass() == s3.getClass());//trueSystem.out.println(s2.getClass() == s3.getClass());//trueString[][] s4 = {{"1","2"}};Class zz = s4.getClass();System.out.println(s2.getClass() == zz);//falseClass zz1 = i.getClass();System.out.println(s2.getClass() == zz1);//false }

作者:老勇
鏈接:https://www.jianshu.com/p/58976c8bf1e1
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

?

總結

以上是生活随笔為你收集整理的Java中9大内置基本数据类型Class实例和数组的Class实例的全部內容,希望文章能夠幫你解決所遇到的問題。

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