国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
java的debug和release編譯方式
以前沒有注意過,其實java編譯成.class 有兩種方式
使用javac,默認(rèn)使用的release方式,而我們經(jīng)常使用的MyEclipse工具,用的是debug模式。
區(qū)別暫時了解如下:
release模式下對于函數(shù)參數(shù)會改變
Test.java
[java] view plaincopy
public class Test{
private static void sayHello(){
System.out.println("Hello world");
}
public static void main(String[] args){
sayHello();
}
}
分別用javac命令,和MyEclipse IDE編譯上面的Test.java
然后使用jd-gui.exe 查看Test.class
可以發(fā)現(xiàn),使用javac命令產(chǎn)生的Test.class(如下)和用MyEclipse編譯(如下)出來的參數(shù)名上有所區(qū)別
[java] view plaincopy
public class Test
{
private static void sayHello()
{
System.out.println("Hello world");
}
public static void main(String[] args) {
sayHello();
}
}
[java] view plaincopy
public class Test
{
private static void sayHello()
{
System.out.println("Hello world");
}
public static void main(String[] paramArrayOfString) {
sayHello();
}
}
這也可以解釋為什么在spring MVC 中controller的注解初始化參數(shù)建議指定名稱
[html] view plaincopy
@RequestMapping(/test/{str})
public String test(@PathVariable String str){
System.out.println(str);
return null;
}
實際項目部署使用的是release版本,這樣str而非RequestMapping中的{str}這樣就對應(yīng)不起來了。而這樣的問題在開發(fā)中是不會發(fā)現(xiàn)的
Java文件編譯的兩種方式以及在SpringMVC傳參中帶來的問題(轉(zhuǎn))
(2013-08-26 10:26:46)
標(biāo)簽: spring
mvc
debug
release
it
分類: JavaEE
一、基本概念
java編譯成.class 有兩種方式。使用javac,默認(rèn)使用的release方式,而使用的MyEclipse工具,用的是debug模式。值得注意的是使用release模式下對于函數(shù)參數(shù)會改變。
public class Test{
private static void sayHello(){
System.out.println("Hello world");
}
public static void main(String[] args){
sayHello();
}
}
以上代碼分別用javac命令和MyEclipse IDE編譯,然后使用jd-gui.exe查看Test.class,可以發(fā)現(xiàn)區(qū)別。
使用MyEclipse編譯(debug)
public class Test
{
private static void sayHello()
{
System.out.println("Hello world");
}
public static void main(String[] args) {
sayHello();
}
}
使用javac編譯(release)
public class Test
{
private static void sayHello()
{
System.out.println("Hello world");
}
public static void main(String[] paramArrayOfString) {
sayHello();
}
}
二、發(fā)現(xiàn)問題
以SpringMVC為例
@RequestMapping(/test/{str})
public String test(@PathVariable String str){
System.out.println(str);
return null;
}
實際項目部署使用的是release版本,這樣str經(jīng)過編譯后就和RequestMapping中的{str}這樣就對應(yīng)不起來了。而這樣的問題在開發(fā)中是不會發(fā)現(xiàn)的。這也可以解釋為什么在spring MVC 中controller的注解初始化參數(shù)建議指定名稱。建議寫法如下:
@RequestMapping(/test/{str})
public String test(@PathVariable("str") String str){
System.out.println(str);
return null;
}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
閱讀Spring源碼第一步:源碼編譯與創(chuàng)建調(diào)試入口
JNI 開發(fā)流程
java命令行編譯
在程序中實現(xiàn)對java源文件編譯的3種方法
Java中a=a+b 與 a+=b區(qū)別 以及和類型轉(zhuǎn)換的關(guān)系
Redis系列~Java中使用Redis(十六)
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服