Tag: c

任何人都可以将这个C ++代码(从OpenJDK6)解释为普通英语吗?

这是OpenJDK6的hotspot/src/share/vm/prims/unsafe.cpp的代码片段(从第1082行开始): // JSR166 —————————————————————— UNSAFE_ENTRY(jboolean, Unsafe_CompareAndSwapObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject e_h, jobject x_h)) UnsafeWrapper(“Unsafe_CompareAndSwapObject”); oop x = JNIHandles::resolve(x_h); oop e = JNIHandles::resolve(e_h); oop p = JNIHandles::resolve(obj); HeapWord* addr = (HeapWord *)index_oop_from_field_offset_long(p, offset); if (UseCompressedOops) { update_barrier_set_pre((narrowOop*)addr, e); } else { update_barrier_set_pre((oop*)addr, e); } oop res = oopDesc::atomic_compare_exchange_oop(x, addr, e); jboolean success […]

它们真的是虚拟代码吗?

与C ++ / C相比,某些键(如shift,[,],Del等)的虚拟键代码在java中显示为不同的值。 例如 : Key Java C / C++ Shift 16 160 [ 91 219 ] 93 221 \ 92 220 Del 127 46 Window 524 91 这是什么原因? 这些代码是虚拟代码还是不同类型? 对于包括字母,数字,function键(F1-F12),退格键,`等的键是相同的。 我可能会误解一个概念,在这种情况下请澄清一下。 签入C / C ++ KBDLLHOOKSTRUCT * kbhook = (KBDLLHOOKSTRUCT *) lParam; printf(“%u\n”,kbhook->vkCode); 用Java检查 private void jTextField1KeyPressed(java.awt.event.KeyEvent evt) { int code = evt.getKeyCode(); […]

UnsatisfiedLinkError:无法从加载程序加载X.

我正在尝试使用本机代码创建一个Android项目来调用OpenGl函数。 我正在按照本指南来实现这个项目: http : //www.learnopengles.com/calling-opengl-from-android-using-the-ndk/ 根据本指南,我必须“在Package Explorer中右键单击项目,从下拉菜单中选择Android Tools,然后选择Add Native Support …”。 但是,这个选项在我的eclipse版本中不可见(最新的osx版本来自与sdk捆绑在一起的android站点)。 为了解决这个问题,我使用以下方法手动将项目转换为C / C ++项目:file – > new – > other – > Convert to a C / C ++ Project(添加C / C ++支持)。 然后我将PATH变量添加到项目属性下的环境变量 – > C / C ++ build – > Environment。 我将ndk的路径添加到此变量中。 我做了更多必要的make文件并生成了jni文件。 该项目确实在libs目录中编译并生成.so文件。 但是,当我尝试在设备上运行项目时,我收到以下运行时错误: exceptionjava / lang / UnsatisfiedLinkError; […]

垃圾数据通过WiFi TCP连接从桌面传输到Android

我一直在四处寻找,并且无法找到这个特定问题的解决方案。 原谅我,如果这是一个新手的错误,我刚刚离开学校,所以我正在阅读尽可能多的书籍,以便了解移动设备编程。 目标:将基于PC的套接字服务器的数据无线传输到基于Android的客户端(802.11 b / g),然后处理所述数据以输出给用户。 问题: Android手机上的输入流缓冲区正在接收大量错误的垃圾数据。 程序:我编写和/或修改了三段不同的代码。 首先是我的笔记本电脑上运行的服务器端程序。 原始源代码可以在这里找到:beej.us/guide/bgnet/examples/server.c(感谢Beej的源代码!)。 我修改了它以删除警告/错误,并添加了我自己的连续数据输入循环以进行测试。 这是修改后的代码: /* A simple server in the internet domain using TCP The port number is passed as an argument */ #include #include #include #include #include #include #include void error(char *msg) { perror(msg); exit(1); } int main(int argc, char *argv[]) { int sockfd, newsockfd, […]

定义的参数评估顺序导致次优代码?

众所周知,c和c ++中的参数评估顺序没有定义:例如: foo(a(),b())在上面的调用中,由编译器的实现决定哪个评估顺序为选择哪个function首先执行。 最近我的一位朋友问为什么在C或C ++中没有指定评估顺序。 当我用Google搜索时,我发现指定评估顺序会导致代码生成次优。 但是怎么回事? 为什么定义的参数评估顺序会导致次优代码? 当我提到Java的论证评估顺序时。 我在规范中找到了以下内容。 15.7.4。 参数列表从左到右进行评估 在方法或构造函数调用或类实例创建表达式中,参数表达式可能出现在括号内,以逗号分隔。 每个参数表达式似乎在其右侧的任何参数表达式的任何部分之前被完全计算。 如果参数表达式的求值突然完成,那么右边的任何参数表达式的任何部分都不会被评估? 既然如此,Java有一个定义的参数评估顺序,但是如果指定了这样的行为,那么说C或C ++编译器会产生次优代码似乎有些奇怪。 你能对此有所了解吗?

Java是否提供“朋友”访问修饰符?

我想知道Java是否提供’朋友’(如在C ++中)访问修饰符? 有人说我们可以在Java中使用’friend’作为默认修饰符。 这是真的吗?

仅根据lucene中有更多术语出现的文件来计算得分

我开始研究基于lucene.net引擎的简历检索(文档)组件。 它工作得很好,它可以获取文档并根据文档对其进行评分 VSM背后的想法是,相对于该术语在集合中的所有文档中出现的次数,查询术语在文档中出现的次数越多,该文档与查询的相关性就越高。 Lucene的实用评分function源于以下内容。 score(q,d)=coord(q,d)·queryNorm(q)· ∑( tf(t in d) ·idf(t)2 · t.getBoost() · norm(t,d) ) t in q 在这 tf(t in d)与术语的频率相关,定义为术语t出现在当前得分文档中的次数d。 具有更多特定术语的文档会获得更高的分数 idf(t)代表逆文档频率。 该值与docFreq的倒数(术语t出现的文档数)相关。 这意味着更罕见的术语对总分的贡献更高。 在大多数情况下确实非常好,但由于现场规范计算结果不准确 fieldnorm aka“field length norm”值表示该doc中该字段的长度(因此较短的字段会自动提升)。 由于这个原因,我们没有得到准确的结果。 举个例子,我有10000个文件,其中3000个文件有java和oracle关键字。 并且每个文档看起来都没有变化。 假设doc A在1000个单词中得到10个java 20 oracle,而doc B在50个单词中得到2个java 2 oracle 如果我正在搜索“java和oracle”查询,则由于长度规范化,lucene返回高分的文档B. 由于业务的性质我们需要检索文件得到更多的搜索关键字出现应该先来,我们并不真正关心文件的长度。 因此,一个带有大量关键字的简历的Guy在结果中被移到了下面,并且出现了一些小的简历。 为了避免这种情况,我需要禁用长度标准化。 有人可以帮我弄这个吗?? 我附上了Luke结果图片供您参考。 在此图像中,使用java 50次和oracle 6次的文档向下移动到第11位。 但是这个带有java 24次和oracle 5次的文档因为fieldnorm而成为最佳射手。 希望我清楚地传达信息……如果不是,请问我,我会提供更多信息

C ++和Java对象通信

我需要在我的应用程序中建立C ++层和Java层之间的通信模型。 最初,我计划使用SOAP和XML,但我的客户对建立数据库通信渠道感兴趣。 我是DB的新手,不知道如何继续。 我想就使用数据库在C ++和Java层之间的对象实现通信方面提出真诚的建议。 谢谢,Geet

是否必须知道机器架构才能编写代码?

假设我使用Java或Python或C ++编程来解决一个简单的问题,可能是构建TCP / UDP回送服务器或计算阶乘。 我是否要关心架构细节,即它是32位还是64位? 恕我直言,除非我正在编写与相当低级别的东西相关的东西,否则如果它的32位或64位,我就不必费心了。 我哪里错了? 或者我是对的???

C ++ 0x – lambda表达式看起来和Java的匿名内部类一样吗?

我在c ++和Java上下文中对lambda表达式的解释是否正确?