本文目錄一覽:
怎麼理解java動態綁定
1.綁定概念
通常,我們將一個方法調用同一個方法主體關聯起來稱作綁定。如果在程序執行前進行綁定,我們將這種綁定方法稱作前期綁定。在面向過程語言中,比如c,這種方法是默認的也是唯一的。如果我們在java中採用前期綁定,很有可能編譯器會因為在這龐大的繼承實現體系中去綁定哪個方法而感到迷惑。解決的辦法就是動態綁定,這種後期綁定的方法,在運行的時候根據對象的類型進行綁定。
在java中,動態綁定是默認的行為。但是在類中,普通的方法會採用這種動態綁定的方法,也有一些情況並不會自然的發生動態綁定。
2.final修飾
如果一個屬性被final修飾,則含義是:在初始化之後不能被更改。
如果一個方法被final修飾,含義則是不能被覆蓋。我們常常喜歡從宏觀的角度這樣說,但是我們真正的被final修飾的方法為什麼不能被覆蓋呢?因為final修飾詞其實實際上關閉了動態綁定。在java中被final修飾的內容不能採用動態綁定的方法,不能動態綁定就沒有多態的概念,自然也就不能被覆蓋。
3.“覆蓋”私有方法
其實我們很少把方法設定為私有。如果我們將private方法“覆蓋”掉,其實我們獲得的只是一個新的方法。完全和父類沒關係了。這一點要注意,或許面試的時候會被問到:在子類中“覆蓋”父類私有方法是被允許而不報錯的,只不過完全是兩個沒關係的方法罷了。
Java中幾個名詞解釋 靜態綁定&動態綁定 靜態編譯&動態編譯 前綁定&後綁定
靜態綁定:例如一個變量在聲明的時候,就初始化最初值;
動態綁定:聲明一個變量,在後續用set方法對其動態設置值;
靜態編譯:編譯器在編譯可執行文件的時候,將可執行文件需要調用的對應動態鏈接庫(.so)中的部分提取出來,鏈接到可執行文件中去,使可執行文件在運行的時候不依賴於動態鏈接庫。
動態編譯:某些程式語言在執行時用來增進效能的方法。
前綁定:還未出現即綁定了某些事件
後綁定:出現後才會綁定的某些事件
java程序如何綁定服務器IP?
你把這個方法寫進你的程序,程序開始後先獲取IP,然後判斷IP是否和你的一致,如果不一致直接return;即可.
/**
* 獲取外網IP
* @param request
* @return
*/
public static String getIpAddr(HttpServletRequest request) {
String ipAddress = null;
// ipAddress = this.getRequest().getRemoteAddr();
ipAddress = request.getHeader(“x-forwarded-for”);
if (ipAddress == null || ipAddress.length() == 0
|| “unknown”.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader(“Proxy-Client-IP”);
}
if (ipAddress == null || ipAddress.length() == 0
|| “unknown”.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getHeader(“WL-Proxy-Client-IP”);
}
if (ipAddress == null || ipAddress.length() == 0
|| “unknown”.equalsIgnoreCase(ipAddress)) {
ipAddress = request.getRemoteAddr();
if (ipAddress.equals(“127.0.0.1”)) {
// 根據網卡取本機配置的IP
InetAddress inet = null;
try {
inet = InetAddress.getLocalHost();
} catch (UnknownHostException e) {
e.printStackTrace();
}
ipAddress = inet.getHostAddress();
}
}
// 對於通過多個代理的情況,第一個IP為客戶端真實IP,多個IP按照’,’分割
if (ipAddress != null ipAddress.length() 15) { // “***.***.***.***”.length()
// = 15
if (ipAddress.indexOf(“,”) 0) {
ipAddress = ipAddress.substring(0, ipAddress.indexOf(“,”));
}
}
return ipAddress;
}
————————————————
版權聲明:本文為CSDN博主「秋9」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:
原創文章,作者:BOMA5,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/129339.html