Java基础之动态编译
2017-09-30 14:49
274 查看
动态编译:运行期间编译.java文件,执行.class文件,JDK6开始已经支持动态编译了。
优点:可以动态编译执行类
缺点:
1. 性能不高
动态编译毕竟需要一个编译过程,与静态编译相比多了一个执行环节,因此在高性能项目中不要使用动态编译。不过,如果是在工具类项目中它则可以很好地发挥其优越性,比如在Eclipse工具中写一个插件,就可以很好地使用动态编译,不用重启即可实现运行、调试功能,非常方便。
2. 需要考虑安全问题
如果你在Web界面上提供了一个功能,允许上传一个Java文件然后运行,那就等于说:“我的机器没有密码,大家都来看我的隐私吧”,这是非常典型的注入漏洞,只要上传一个恶意Java程序就可以让你所有的安全工作毁于一旦。
优点:可以动态编译执行类
缺点:
1. 性能不高
动态编译毕竟需要一个编译过程,与静态编译相比多了一个执行环节,因此在高性能项目中不要使用动态编译。不过,如果是在工具类项目中它则可以很好地发挥其优越性,比如在Eclipse工具中写一个插件,就可以很好地使用动态编译,不用重启即可实现运行、调试功能,非常方便。
2. 需要考虑安全问题
如果你在Web界面上提供了一个功能,允许上传一个Java文件然后运行,那就等于说:“我的机器没有密码,大家都来看我的隐私吧”,这是非常典型的注入漏洞,只要上传一个恶意Java程序就可以让你所有的安全工作毁于一旦。
相关文章推荐
- java语言基础(33)——面向对象(父类中没有无参构造编译报错——无法将类 xxx中的构造器 xxx应用到给定类型 实际参数列表和形式参数列表长度不同)
- java动态编译
- [ java ] java基础动态代理!
- JAVA动态编译简介
- Java动态编译
- Java基础[5]-1-this和super;静态和动态绑定;equals与hashCode和toString
- java基础—配置java环境以及编译简单的java程序
- Java动态编译和运行
- Java基础之反射及动态代理,反射实现工厂模式
- YTU OJ 3134: 动态规划基础题目之数字三角形(Java解题)
- jfinal-coffeescript使用java实现coffeescript的动态编译
- 使用自动生成java文件和自动编译的动态代理模式
- 【Java基础】动态代理实现AOP之控制事务
- Java基础进阶_day18_(类加载器,反射,动态代理)
- java动态绑定、java动态编译
- java基础加强(反射、内省、BeanUtils工具类、类加载器、动态代理)
- Android中的基础-----如何使用JAVA动态的添加并设置组件属性
- JAVA基础之动态代理
- 利用Java动态编译计算数学表达式
- java语言学习之路之基础常识之java语言特点、开发工具、配置环境变量以及编译工具。