轉自http://www.importnew.com/1486.html
爲了保證WORA,JVM使用Java字節碼這種介於Java和機器語言之間的中間語言。字節碼是部署Java代碼的最小單位。
在解釋Java字節碼之前,我們先通過實例來簡單瞭解它。這個案例是一個在開發環境出現的真實案例的總結。
現象
一個一直運行正常的應用突然無法運行了。在類庫被更新之後,返回下面的錯誤
Exception in thread "main" java.lang.NoSuchMethodError: com.nhn.user.UserAdmin.addUser(Ljava/lang/String;)V
at com.nhn.service.UserService.add(UserService.java:14)
at com.nhn.service.UserService.main(UserService.java:19)
應用的代碼如下,而且它沒有被改動過。
// UserService.java
…
public void add(String userName) {
admin.addUser(userName);
}
更新後的類庫的源代碼和原始的代碼如下。
// UserAdmin.java - Updated library source code
…
public User addUser(String userName) {
User user = new User(userName);
User prevUser = userMap.put(userName, user);
return prevUser;
}
// UserAdmin.java - Original library source code
…
public void addUser(String userName) {
User user = new User(userName);
userMap.put(userName, user);
}
沒有整理完