Tag: c

Java / C#中检查的exception是什么?

我是一名C#开发人员,偶尔用Java编写代码。 有人可以用简单的术语解释Java中检查的exception是什么以及为什么需要它? 没有在C#中遇到过这个术语。

什么是与C ++静态块等效的C ++习惯用法?

我有一个带有一些静态成员的类,我想运行一些代码来初始化它们(假设这段代码不能转换成简单的表达式)。 在Java中,我会这样做 class MyClass { static int myDatum; static { /* do some computation which sets myDatum */ } } 除非我弄错了,C ++不允许这样的静态代码块,对吧? 我应该做什么呢? 我想要解决以下两个选项: 进程加载时(或加载此类的DLL时)会发生初始化。 首次实例化类时会发生初始化。 对于第二种选择,我在考虑: class StaticInitialized { static bool staticsInitialized = false; virtual void initializeStatics(); StaticInitialized() { if (!staticsInitialized) { initializeStatics(); staticsInitialized = true; } } }; class MyClass : private StaticInitialized […]

Java中C的“_getch()”的等效函数?

我使用Google Wave,我想模仿在您实际按Enter键之前发送消息的function。 是否存在与C函数_getch()等效的Java?

使用编译器的关联性有什么问题?

有时可以使用关联性来消除数据依赖性,我很好奇它可以提供多少帮助。 我很惊讶地发现,通过手动展开一个简单的循环,我在Java(build 1.7.0_51-b13)和C(gcc 4.4.3)中几乎可以获得4的加速因子 。 所以我要么做一些非常愚蠢的事情,要么编译器忽略了一个强大的工具。 我开始了 int a = 0; for (int i=0; i<N; ++i) a = M1 * a + t[i]; 它计算接近String.hashCode()东西(设置M1=31并使用char[] )。 计算非常简单,对于我的i5-2400 @ 3.10GHz(在Java和C中), t.length=1000大约需要1.2微秒。 观察到每两个步骤a乘以M2 = M1*M1并添加一些东西。 这导致了这段代码 int a = 0; for (int i=0; i<N; i+=2) { a = M2 * a + (M1 * t[i] + t[i+1]); // […]

将Java嵌入到C ++应用程序中?

我得到了一个用C ++编写的应用程序,我可以通过在C ++中编写插件来扩展应用程序function。 我基本上想要做的是将Java嵌入到这个应用程序中。 这已经用Python完成了(不是由我完成的)。 我读了一些关于JNI的内容,但总是有一个使用Java类的完整程序的演讲。 我想做的是,使用Java中的C ++类来与应用程序进行交互。 在这种情况下,它是一个3D应用程序,称为Cinema 4D。 有没有办法在应用程序运行时(使用某种脚本语言)使用JNI或类似的东西编译和评估Java代码? 嵌入完成后的虚构代码示例: import c4d.documents.*; class Main { public static void main() { BaseDocument doc = GetActiveDocument(); BaseObject op = doc.GetActiveObject(); if (op != null) { op.Remove(); } } } 此代码应与Cinema 4D交互以删除所选对象。

短路评估是否在C ++中得到保证,就像在Java中一样?

在Java中,我使用 if (a != null && a.fun()); 通过充分利用短路评估和表达从左到右进行评估? 在C ++中,我可以这样做吗? 它们是否保证可以跨不同平台和编译器移植? if (a != 0 && a->fun());

内存中的方法表示是什么?

在思考Java / C#中的编程时,我想知道如何在内存中表示属于对象的方法,以及这个事实如何涉及multithreading。 是一个单独为内存中的每个对象实例化的方法,还是同一类型的所有对象共享该方法的一个实例? 如果是后者,执行线程如何知道要使用哪个对象的属性? 是否可以在C#中使用reflection修改方法的代码,并且只能修改同一类型的多个对象中的一个对象? 一个不使用类属性的静态方法总是线程安全吗? 我试着对这些问题下定决心,但我对他们的答案非常不确定。