有没有人在这里真正使用JavaFX进行实际应用?我对JavaFX的使用做了一个浅薄的搜索,发现几乎没有大量使用情况.
有谁知道实际使用JavaFX的公司?我真的害怕JavaFX(目前是唯一一些开源的RIA平台)无法生存.
更新 此问题给出了JavaFX程序的一些示例(主要是为竞赛编写的代码).但我没有看到那里的商业用户.
我希望用gmail简单地传达数学方程式.
有一个名为AsciiMath 的javascript脚本,它应该将类似Tex的方程式转换为标准的mathML.
我认为将这个脚本与GM一起使用会很好.我认为在发送电子邮件之前,此脚本会将您电子邮件中所有类似TeX的公式转换为MathML.因此,使用FF(或安装了MathPlayer的IE)的阅读器将能够轻松读取这些方程式.
理想情况下,我希望以某种方式将原始类似TeX的方程保留在纯文本消息中,以便纯文本电子邮件客户端可以读取它,例如mutt
.
显然,这里最薄弱的环节是客户端软件,它很可能不支持MathML.如果我的通讯员使用Firefox和某种网络邮件(这是非常合理的) - 它应该工作.
我的问题是,有可能吗?有人这样做过吗?
您是否看到此方法存在任何技术问题(gmail过滤MathML,客户端无法正确解析它等)?
有更聪明的想法吗?
我应该如何管理关键任务嵌入式应用程序中的内存?
我发现了谷歌的一些文章,但无法确定一个非常有用的实用指南.
本DO-178b
者禁用动态内存分配,但你将如何管理内存呢?提前预先分配所有内容并发送指向需要分配的每个函数的指针?在堆栈上分配它?使用全局静态分配器(但它与动态分配非常相似)?
例如,答案可以是常规答案,对资源的引用或对良好的开源嵌入式系统的引用.
澄清:这里的问题不在于内存管理是否适用于嵌入式系统.但是什么是嵌入式系统的优秀设计,以最大限度地提高可靠性.
我不明白为什么静态预分配缓冲池,并动态地获取和删除它,与动态分配内存不同.
是否有一个原因,对象TreeSet.apply
方法返回SortedSet
,而不是TreeSet
?
以下代码不会在scala 2.7中编译
val t:TreeSet[Int] = TreeSet(1,2,3)
Run Code Online (Sandbox Code Playgroud) 我有一个获取n
字节输入缓冲区的函数,需要一个n
字节的辅助缓冲区来处理给定的输入缓冲区.
(我知道vector在运行时分配内存,假设我正在使用一个使用静态预分配内存的向量.想象一下这不是一个STL向量.)
通常的做法是
void processData(vector<T> &vec) {
vector<T> &aux = new vector<T>(vec.size()); //dynamically allocate memory
// process data
}
//usage:
processData(v)
Run Code Online (Sandbox Code Playgroud)
由于我在一个实时环境中工作,我希望提前预先分配我需要的所有内存.
缓冲区在启动时仅分配一次.我希望每当我分配一个向量时,我都会自动为我的processData
函数分配辅助缓冲区.
我可以用模板功能做类似的事情
static void _processData(vector<T> &vec,vector<T> &aux) {
// process data
}
template<size_t sz>
void processData(vector<T> &vec) {
static aux_buffer[sz];
vector aux(vec.size(),aux_buffer); // use aux_buffer for the vector
_processData(vec,aux);
}
// usage:
processData<V_MAX_SIZE>(v);
Run Code Online (Sandbox Code Playgroud)
然而,使用模板工作并不是很有趣(现在让我们重新编译所有内容,因为我更改了注释!),并且它强制我在使用此功能时进行一些簿记.
这个问题有没有更好的设计?
我注意到,当我加载纹理时,它可能会改变当前的绘图颜色,具体取决于纹理的颜色.例如在执行之后
glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, info.biWidth,
info.biHeight, 0, GL_RGB, GL_UNSIGNED_BYTE,bitmap);
glTexParameterf(GL_TEXTURE_2D,
GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexParameterf(GL_TEXTURE_2D,
GL_TEXTURE_MAG_FILTER, GL_LINEAR);
Run Code Online (Sandbox Code Playgroud)
绘制到屏幕上的所有连续多边形将具有一种颜色,具体取决于加载的纹理图像.
那是标准吗?我没有发现记录这种行为.
给定两个连续的数组,A
和B
.他们看起来像
int AandB[] = {a1,a2,...,am,b1,b2,...,bn};
Run Code Online (Sandbox Code Playgroud)
您需要编写一个程序来切换数组的顺序A
并B
在内存中,以便B
之前出现A
.在我们的例子中,AandB
应该成为
int AandB[] = {b1,b2,...,bn,a1,...,am};
Run Code Online (Sandbox Code Playgroud)
最有效的方法是什么?
在许多算法中,您应该迭代一组元素,而该集合不为空.
由于您可以在迭代时更改集合,因此通常会将一个元素从集合中拉出,然后执行迭代,可能会在集合中添加或删除元素.这是一个典型的Java代码.
Set<Integer> possibleFactors = Sets.newHashSet(2,3,4,5,6,7,8,100);
while (!possibleFactors.isEmpty()) {
int factor = possibleFactors.iterator().next();
for (int i=1;i<10;i++) possibleFactors.remove(i*factor);
}
Run Code Online (Sandbox Code Playgroud)
编辑:如评论中所述,我会举一个更好的例子.我正在迭代用户选择的文件,我通过检查每个项目的权限来过滤它们.但是,作为优化,如果用户没有某个目录的权限,我将从该集中删除其中的所有文件.
Set<Path> input = Sets.newHashSet(userSelectedPaths);
while (!input.isEmpty()) {
Path path = input.iterator.next();
input.remove(path);
if (!expensivePermissionCheck(path)) {
input.removeAll(path.getFiles());
} else {
processPath(path);
}
}
Run Code Online (Sandbox Code Playgroud)
然而,循环中的第一行看起来很奇怪.它创建了一个多余的Iterable
对象,当我想要的是一组中的任意元素时,我不关心它的顺序.
除了性能,它看起来有点怪异,而且可读性较差.
还有更好的选择吗?也许完全不同的结构?
编辑:也许更好的表述是"如何从一组中弹出任意元素?"
就算法而言,从连续数组中移除一组元素可以在两个部分中有效地完成.
这可以C++
用擦除 - 移除习语来完成.
vector<T> v; // v = {0,1,2,3,0,0,7};
vector<T>::iterator it = remove(v.begin(),v.end(),e);
// move all elements not to be deleted to the front
// Yes, remove is not the brightest name for that.
// Especially as list::remove really remove elements from the list.
// now v = {1,2,3,7,?,?,?} results marked in question marks
// are implementation dependent.
v.erase(it,v.end());
// get rid of the elements marked as question marks.
// v = {1,2,3,7}
Run Code Online (Sandbox Code Playgroud)
现在,问号中元素的内容是未知的.我们唯一可以做的就是摆脱它们(通过覆盖它们,或者删除它们).
有 …
Java Collections.max仅采用可排序对象的集合.但是,由于集合不一定排序,我认为没有任何理由不为可迭代类型实现相同的max函数.
Iterable<T extends Comparable<? super T>>
在java的标准库中有最大的方法吗?