大家好,今天小编关注到一个比较有意思的话题,就是关于java语言动态的问题,于是小编就整理了4个相关介绍Java语言动态的解答,让我们一起看看吧。
j***a调用DLL动态库?
jni 是由J***a调用C/C++的动态链接库 (DLL)。 所以把.class-->.h-->dll ,想法是不正确的, 同时也违背了Jni的初衷。 Dll是由C/C++生成的。 以前的一个项目用到了J***a调用C/C++的DLL,所以对这个还算熟悉。 那个dLL是由C++程序员写的,在Microsoft Visual C++ 6.0编辑器中可以生成。然后由J***a程序员用JNI来调用DLL里面实现的功能(方法)。
什么是静态语言和动态语言?
静态语言是指在编译时变量的数据类型即可确定的语言,多数静态类型语言要求在使用变量之前必须声明数据类型。例如:C++、J***a、Delphi、C#等。
动态语言是在运行时确定数据类型的语言。变量使用之前不需要类型声明,通常变量的类型是被赋值的那个值的类型。例如:python、Ruby、Perl等。现在一般很少这样划分程序语言了
什么是多态?j***a中如何实现多态?
多态分为编译时多态和运行时多态。
1.编译时多态,其实就是方法重载,相同函数名,但签名不相同。值得注意的是签名不包括方法返回值,换句话说,两个方法,函数名和入参都相同,但返回值不同,编译器回报错的。
2.运行时多态,其实就和继承和接口实现相关了,子类可以覆盖父类的非final,非static,非private方法或者实现接口方法。运行时,动态绑定实例到父类或接口的引用,那jvm是怎么知道调用哪个子类的实例的对应方法的呢?这就是你问的问题了——J***a中对象在jvm内部都有描述元数据,对象头,对象头中存储了当前实例的类型信息,调用时jvm就根据这个type能精确找到具体是点用哪个子类的方法了。
Python是动态还是静态?
python是动态语言,实例创建出来之后仍然可以被绑定其他属性,即使类中没有规定。J***a/C#是静态语言,实例创建出来后属性就固定了,有什么属性是类规定好了的,不允许改变。
动态语言和静态语言本质上的区别在于,能否在运行时“绑定”新的属性,而提前声明数据类型个人觉得属于强类型和弱类型的差别,即隐式转化。
到此,以上就是小编对于j***a语言动态的问题就介绍到这了,希望介绍关于j***a语言动态的4点解答对大家有用。