`
hm4123660
  • 浏览: 282866 次
  • 性别: Icon_minigender_1
  • 来自: 广州
博客专栏
Dea4ce76-f328-3ab2-b24a-fb268e1eeb75
数据结构
浏览量:70117
社区版块
存档分类
最新评论
文章列表
              使用jni来操作java中的数组对象。java数组分为基本类型数组和对象数组。在jni中可以使用GetArrayLength(jarray array)来获取这两组数组的长度。     1.基本类型数组 jni提供两个重要函数来处理java数组 (1) Get<Type>ArrayElements(<Type>Array arr , jboolean* isCopide); 这 类函数可以把Java基本类型的数组转换到C/C++中的数组,有两种处理方式,一种是拷贝一份传回本地代码,另一个是把指向Java数组的指针直接传 回到本地 ...
//jstring to char* char* jstringTostring(JNIEnv* env, jstring jstr) {        char* rtn = NULL; jclass clsstring = env->FindClass("java/lang/String"); jstring strencode = env->NewStringUTF("utf-8"); jmethodID mid = env->GetMethodID(clsstring, "getBytes", "( ...
            在本地方法实现代码中创建java对象,其中还主要涉及到jni和java之间中文字符串的的乱码问题。   1.创建java对象 首先在java端自定义一个Person类如下 package com.example; public class Person { public String name; public int age; public Person() { } public Person(String name,int age) { this.name=name; this.age= ...
              之前实现了简单的jni入门实例, 这篇博客将主要介绍使用jni在c++调用java的属性和方法。   本地方法函数有两个参数,JNIEnv *和jobject,这两个参数非常重要   1.JNI数据类型 为了方便记忆和书写java数据类型与c++数据类型的对应,jni对数据进行封装。具体为下   2.获取java属性和方法      首先需要获取对应的java的类,jni专门定义了jclass类型来表示java的Class类,JNIEvn类中有几个函数取得jclass:       1.jclass FindClass(const char * ...
         JNI是Java Native Interface的缩写,译为Java本地接口。它允许Java代码和其他语言编写的代码进行交互。可以再java中调用C/C++的代码。本文使用一个简单的示例演示JNI的使用。   我的Eclipse的工作目录为:D:\workspace   Eclipse的项目结构:     1.在java类中声明一个native方法,运行在bin下生产class文件   package com.example; public class jni_test { public native void sayHello();/ ...
           在Java中,每个class都有一个相应的Class对象。也就是说,当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象,用于表示这个类的类型信息。Class类是反射的根源。   1.获取Class对象 得到Class类对象有三种方式 1.使用Object类中的getClass()方法 2.类.class 3.通过Class类的forName方法   自定义Person类 public class Person{ public String name; public int age; p ...
          java API为我们网络通信提供了服务器套接字ServerSocket类和客户端套接字Socket,Socket是网络驱动层提供给应用程序编程的接口和一种机制。 下面提供具体实现例子   服务端--ServerSocket      ServerSocket类实现了 ...
         程序本身是一个静态的概念,而进程是程序的一次执行过程,每一个进程都有自己的地址空间。线程实际上是在进程的基础之上的进一步划分。一个进程至少对应一个线程,线程之间共享一个内存空间,线程之间可以相互切换,并发执行。   一.线程的实现       java中实现线程有两种方式: 1.继承Thread类 2.实现Runnable接口(这种方式用得比较多)   继承Thread类实现代码:   public class Test { public static void main(String[] args){ myThread thread=n ...
       Map使用键值对来存储数据,将键映射到值对象,一个映射不能包含重复的键,每一个键最多只能映射到一个值。Map接口的具体实现类:HashMap,Hashtable,TreeMap,LinkedHashMap   1)HashMap     基于哈希表(哈希表学习地址)的Map接口实现。允许使用null值和null键,不保证映射的顺序,特别是不保证顺序恒久不变。它除了非同步和允许使用null外,与Hashtable大致相同。   HashMap实现原理:   1.HashMap默认数组大小为16,加载因子为0.75,当数组使用量达到数组长度*加载因子时,需要进行扩充。 ...
     java的集合分为三大接口,分别是Collection,Map,Iterator,集合接口和类在java.util包中,此次主要介绍三大接口之一的Collection接口。      一些Collection允许有重复元素,而另一些则不允许,一些Collection是有序的,另一些则是无序的。Collection不提供接口的任何直接实现,它提供更加具体的子接口List和Set。   1.List接口      List是有序的集合,此接口的用户队列表的每一个元素的插入位置进行精确的控制,可以根据元素的整数索引访问元素,并搜索列表中的元素。      List接口实现类主要 ...
     IO流即输入输出流,流是一组有顺序的,有起点和终点的字节结合,是对数据传输的总称。即数据在两设备间的传输称为流,流的本质是数据传输。      按照数据流的方向可分为:输入流和输出流      按照处理数据单位不同可以分为:字节流和字符流。      给出相应的IO结构图:     最近课程较忙,趁周末把学习一端时间的IO流整理汇总一下。拿出来给大家分享,也是对自己学习的总结。如有错误,望提醒纠正。   1.IO流之FileInputStream和FileOutputStream   2.IO流之FileWirter和FileReader   3.IO流之缓 ...
         DataOutputStream数据输出流允许应用程序以适当方式将java基本数据类型写入输入流中,然后,应用程序可以使用DataInputStream数据输入流将数据读入。   1.DataOutputStream数据输出流 可以以java基本数据类型写入输出流中, 示例代码: public static void main(String[] args) throws IOException{ OutputStream out=new FileOutputStream("L:\\test.txt"); //缓冲流 Buff ...
 1.字节数组流       字 节数组输出流ByteArrayOutputStream实现了一个输出流,其中的数据被写入一个byte数组,缓冲区会随着数据的不断写入而自动增长。 关闭ByteArrayOutputStream流无效,此类中的方法在关闭该流后还可以使用,而不会产生任何IOException,数据存放在内存。       字节数组输出流ByteArrayInputStream实现了一个输入流,ByteArrayInputStream包含一个缓冲区,该缓冲区包含从流 中读取的字节,内部计数器跟踪read方法要读取的下一个字节。关闭ByteArrayInputStream流后, ...
        Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会 比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能 ...
      打印流主要用于输出,可以根据类型很方便的进行输出。打印流分为两种   字节打印流:PrintStream 字符打印流:PrintWriter     下面来看看打印流的使用。   1.字节打印流:PrintStream 示例代码: public class Test { ...
Global site tag (gtag.js) - Google Analytics