/*
* jni.h
* Java Native Interface.
*
* Copyright (c) 1996, 1997
* Transvirtual Technologies, Inc. All rights reserved.
*
* See the file "license.terms" for information on usage and redistribution
* of this file.
*/ #ifndef __jni_h
#define __jni_h #include <stdio.h>
#include <stdarg.h>
#include "jtypes.h"
#include "jmalloc.h" #define JNIEXPORT
#define JNICALL struct JNIEnv_;
struct JNINativeInterface;
struct JavaVM_;
struct JNINativeMethod_;
struct JavaVMAttachArgs;
struct JavaVMInitArgs;
typedef const struct JNINativeInterface* JNIEnv;
typedef const struct JNIInvokeInterface* JavaVM;
typedef struct JNINativeMethod_ JNINativeMethod;
typedef struct JavaVMAttachArgs ThreadAttachArgs;
typedef struct JavaVMInitArgs JavaVMInitArgs; typedef void* jmethodID;
typedef void* jfieldID; #define JNI_TRUE 1
#define JNI_FALSE 0 #define JNI_COMMIT 1
#define JNI_ABORT 2 struct JNINativeInterface { void* reserved0;
void* reserved1;
void* reserved2;
void* reserved3;
jint (*GetVersion) (JNIEnv*);
jclass (*DefineClass) (JNIEnv*, jobject, const jbyte*, jsize);
jclass (*FindClass) (JNIEnv*, const char*);
void* reserved4;
void* reserved5;
void* reserved6;
jclass (*GetSuperClass) (JNIEnv*, jclass);
jbool (*IsAssignableFrom) (JNIEnv*, jclass, jclass);
void* reserved7;
jint (*Throw) (JNIEnv*, jobject);
jint (*ThrowNew) (JNIEnv*, jclass, const char*);
jthrowable (*ExceptionOccurred) (JNIEnv*);
void (*ExceptionDescribe) (JNIEnv*);
void (*ExceptionClear) (JNIEnv*);
void (*FatalError) (JNIEnv*, const char*);
void* reserved8;
void* reserved9;
jref (*NewGlobalRef) (JNIEnv*, jref);
void (*DeleteGlobalRef) (JNIEnv*, jref);
void (*DeleteLocalRef) (JNIEnv*, jref);
jbool (*IsSameObject) (JNIEnv*, jobject, jobject);
void* reserved10;
void* reserved11;
jobject (*AllocObject) (JNIEnv*, jclass);
jobject (*NewObject) (JNIEnv*, jclass, jmethodID, ...);
jobject (*NewObjectV) (JNIEnv*, jclass, jmethodID, va_list);
jobject (*NewObjectA) (JNIEnv*, jclass, jmethodID, jvalue*);
jclass (*GetObjectClass) (JNIEnv*, jobject);
jbool (*IsInstanceOf) (JNIEnv*, jobject, jclass);
jmethodID (*GetMethodID) (JNIEnv*, jclass, const char*, const char*);
jobject (*CallObjectMethod) (JNIEnv*, jobject, jmethodID, ...);
jobject (*CallObjectMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jobject (*CallObjectMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jbool (*CallBooleanMethod) (JNIEnv*, jobject, jmethodID, ...);
jbool (*CallBooleanMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jbool (*CallBooleanMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jbyte (*CallByteMethod) (JNIEnv*, jobject, jmethodID, ...);
jbyte (*CallByteMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jbyte (*CallByteMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jchar (*CallCharMethod) (JNIEnv*, jobject, jmethodID, ...);
jchar (*CallCharMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jchar (*CallCharMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jshort (*CallShortMethod) (JNIEnv*, jobject, jmethodID, ...);
jshort (*CallShortMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jshort (*CallShortMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jint (*CallIntMethod) (JNIEnv*, jobject, jmethodID, ...);
jint (*CallIntMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jint (*CallIntMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jlong (*CallLongMethod) (JNIEnv*, jobject, jmethodID, ...);
jlong (*CallLongMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jlong (*CallLongMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jfloat (*CallFloatMethod) (JNIEnv*, jobject, jmethodID, ...);
jfloat (*CallFloatMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jfloat (*CallFloatMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jdouble (*CallDoubleMethod) (JNIEnv*, jobject, jmethodID, ...);
jdouble (*CallDoubleMethodV) (JNIEnv*, jobject, jmethodID, va_list);
jdouble (*CallDoubleMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
void (*CallVoidMethod) (JNIEnv*, jobject, jmethodID, ...);
void (*CallVoidMethodV) (JNIEnv*, jobject, jmethodID, va_list);
void (*CallVoidMethodA) (JNIEnv*, jobject, jmethodID, jvalue*);
jobject (*CallNonvirtualObjectMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jobject (*CallNonvirtualObjectMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jobject (*CallNonvirtualObjectMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jbool (*CallNonvirtualBooleanMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jbool (*CallNonvirtualBooleanMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jbool (*CallNonvirtualBooleanMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jbyte (*CallNonvirtualByteMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jbyte (*CallNonvirtualByteMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jbyte (*CallNonvirtualByteMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jchar (*CallNonvirtualCharMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jchar (*CallNonvirtualCharMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jchar (*CallNonvirtualCharMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jshort (*CallNonvirtualShortMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jshort (*CallNonvirtualShortMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jshort (*CallNonvirtualShortMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jint (*CallNonvirtualIntMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jint (*CallNonvirtualIntMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jint (*CallNonvirtualIntMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jlong (*CallNonvirtualLongMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jlong (*CallNonvirtualLongMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jlong (*CallNonvirtualLongMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jfloat (*CallNonvirtualFloatMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jfloat (*CallNonvirtualFloatMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jfloat (*CallNonvirtualFloatMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jdouble (*CallNonvirtualDoubleMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
jdouble (*CallNonvirtualDoubleMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
jdouble (*CallNonvirtualDoubleMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
void (*CallNonvirtualVoidMethod) (JNIEnv*, jobject, jclass, jmethodID, ...);
void (*CallNonvirtualVoidMethodV) (JNIEnv*, jobject, jclass, jmethodID, va_list);
void (*CallNonvirtualVoidMethodA) (JNIEnv*, jobject, jclass, jmethodID, jvalue*);
jfieldID (*GetFieldID) (JNIEnv*, jclass, const char*, const char*);
jobject (*GetObjectField) (JNIEnv*, jobject, jfieldID);
jbool (*GetBooleanField) (JNIEnv*, jobject, jfieldID);
jbyte (*GetByteField) (JNIEnv*, jobject, jfieldID);
jchar (*GetCharField) (JNIEnv*, jobject, jfieldID);
jshort (*GetShortField) (JNIEnv*, jobject, jfieldID);
jint (*GetIntField) (JNIEnv*, jobject, jfieldID);
jlong (*GetLongField) (JNIEnv*, jobject, jfieldID);
jfloat (*GetFloatField) (JNIEnv*, jobject, jfieldID);
jdouble (*GetDoubleField) (JNIEnv*, jobject, jfieldID);
void (*SetObjectField) (JNIEnv*, jobject, jfieldID, jobject);
void (*SetBooleanField) (JNIEnv*, jobject, jfieldID, jbool);
void (*SetByteField) (JNIEnv*, jobject, jfieldID, jbyte);
void (*SetCharField) (JNIEnv*, jobject, jfieldID, jchar);
void (*SetShortField) (JNIEnv*, jobject, jfieldID, jshort);
void (*SetIntField) (JNIEnv*, jobject, jfieldID, jint);
void (*SetLongField) (JNIEnv*, jobject, jfieldID, jlong);
void (*SetFloatField) (JNIEnv*, jobject, jfieldID, jfloat);
void (*SetDoubleField) (JNIEnv*, jobject, jfieldID, jdouble);
jmethodID (*GetStaticMethodID) (JNIEnv*, jclass, const char*, const char*);
jobject (*CallStaticObjectMethod) (JNIEnv*, jclass, jmethodID, ...);
jobject (*CallStaticObjectMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jobject (*CallStaticObjectMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jbool (*CallStaticBooleanMethod) (JNIEnv*, jclass, jmethodID, ...);
jbool (*CallStaticBooleanMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jbool (*CallStaticBooleanMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jbyte (*CallStaticByteMethod) (JNIEnv*, jclass, jmethodID, ...);
jbyte (*CallStaticByteMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jbyte (*CallStaticByteMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jchar (*CallStaticCharMethod) (JNIEnv*, jclass, jmethodID, ...);
jchar (*CallStaticCharMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jchar (*CallStaticCharMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jshort (*CallStaticShortMethod) (JNIEnv*, jclass, jmethodID, ...);
jshort (*CallStaticShortMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jshort (*CallStaticShortMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jint (*CallStaticIntMethod) (JNIEnv*, jclass, jmethodID, ...);
jint (*CallStaticIntMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jint (*CallStaticIntMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jlong (*CallStaticLongMethod) (JNIEnv*, jclass, jmethodID, ...);
jlong (*CallStaticLongMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jlong (*CallStaticLongMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jfloat (*CallStaticFloatMethod) (JNIEnv*, jclass, jmethodID, ...);
jfloat (*CallStaticFloatMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jfloat (*CallStaticFloatMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jdouble (*CallStaticDoubleMethod) (JNIEnv*, jclass, jmethodID, ...);
jdouble (*CallStaticDoubleMethodV) (JNIEnv*, jclass, jmethodID, va_list);
jdouble (*CallStaticDoubleMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
void (*CallStaticVoidMethod) (JNIEnv*, jclass, jmethodID, ...);
void (*CallStaticVoidMethodV) (JNIEnv*, jclass, jmethodID, va_list);
void (*CallStaticVoidMethodA) (JNIEnv*, jclass, jmethodID, jvalue*);
jfieldID (*GetStaticFieldID) (JNIEnv*, jclass, const char*, const char*);
jobject (*GetStaticObjectField) (JNIEnv*, jclass, jfieldID);
jbool (*GetStaticBooleanField) (JNIEnv*, jclass, jfieldID);
jbyte (*GetStaticByteField) (JNIEnv*, jclass, jfieldID);
jchar (*GetStaticCharField) (JNIEnv*, jclass, jfieldID);
jshort (*GetStaticShortField) (JNIEnv*, jclass, jfieldID);
jint (*GetStaticIntField) (JNIEnv*, jclass, jfieldID);
jlong (*GetStaticLongField) (JNIEnv*, jclass, jfieldID);
jfloat (*GetStaticFloatField) (JNIEnv*, jclass, jfieldID);
jdouble (*GetStaticDoubleField) (JNIEnv*, jclass, jfieldID);
void (*SetStaticObjectField) (JNIEnv*, jclass, jfieldID, jobject);
void (*SetStaticBooleanField) (JNIEnv*, jclass, jfieldID, jbool);
void (*SetStaticByteField) (JNIEnv*, jclass, jfieldID, jbyte);
void (*SetStaticCharField) (JNIEnv*, jclass, jfieldID, jchar);
void (*SetStaticShortField) (JNIEnv*, jclass, jfieldID, jshort);
void (*SetStaticIntField) (JNIEnv*, jclass, jfieldID, jint);
void (*SetStaticLongField) (JNIEnv*, jclass, jfieldID, jlong);
void (*SetStaticFloatField) (JNIEnv*, jclass, jfieldID, jfloat);
void (*SetStaticDoubleField) (JNIEnv*, jclass, jfieldID, jdouble);
jstring (*NewString) (JNIEnv*, const jchar*, jsize);
jsize (*GetStringLength) (JNIEnv*, jstring);
const jchar* (*GetStringChars) (JNIEnv*, jstring, jboolean*);
void (*ReleaseStringChars) (JNIEnv*, jstring, const jchar*);
jstring (*NewStringUTF) (JNIEnv*, const char*);
jsize (*GetStringUTFLength) (JNIEnv*, jstring);
const jbyte* (*GetStringUTFChars) (JNIEnv*, jstring, jbool*);
void (*ReleaseStringUTFChars) (JNIEnv*, jstring, const jbyte*);
jsize (*GetArrayLength) (JNIEnv*, jarray);
jarray (*NewObjectArray) (JNIEnv*, jsize, jclass, jobject);
jobject (*GetObjectArrayElement) (JNIEnv*, jarray, jsize);
void (*SetObjectArrayElement) (JNIEnv*, jarray, jsize, jobject);
jarray (*NewBooleanArray) (JNIEnv*, jsize);
jarray (*NewByteArray) (JNIEnv*, jsize);
jarray (*NewCharArray) (JNIEnv*, jsize);
jarray (*NewShortArray) (JNIEnv*, jsize);
jarray (*NewIntArray) (JNIEnv*, jsize);
jarray (*NewLongArray) (JNIEnv*, jsize);
jarray (*NewFloatArray) (JNIEnv*, jsize);
jarray (*NewDoubleArray) (JNIEnv*, jsize);
jbool* (*GetBooleanArrayElements) (JNIEnv*, jarray, jbool*);
jbyte* (*GetByteArrayElements) (JNIEnv*, jarray, jbool*);
jchar* (*GetCharArrayElements) (JNIEnv*, jarray, jbool*);
jshort* (*GetShortArrayElements) (JNIEnv*, jarray, jbool*);
jint* (*GetIntArrayElements) (JNIEnv*, jarray, jbool*);
jlong* (*GetLongArrayElements) (JNIEnv*, jarray, jbool*);
jfloat* (*GetFloatArrayElements) (JNIEnv*, jarray, jbool*);
jdouble* (*GetDoubleArrayElements) (JNIEnv*, jarray, jbool*);
void (*ReleaseBooleanArrayElements) (JNIEnv*, jarray, jbool*, jint);
void (*ReleaseByteArrayElements) (JNIEnv*, jarray, jbyte*, jint);
void (*ReleaseCharArrayElements) (JNIEnv*, jarray, jchar*, jint);
void (*ReleaseShortArrayElements) (JNIEnv*, jarray, jshort*, jint);
void (*ReleaseIntArrayElements) (JNIEnv*, jarray, jint*, jint);
void (*ReleaseLongArrayElements) (JNIEnv*, jarray, jlong*, jint);
void (*ReleaseFloatArrayElements) (JNIEnv*, jarray, jfloat*, jint);
void (*ReleaseDoubleArrayElements) (JNIEnv*, jarray, jdouble*, jint);
void (*GetBooleanArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbool*);
void (*GetByteArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbyte*);
void (*GetCharArrayRegion) (JNIEnv*, jarray, jsize, jsize, jchar*);
void (*GetShortArrayRegion) (JNIEnv*, jarray, jsize, jsize, jshort*);
void (*GetIntArrayRegion) (JNIEnv*, jarray, jsize, jsize, jint*);
void (*GetLongArrayRegion) (JNIEnv*, jarray, jsize, jsize, jlong*);
void (*GetFloatArrayRegion) (JNIEnv*, jarray, jsize, jsize, jfloat*);
void (*GetDoubleArrayRegion) (JNIEnv*, jarray, jsize, jsize, jdouble*);
void (*SetBooleanArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbool*);
void (*SetByteArrayRegion) (JNIEnv*, jarray, jsize, jsize, jbyte*);
void (*SetCharArrayRegion) (JNIEnv*, jarray, jsize, jsize, jchar*);
void (*SetShortArrayRegion) (JNIEnv*, jarray, jsize, jsize, jshort*);
void (*SetIntArrayRegion) (JNIEnv*, jarray, jsize, jsize, jint*);
void (*SetLongArrayRegion) (JNIEnv*, jarray, jsize, jsize, jlong*);
void (*SetFloatArrayRegion) (JNIEnv*, jarray, jsize, jsize, jfloat*);
void (*SetDoubleArrayRegion) (JNIEnv*, jarray, jsize, jsize, jdouble*);
jint (*RegisterNatives) (JNIEnv*, jclass, const JNINativeMethod*, jint);
jint (*UnregisterNatives) (JNIEnv*, jclass);
jint (*MonitorEnter) (JNIEnv*, jobject);
jint (*MonitorExit) (JNIEnv*, jobject);
jint (*GetJavaVM) (JNIEnv*, JavaVM**); }; struct JavaVMAttachArgs {
void* reserved0;
}; struct JNINativeMethod_ {
char* name;
char* signature;
void* fnPtr;
}; struct JNIInvokeInterface {
void* reserved0;
void* reserved1;
void* reserved2;
jint (*DestroyJavaVM) (JavaVM*);
jint (*AttachCurrentThread) (JavaVM*, JNIEnv**, ThreadAttachArgs*);
jint (*DetachCurrentThread) (JavaVM*);
}; struct JNIEnv_ {
const struct JNINativeInterface* functions;
}; struct JavaVM_ {
const struct JNIInvokeInterface* functions;
}; struct JavaVMInitArgs {
jint version;
char** properties;
jint checkSource;
jint nativeStackSize;
jint javaStackSize;
jint minHeapSize;
jint maxHeapSize;
jint verifyMode;
const char* classpath;
jint (*vfprintf)(FILE*, const char*, va_list);
void (*exit)(jint);
void (*abort)(void);
jint enableClassGC;
jint enableVerboseGC;
jint disableAsyncGC;
jint enableVerboseClassloading;
jint enableVerboseJIT;
jint allocHeapSize;
const char* classhome;
const char* libraryhome;
}; extern JavaVMInitArgs Kaffe_JavaVMArgs[]; #endif

jni.h源码的更多相关文章

  1. IPC之util.h源码解读

    /* SPDX-License-Identifier: GPL-2.0 */ /* * linux/ipc/util.h * Copyright (C) 1999 Christoph Rohland ...

  2. UVW源码漫谈(番外篇)—— Emitter

    这两天天气凉了,苏州这边连续好几天都是淅淅沥沥的下着小雨,今天天气还稍微好点.前两天早上起来突然就感冒了,当天就用了一卷纸,好在年轻扛得住,第二天就跟没事人似的.在这里提醒大家一下,天气凉了,睡凉席的 ...

  3. 从源码角度彻底理解ReentrantLock(重入锁)

    目录 1.前言 2.AbstractQueuedSynchronizer介绍 2.1 AQS是构建同步组件的基础 2.2 AQS的内部结构(ReentrantLock的语境下) 3 非公平模式加锁流程 ...

  4. duilib 使用图片素材或者算法给窗体增加阴影(源码和demo)

    转载请说明原出处,谢谢:http://blog.csdn.net/zhuhongshu/article/details/42580877 之前我写的程序使用阴影时,一直是使用codeproject网站 ...

  5. stl源码学习(版本2.91)--list

    stl源码学习(版本2.91)--list 一,阅读list()构造函数的收获 1,默认构造函数的作用和被调用的时机 struct no{ no(int i){} //no(){ // std::co ...

  6. libevent源码分析二--timeout事件响应

    libevent不仅支持io事件,同时还支持timeout事件与signal事件,这篇文件将分析libevent是如何组织timeout事件以及如何响应timeout事件. 1.  min_heap ...

  7. java并发系列(四)-----源码角度彻底理解ReentrantLock(重入锁)

    1.前言 ReentrantLock可以有公平锁和非公平锁的不同实现,只要在构造它的时候传入不同的布尔值,继续跟进下源码我们就能发现,关键在于实例化内部变量sync的方式不同,如下所示: /** * ...

  8. ReentrantLock(重入锁)的源码解析

    转自:从源码角度彻底理解ReentrantLock(重入锁)](https://www.cnblogs.com/takumicx/p/9402021.html)) 公平锁内部是FairSync,非公平 ...

  9. 【转】Android 源码下利用jni编译自己的项目(参考系统development/samples/SimpleJNI)

    原文网址:http://blog.csdn.net/qiuxiaolong007/article/details/7860481 记于正文前:环境是ubuntu10.10,android 源码是2.0 ...

随机推荐

  1. iOS NSMutableArray替换某个元素

    A * a1 = [A new]; A * a2 = [A new]; A * a3 = [A new]; A * a4 = [A new]; NSMutableArray *arr = [[NSMu ...

  2. 【mysql】【分组】后取每组的top2

    DROP TABLE IF EXISTS `tb1`; CREATE TABLE `tb1` ( `id` ) NOT NULL AUTO_INCREMENT, `a` ) DEFAULT NULL, ...

  3. mina2.0 spring

    Apache MINA是一个网络应用程序框架,它可以帮助用户开发的高性能.高扩展性的网络应用程序.它提供了一个抽象的事件驱动的异步API在不同传输如TCP/IP和UDP/IP通过java NIO. A ...

  4. java中的IO流

    Java中的IO流 在之前的时候我已经接触过C#中的IO流,也就是说集中数据固化的方式之一,那么我们今天来说一下java中的IO流. 首先,我们学习IO流就是要对文件或目录进行一系列的操作,那么怎样操 ...

  5. C#基础(三)—重载与覆盖

    所谓重载指的是同一个类中有两个或多个名字相同但是参数不同的方法.重载,必然发生在一个类中,函数名相同,参数类型或者顺序不同构成重载,与返回类型无关. override:过载也称重写是指子类对父类中虚函 ...

  6. (转载)ADOQuery参数传递

    ADOQuery参数传递 dbgrid1.DataSource := datasource1; datasource1.DataSet := adoquery1; Value := 1221; SQL ...

  7. Oracle RAC ORACLE_SID的设置,报错(ORA-01078, LRM-00109)

    [oracle@zen2 ~]$ echo $ORACLE_SID ORAC [oracle@zen2 ~]$ sqlplus /nolog SQL :: Copyright (c) , , Orac ...

  8. 让WPF的Popup不总置顶的解决方案

    使用WPF的Popup的时候会发现有一个问题,它总是会置顶,只要Popup的StayOpen不设置为False,它就一直呆在最顶端,挡住其他的窗口. 解决方案是继承Popup重新定义控件PopupEx ...

  9. linux管道的容量和内部组织方式

    1.管道容量  count=65536,即64KB #include<stdio.h> #include<sys/types.h> #include<unistd.h&g ...

  10. 使用memcache(thinkphp框架学习)

    $memcache = new Memcache; $memcache->connect("localhost",11211); $memcache->set('sxt ...