知识大全 从思路开始 Java如何实现条件编译
Posted 条件
篇首语:厌伴老儒烹瓠叶,强随举子踏槐花。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 从思路开始 Java如何实现条件编译相关的知识,希望对你有一定的参考价值。
从思路开始 Java如何实现条件编译 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
条件编译绝对是一个好东西 如在C或CPP中 可以通过预处理语句来实现条件编译 代码如下
#IFDEF DEBUG#UNDEF DEBUG#ENDIF#define DEBUG#IFDEF DEBUUG /* code block */#ELSE /* code block */#ENDIF 但是在JAVA中却没有预处理 宏定义这些东西 而有时在一些项目中 我们又需要条件编译 那么 在JAVA中 该如何实现条件编译呢?
我们来看一个例子
编写一个helloworld程序 代码如下
public class Hello public static void main(String[] args) System out println( Hello world! ); 保存为Hello java并编译 得到一个class文件 并且观察到文件大小是 字节 然后我们对这个文件进行反编译 用jd gui 得到代码如下
import java io PrintStream;public class Hello public static void main(String[] paramArrayOfString) System out println( Hello world! ); 得到这个有什么用呢?
现在我们再来对源代码进行修改 修改后的代码如下
public class Hello public static void main(String[] args) if(false) System out println( Hello world! ); 进行编译 这时我们再看它的大小 只有 字节 怎样?想到什么了吧?没错 编译器会对代码进行优化 对于条件永远为false的语句 JAVA编译器将不会对其生成字节码 下面我们再来对该class文件进行反编译 果然代码如下
public class Hello public static void main(String[] paramArrayOfString)
利用JAVA编译的这一优化机制 我们就可以实现JAVA的条件编译了
public class Hello public static void main(String[] args) if(false) System out println( Hello world! ); 定义一个final的变量 然后再在if语句中使用 代码如下
public class Hello public static void main(String[] args) final boolean DEBUG = true; if(DEBUG) System out println( Hello world! ); 当条件编译使用得多时 上面将极不利于代码的修改及维护 这时就可以用一种更为灵活的方法 定义一个静态类 里面专门定义用来控制条件编译的变量 然后再在具体的代码中导入该类 使用这些final变量 代码如下
cha138/Article/program/Java/hx/201311/25823相关参考
先要将JAVA的运行环境安装并且调试好 首先从菜单工具(Tools)>配置用户工具进入用户工具设置 在类别里展开工具树形菜单>用户工具选择组和工具项目中的Group点击面板右边的组
Java相关的编译技术 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 除了Java的编译器和虚拟
JAVA语言安全行研究--Java的反编译 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Jav
Java混淆编译器 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 最近试用了几个Java混淆
谈谈JAVA的反编译 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 作者因最近分析一些JAVA程
知识大全 如何用javac 和java 编译运行整个Java工程
如何用javac和java编译运行整个Java工程 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
研究Java的反编译性 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &nb
使用Ant编译Java工程[4] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!projectget
使用Ant编译Java工程[5] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Pathlike
使用Ant编译Java工程[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 例子 ant