1. java中介面直接調用方法
在另一個類中的service的類型是介面service,但構造是用serviceImpl的構造構造函數構造的,你查看下另一個類的代碼,此外,service也可以是由spring構造注入的,看下spring的配置文件或者注釋確認下
2. 在java本地方法調用中,jni.h這個文件起到的作用是什麼它和jniEvn是什麼關系為什麼必須要引入jni.h...
簡單的回答就是需要本地庫函數。
從Java原理來基叢講,你還要看下文:
本地方法調用就是 Java Native Interface(JNI),JNI最終的目的是在Java端調用本地系統的方法,Java之所以跨平台是因為JVM的設計是基於堆棧的,而像C、C++是基於寄存器的,寄存器應該懂吧,每個硬體的寄存器都不相同。JAVA class類運宏瞎行在搏絕櫻JVM中,即在堆棧(邏輯的數據結構)中,這個堆棧的數據結構都一樣,所以就JAVA就有了跨平台。
而有的時候JAVA想直接對計算機硬體操作,即直接對寄存器操作,那麼就需要相應的本地庫,jni.h就是本地庫。這個本地庫內的API都是完全基於寄存器來操作的。
一個字一個字敲的,不知道我說的你明白沒?
如果你明白基於堆棧和寄存器的區別,理解JNI就沒問題了。