java Native Method初涉
一. 什么是Native Method
简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
"A native method is a Java method whose implementation is provided by non-java code."
在定义一个native method时,并不提供实现体(有些像定义一个java interface),因为其实现体是由非java语言在外面实现的。,下面给了一个示例:
public class IHaveNatives
{
native public void Native1( int x ) ;
native static public long Native2() ;
native synchronized private float Native3( Object o ) ;
native void Native4( int[] ary ) throws Exception ;
}
这些方法的声明描述了一些非java代码在这些java代码里看起来像什么样子(view).
标识符native可以与所有其它的java标识符连用,但是abstract除外。这是合理的,因为native暗示这些方法是有实现体的,只不过这些实现体是非java的,但是abstract却显然的指明这些方法无实现体。native与其它java标识符连用时,其意义同非Native Method并无差别,比如native static表明这个方法可以在不产生类的实例时直接调用,这非常方便,比如当你想用一个native method去调用一个C的类库时。上面的第三个方法用到了native synchronized,JVM在进入这个方法的实现体之前会执行同步锁机制(就像java的多线程。)
一个native method方法可以返回任何java类型,包括非基本类型,而且同样可以进行异常控制。这些方法的实现体可以制一个异常并且将其抛出,这一点与java的方法非常相似。当一个native method接收到一些非基本类型时如Object或一个整型数组时,这个方法可以访问这非些基本型的内部,但是这将使这个native方法依赖于你所访问的java类的实现。有一点要牢牢记住:我们可以在一个native method的本地实现中访问所有的java特性,但是这要依赖于你所访问的
相关文档:
解决栈和堆内存溢出办法要设置环境内存变量:
1、在运行界面(cmd进入)中运行命令:java -Xms256m -Xmx1024m,维护上下限内存参数,最大内存不能错过系统内存的1/4,最小内存不能小于最大内存的1/4
2、在Tommcat /bin路径下,如果是安装版需要service.bat文件,此文件在解压缩版里。
3、 在运行界面(cmd进入)中
......
一个java文件中,有且只有一个public类
float ff= 1.3f;(4B)
int 4B;
long 8B;
double 8B;
byte 一字节整型
char 2B
数组
int num[] = new int[3];
int[] num;
num = new int[3];
int [] num = new int[]{1,2,3};
int [][] num;
num = new int[3][4];
//不同长
num = new int[3][];
num[0] = new int[5]; ......
树是一个递归的数据结构,一棵树上的所有节点都可以被看成是一棵树,只不过除根节点外其他节点都比总树的规模小点而已。树的节点有三种:根节点(没有父亲节点),叶子节点(没有孩子节点),一般节点(既有父亲节点,也有孩子节点)。具体对结构的分析,几乎所有写数据结构的书中都有提到。
这棵树的实现花了好几天时间, ......
Alan Kay曾经总结了Smalltalk的五项特征,这些特征是Java所依赖的基础之一,当然这些特征也代表了的面向对象的编程的方法。
&n ......