JNI开发探索之旅
jni开发探索之旅由于工作上的需求需要使用java和c++互调实现功能,所以要对jni进行深入研究,故此入坑。对安卓也比较感兴趣,大学里还做过几个APP,现在已经很久没有写界面布局这方面的了… JNI是什么JNI全程Java Native Interface,意为Java本地调用,它允许Java代码和其他语言写的代码进行交互,简单的说,一种在Java虚拟机控制下执行代码的标准机制。 可以用它实现java和c语言互调。对于初学者来讲,很容易吧jni和ndk的概念搞混淆(当然也可能只有博主一个人o(╯□╰)o),那jni和ndk的区别到底是什么? NDK是什么Android NDK(Native Development Kit )是一套工具集合,允许你用像C/C++语言那样实现应用程序的一部分。 简单的说,NDK其实多了一个把.so和.apk打包的工具,而JNI开发并没有打包,只是把.so文件放到文件系统的特定位置。可以将NDK看做是Google提供的一个打包工具,方便开发者使用,有了这个工具,我们只需要关注代码的具体实现,而不需要关注如何编译动态链接库。 上手之前先看看j...
J2SE基础
1.九种基本数据类型的大小java提供了一组基本数据类型,包括:boolean,byte,char,short,int,long,float,double(注:事实上应该是八种基本数据类型,String类并不属于基本类型。) 同时,java也为其提供了相应的封装类: Boolean,Byte,Character,Short,Integer,Long,Float,Double. 其中boolean比较特别,在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,每个元素boolean元素占8位”。这样我们可以得出boolean类型占了单独使用是4个字节,在数组中又是1个字节。为什么要这么做?在java中使用基本类型来存储语言支持的基本数据类型,这里没有采用对象,而是使用了传统的面向过程语言所采用的基本类在型,主要是从性能方面来考虑的:因为即使最简单的数学计算,使用对象来处理也会引起一些开销,而这些开销对于数学计算本来...





