黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學(xué)習(xí)攻略 Java學(xué)習(xí) Java反射常見經(jīng)典面試題

Java反射常見經(jīng)典面試題

更新時間:2019-07-12 09:52:57 來源:動力節(jié)點 瀏覽8437次

Java反射常見經(jīng)典面試題.jpg


  1.什么是反射?


  反射是在運行狀態(tài)中,對于任意一個類,都能夠知道這個類的所有屬性和方法;對于任意一個對象,都能夠調(diào)用它的任意一個方法和屬性;這種動態(tài)獲取的信息以及動態(tài)調(diào)用對象的方法的功能稱為Java語言的反射機制。


  2.哪里用到反射機制?


  JDBC中,利用反射動態(tài)加載了數(shù)據(jù)庫驅(qū)動程序。


  Web服務(wù)器中利用反射調(diào)用了Sevlet的服務(wù)方法。


  Eclispe等開發(fā)工具利用反射動態(tài)刨析對象的類型與結(jié)構(gòu),動態(tài)提示對象的屬性和方法。


  很多框架都用到反射機制,注入屬性,調(diào)用方法,如Spring。


  3.什么叫對象序列化,什么是反序列化,實現(xiàn)對象序列化需要做哪些工作?


  對象序列化,將對象中的數(shù)據(jù)編碼為字節(jié)序列的過程。


  反序列化;將對象的編碼字節(jié)重新反向解碼為對象的過程。


  JAVA提供了API實現(xiàn)了對象的序列化和反序列化的功能,使用這些API時需要遵守如下約定:


  被序列化的對象類型需要實現(xiàn)序列化接口,此接口是標(biāo)志接口,沒有聲明任何的抽象方法,JAVA編譯器識別這個接口,自動的為這個類添加序列化和反序列化方法。


  為了保持序列化過程的穩(wěn)定,建議在類中添加序列化版本號。


  不想讓字段放在硬盤上就加transient


  以下情況需要使用Java序列化:


  想把的內(nèi)存中的對象狀態(tài)保存到一個文件中或者數(shù)據(jù)庫中時候;


  想用套接字在網(wǎng)絡(luò)上傳送對象的時候;


  想通過RMI(遠程方法調(diào)用)傳輸對象的時候。


  4.反射機制的優(yōu)缺點?


  優(yōu)點:可以動態(tài)執(zhí)行,在運行期間根據(jù)業(yè)務(wù)功能動態(tài)執(zhí)行方法、訪問屬性,最大限度發(fā)揮了java的靈活性。


  缺點:對性能有影響,這類操作總是慢于直接執(zhí)行java代碼。


  5.動態(tài)代理是什么?有哪些應(yīng)用?


  動態(tài)代理是運行時動態(tài)生成代理類。


  動態(tài)代理的應(yīng)用有SpringAOP數(shù)據(jù)查詢、測試框架的后端mock、rpc,Java注解對象獲取等。


  6.怎么實現(xiàn)動態(tài)代理?


  JDK原生動態(tài)代理和cglib動態(tài)代理。


  JDK原生動態(tài)代理是基于接口實現(xiàn)的,而cglib是基于繼承當(dāng)前類的子類實現(xiàn)的。


  7.Java反射機制的作用


  在運行時判斷任意一個對象所屬的類


  在運行時構(gòu)造任意一個類的對象


  在運行時判斷任意一個類所具有的成員變量和方法


  在運行時調(diào)用任意一個對象的方法


  8.如何使用Java的反射?


  通過一個全限類名創(chuàng)建一個對象


  Class.forName(“全限類名”);例如:com.mysql.jdbc.DriverDriver類已經(jīng)被加載到j(luò)vm中,并且完成了類的初始化工作就行了


  類名.class;獲取Class<?>clz對象


  對象.getClass();


  獲取構(gòu)造器對象,通過構(gòu)造器new出一個對象


  Clazz.getConstructor([String.class]);


  Con.newInstance([參數(shù)]);


  通過class對象創(chuàng)建一個實例對象(就相當(dāng)與new類名()無參構(gòu)造器)


  Cls.newInstance();


  通過class對象獲得一個屬性對象


  Fieldc=cls.getFields():獲得某個類的所有的公共(public)的字段,包括父類中的字段。


  Fieldc=cls.getDeclaredFields():獲得某個類的所有聲明的字段,即包括public、private和proteced,但是不包括父類的聲明字段


  通過class對象獲得一個方法對象


  Cls.getMethod(“方法名”,class……parameaType);(只能獲取公共的)


  Cls.getDeclareMethod(“方法名”);(獲取任意修飾的方法,不能執(zhí)行私有)


  M.setAccessible(true);(讓私有的方法可以執(zhí)行)


  讓方法執(zhí)行


  1).Method.invoke(obj實例對象,obj可變參數(shù));-----(是有返回值的)


  


提交申請后,顧問老師會電話與您溝通安排學(xué)習(xí)

免費課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 午夜爱爱毛片xxxx视频免费看 | 天天摸夜夜摸爽爽狠狠婷婷97 | 在线观看国产免费高清不卡 | 黄色在线观看视频免费 | 黄色片一级免费 | 全免费一级毛片在线播放 | 国产午夜视频在线观看第四页 | 99精品国产兔费观看久久99 | 日本国产成人精品视频 | 国产欧美亚洲三区久在线观看 | 五月婷婷视频在线观看 | 性欧美free | 国产高清天干天天美女 | 成人免费观看网欧美片 | 日韩亚洲一区中文字幕在线 | 377p亚洲欧洲日本大胆色噜噜 | 欧美日韩亚洲m码色帝国 | www.久久.com| h片免费看| 日韩欧美精品综合久久 | 欧美xxxxxxxx| 国产一级片网站 | 美女啪啪网站又黄又免费 | h成人在线 | 欧美成人免费xxx大片 | 9久热这里只有精品免费 | 一区二区高清视频在线观看 | 成人免费黄色小视频 | 国产操操 | 国产欧美日韩在线 | 中文字幕精品亚洲无线码二区 | 欧美成人香蕉网在线观看 | 免费观看欧美一区二区三区 | 日韩a毛片免费全部播放完整 | 国产aaaaaa| 亚洲第一第二区 | 亚洲综合久久1区2区3区 | 日本视频网站在线www色 | 国产人人干 | 5566中文字幕亚洲精品 | 一个人看的www片免费中文 |