Java中的条件编译问题

beyond702 2013-08-23 04:57:45
在网上看到Java中也有种类似C语言条件编译的方法,如下:

class test {
final boolean DEBUG=false;

void fuc() {
if(DEBUG)
{
System.out.println(“Hello,World”);
}
}

}

有一点我不明白的是编译以后fuc这个函数是不是也不会被编译?还是fuc这个函数还有,但是里面是空的?
多谢!
...全文
205 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
beyond702 2013-08-28
  • 打赏
  • 举报
回复
引用 5 楼 valenon 的回复:
[quote=引用 4 楼 beyond702 的回复:] [quote=引用 2 楼 valenon 的回复:] 有fuc函数,里面是空的。 使用jdk的bin目录下的javap命令查看class文件: javap -verbose <class文件名> 如: javap -verbose Test 如果方法fuc被编译了,可看到,可以用一个有条件编译的class和一个没有条件编译的class对比着看,就看出不同了。 如果了解class文件结构,还可以直接使用二进制文件查看器去观察class文件。
多谢~~ 我实际上是想实现类似于C/C++中的编译优化,能够把整个func都优化掉,这样的话在DEBUG为false时,运行的时候连函数调用栈都不用建,java中有这种机制吗?[/quote]这个是没有的,java中空函数也是要加载到虚拟机的,不然别处调用这个方法找不到,运行时就会抛错误。[/quote] 非常感谢!!
beyond702 2013-08-26
  • 打赏
  • 举报
回复
引用 2 楼 valenon 的回复:
有fuc函数,里面是空的。 使用jdk的bin目录下的javap命令查看class文件: javap -verbose <class文件名> 如: javap -verbose Test 如果方法fuc被编译了,可看到,可以用一个有条件编译的class和一个没有条件编译的class对比着看,就看出不同了。 如果了解class文件结构,还可以直接使用二进制文件查看器去观察class文件。
多谢~~ 我实际上是想实现类似于C/C++中的编译优化,能够把整个func都优化掉,这样的话在DEBUG为false时,运行的时候连函数调用栈都不用建,java中有这种机制吗?
valenon 2013-08-26
  • 打赏
  • 举报
回复
引用 4 楼 beyond702 的回复:
[quote=引用 2 楼 valenon 的回复:] 有fuc函数,里面是空的。 使用jdk的bin目录下的javap命令查看class文件: javap -verbose <class文件名> 如: javap -verbose Test 如果方法fuc被编译了,可看到,可以用一个有条件编译的class和一个没有条件编译的class对比着看,就看出不同了。 如果了解class文件结构,还可以直接使用二进制文件查看器去观察class文件。
多谢~~ 我实际上是想实现类似于C/C++中的编译优化,能够把整个func都优化掉,这样的话在DEBUG为false时,运行的时候连函数调用栈都不用建,java中有这种机制吗?[/quote]这个是没有的,java中空函数也是要加载到虚拟机的,不然别处调用这个方法找不到,运行时就会抛错误。
valenon 2013-08-24
  • 打赏
  • 举报
回复
还有最简单的方法,拿个反编译器看看就知道了。
valenon 2013-08-24
  • 打赏
  • 举报
回复
有fuc函数,里面是空的。 使用jdk的bin目录下的javap命令查看class文件: javap -verbose <class文件名> 如: javap -verbose Test 如果方法fuc被编译了,可看到,可以用一个有条件编译的class和一个没有条件编译的class对比着看,就看出不同了。 如果了解class文件结构,还可以直接使用二进制文件查看器去观察class文件。
beyond702 2013-08-23
  • 打赏
  • 举报
回复
坐等~~~~~

50,523

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧