Ⅰ 请问在java中调用一个自定义方法,在调用之后才定义,不用先对方法声明吗
JAVA是预编译语言,比如一个函数A,在调用的时候要用到函数B。但是在写代码的时候B函数是按照顺序写在A函数后面的,在JAVA中,可以正常使用函数A。
但是在C语言中,一定要在代码开头声明函数B,再可以在A的后面实现函数B。
否则C语言中若不提前声明函数B,则函数B只能先在A函数之前实现好,再让A函数去调用B。
Ⅱ 能不能把java搞成编译型语言 有没有人设计一种编译器直接把java源码编译为机器指令
1. java已经是编译型语言,因为不编译源程序是没法直接运行的。只不过java是编译成中间的二进制代码,不是最终的机器代码。
2.已经有这种编译器,免费的如gnu的gcj,收费的如Excelsior JET。不过没有太大必要使用,java在运行时也会把中间代码动态优化成本地机器代码,这种优化的结果一般会优于预先编译的结果,因为动态优化可以因地制宜,根据程序运行情况和计算机硬件的状况来动态选择优化策略。
Ⅲ 高分求助:Java自定义脚本语言解释器的设计实现思路
这个你有编译原理基础的话,就在找本编译原理的书看,会想起来怎么做的。这个解析过程并不太难。
如果你没学过编译原理,那就别看了,短时间内掌握不了的。可以参考这个思路:
建立一个替换表:
{”如果“ : "if", "并且" : "&&", "则" : "{", "如果结束" : "}"},可能还有很多别的什么的吧
然后对程序进行替换
替换后为:
C = A + B
if(C > 0 && A > 5){
D=100
if(C > 5 && B > 10){
D=200
}
}
然后进行一些语法补全的操作什么的,争取转换为javascript之类的脚本语言。这样就能执行了
对于变量那个判断,可以对于变量进行遍历,查找全部赋值操作左边的变量,就是被赋值变量了,其他的就是可变的
Ⅳ 如何实现自定义Java编译时注解功能
自定义注解,可以应用到反射中,比如自己写个小框架。
如实现实体类某些属性不自动赋值,或者验证某个对象属性完整性等
本人自己用过的验证属性值完整性:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface IgnoreProperty {
}
然后实体类中:
public class TarResearch implements Serializable{
@IgnoreProperty
private static final long serialVersionUID = 1L;
@IgnoreProperty
private Integer researchId;
@IgnoreProperty
private TarUser userId;
private String version;
private String grade;
....
}
然后action类中
// 验证数据完整性
Class<TarResearch > userClass = TarResearch .class;
Field[] field = userClass.getDeclaredFields();
for (int i = 0; i < field.length; i++) {
if (field[i].getAnnotation(IgnoreProperty.class) != null) {
continue;
}
String fie = field[i].getName().substring(0, 1).toUpperCase()
+ field[i].getName().substring(1);
Method method = userClass.getMethod("get" + fie);
Object obj = method.invoke(u);
if (obj == null) {
sendResponseMsg(response, "数据错误");
return null;
}
}
Ⅳ 如何自定义一种java语法并能正确编译和运行
那这样的语言就不叫Java了,叫你自创的语言。你需要自己实现这种语言的编译器。
Ⅵ java工作原理
Java工作原理
由四方面组成:
(1)Java编程语言
(2)Java类文件格式
(3)Java虚拟机
(4)Java应用程序接口
当编辑并运行一个Java程序时,需要同时涉及到这四种方面。使用文字编辑软件(例如记事本、写字板、UltraEdit等)或集成开发环境(Eclipse、MyEclipse等)在Java源文件中定义不同的类 ,通过调用类(这些类实现了Java API)中的方法来访问资源系统,把源文件编译生成一种二进制中间码,存储在class文件中,然后再通过运行与操作系统平台环境相对应的Java虚拟机来运行class文件,执行编译产生的字节码,调用class文件中实现的方法来满足程序的Java API调用 。
Ⅶ java是编译语言还是解释语言
过来,不要没有手机的语言。
Ⅷ java语言在被设计的时候为什么会加上 编译 这一步
java语言在被设计的时候为什么会加上编译这一步,其实主要的考虑因素是性能,静态语言的执行效率比动态语言要高得多。所以需要编译。
Ⅸ 如何编写简单的java编译器(用java语言),比如说能翻译诸如"public static void main" 的就行。
看看《编译原理》或许对你有帮助。
要编译一门语言,你要知道它的语法 syntax 和语义 semantics,语法是用来检查所谓的“语法错误”,语义是让语句变得有意义,对计算机程序语言来说,就是把它翻译成计算机能执行的指令。
你需要了解最基本的一些概念诸如正则表达式,上下文无关语言,上下文相关语言,等等。
《编译原理》是很通用的基础书籍,里面我记得有介绍了 yacc 的用法,这是 GNU 里的一款编译器的编译器,对应有一个 Java 的 Project 叫 yacc for Java,你可以去 google 找一下。
如果你能写出一个检查语法错误的程序就已经很不错了,你可以考虑改做一个编辑器之类的软件(只需要找错,不需要编译)。如果你真要做编译器,工程量巨大不说,你首先需要对至少两种语言都熟悉,你需要对计算机的指令和它的执行方式有深刻理解,尤其是 Java 这种动态的高级语言,有类啊对象啊什么的,要把它翻译成机器指令实属不易,至今除了 Sun 的 javac 都没有很成功的编译器,那个 GCJ(把 Java 编译成本地代码)的尝试也只成功了一半,以前还被 MingW 包含在工具箱里(和 GCC 什么的一起),但是有很多特性不支持,而且已经很久不更新了,新版本的 MingW 里都没有了。想一个人从零开始设计一款 Java 的编译器,即使是专家都做不到啊。
Ⅹ 编译java程序需要使用什么命令
编译命令是 javac
首先使用记事本编辑一段简单的Java代码