java枚舉詳解 Java中枚舉怎么遍歷?
Java中枚舉怎么遍歷?我們可以通過(guò)反射, 以及枚舉類的靜態(tài)方法values()來(lái)進(jìn)行遍歷:代碼:enum Rating { UNRATED, G, PG, PG13,
Java中枚舉怎么遍歷?
我們可以通過(guò)反射, 以及枚舉類的靜態(tài)方法values()來(lái)進(jìn)行遍歷:代碼:enum Rating { UNRATED, G, PG, PG13, R, NC17 } public class Test { public static void main(String args[]) { System.out.println("第一種通過(guò)反射") Class clz = Rating.class for (Object obj: clz.getEnumConstants()) { System.out.println(obj) } System.out.println("第二種通過(guò)枚舉靜態(tài)方法values()") for (Rating rate: Rating.values()) { System.out.println(rate) } } }運(yùn)行結(jié)果: 第一種通過(guò)反射 UNRATED G PG PG13 R NC17 第二種通過(guò)枚舉靜態(tài)方法values() UNRATED G PG PG13 R NC17
java的反射到底是有什么用處?怎么用?
Java反射說(shuō)的是在運(yùn)行狀態(tài)中,對(duì)于任何一個(gè)類,我們都能夠知道這個(gè)類有哪些方法和屬性。對(duì)于任何一個(gè)對(duì)象,我們都能夠?qū)λ姆椒ê蛯傩赃M(jìn)行調(diào)用。我們把這種動(dòng)態(tài)獲取對(duì)象信息和調(diào)用對(duì)象方法的功能稱之為反射機(jī)制。
可以不通過(guò)new關(guān)鍵字獲取對(duì)象并且使用類對(duì)象中的成員變量,方法,修飾符等等,在這里舉例獲取類。
第一種:使用Class.forName(String classPath) ClassPath:寫需要反射的類名,一般是以包名.類名。如:Class clazz = Class.forName("com.entity.Example")
第二種:直接使用Class clz = 類名.class
這種情況一般在我們知道有這個(gè)類的時(shí)候去使用。如:Class clz = Example.class
第三種:Class clz = 對(duì)象. getClass()
前提是對(duì)象已經(jīng)被實(shí)例化出來(lái)了 。如:
Example ex = new Example()
Class clz = ex.getClass()
這三種方法都有各自的優(yōu)點(diǎn),一般我們使用第一種比較多,按照自己的實(shí)際需求去使用才是最好的。反射有啥用?有啥應(yīng)用場(chǎng)景?
1.spring框架的ioc是基于java的反射機(jī)制。
2.JDBC 的數(shù)據(jù)庫(kù)的連接注冊(cè)驅(qū)動(dòng),獲取連接也是基于Java反射。
3.Hibernate,Mybatis都有運(yùn)用到反射。
java主要學(xué)習(xí)哪一方面的東西?
主要分為以下幾個(gè)方面:
計(jì)算機(jī)相關(guān)課程的學(xué)習(xí)
這主要包括計(jì)算機(jī)基礎(chǔ)、計(jì)算機(jī)網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)理論、數(shù)據(jù)結(jié)構(gòu)等相關(guān)課程。這些都是大學(xué)計(jì)算機(jī)必修課程,學(xué)好這些基礎(chǔ)課程,再學(xué)Java咱們就是科班出身。
Java的整個(gè)技術(shù)體系
開(kāi)始學(xué)習(xí)Java的時(shí)候,我們都是從基礎(chǔ)開(kāi)始,包括面向?qū)ο筇匦?、基本?shù)據(jù)類型、抽象類、接口、GUI圖形編程(幾乎用不到,了解即可)、IO、網(wǎng)絡(luò)編程等知識(shí)點(diǎn)。學(xué)完這些我們一般要了解一下Html相關(guān)知識(shí),Jsp和Servlet也需要了解一下。這些知識(shí)點(diǎn)掌握以后,就到框架部分。最早我們用SSH(struts spring hibernate),到現(xiàn)在已經(jīng)基本被拋棄了,所以只需要知道有過(guò)這個(gè)框架即可。而現(xiàn)在我們需要掌握的框架是SpringMvc和Springboot,掌握這兩個(gè)框架,基本就可以輕松應(yīng)對(duì)工作了。
中間件技術(shù),高級(jí)工程師晉升之路
在掌握J(rèn)ava體系技術(shù)點(diǎn)以后,我們?cè)诠ぷ髦羞€會(huì)用到很多中間件技術(shù),包括緩存技術(shù)Redis、負(fù)載均衡Nginx、消息隊(duì)列Kafka、Dubbo、Zookeeper等、Mongodb之類的非關(guān)系數(shù)據(jù)庫(kù)、項(xiàng)目構(gòu)建Maven、Gradle等、代碼管理Git、持續(xù)集成Jenkins等。熟練掌握這些技術(shù)點(diǎn),是從初級(jí)工程師到中級(jí)工程師到高級(jí)工程師的必經(jīng)之路。