小编kee*_*lar的帖子

使用vim将选中每个单词的首字母大写

在vim中,我知道我们可以使用~大写单个字符(如本问题中所述),但是有没有办法使用vim来大写选择中每个单词的第一个字母?

例如,如果我想改变

hello world from stackoverflow
Run Code Online (Sandbox Code Playgroud)

Hello World From Stackoverflow
Run Code Online (Sandbox Code Playgroud)

我应该怎样在vim中做到这一点?

regex vim replace find capitalize

67
推荐指数
3
解决办法
3万
查看次数

在Java中使用弱引用的成本

有没有人研究过创建和垃圾收集Java WeakReference对象所涉及的运行时成本?多线程应用程序是否存在任何性能问题(例如争用)?

编辑:显然,实际答案将取决于JVM,但也欢迎一般观察.

编辑2:如果有人对性能做了一些基准测试,或者可以指出一些基准测试结果,那将是理想的.(对不起,但赏金已过期......)

java garbage-collection weak-references

46
推荐指数
2
解决办法
3875
查看次数

使用GetPrimitiveArrayCritical和Get <PrimitiveType> ArrayRegion之间的权衡是什么?

当使用JNI桥接c ++和Java时,我们总是希望避免不必要的复制.我发现GetPrimitiveArrayCritical可能会给我们很高的机会不复制数组.但我不完全理解这里记录的限制:

在调用GetPrimitiveArrayCritical之后,本机代码在调用ReleasePrimitiveArrayCritical之前不应该运行很长一段时间.我们必须将这对函数中的代码视为在"关键区域"中运行.在关键区域内,本机代码不能调用其他JNI函数,也不能调用可能导致当前线程阻塞并等待另一个Java线程的任何系统调用.(例如,当前线程不能对另一个Java线程正在写入的流调用read.)

这些限制使得本机代码更有可能获得阵列的未复制版本,即使VM不支持固定.

我的问题是:

  1. 延长一段时间的确切含义是什么?

  2. 那么这是否意味着我们可以安全地调用其他JNI函数或系统调用,它们永远不会导致当前线程阻塞并等待另一个Java线程?

  3. GetPrimitiveArrayCritical是线程安全的吗?

  4. 使用GetPrimitiveArrayCritical而不是GetArrayRegion时,我应该知道什么吗?

c++ java arrays java-native-interface multithreading

16
推荐指数
2
解决办法
4086
查看次数

如何从派生类复制构造函数中调用基类复制构造函数?

就像在标题中一样,如何从派生类复制构造函数中调用基类复制构造函数?

c++ inheritance constructor copy-constructor

15
推荐指数
2
解决办法
3万
查看次数

从字符串S [1..m]的后缀树生成字符串S [2..m]的后缀树

是否存在从字符串S [1..m] 的后缀树生成字符串S [2..m]的后缀树的快速(O(1)时间复杂度)方法?

我熟悉Ukkonen的,所以我知道如何从字符串S [1..m]的后缀树制作字符串S [1..m + 1]的快速后缀树,但我不能将该算法用于反向情况.

algorithm complexity-theory suffix-tree data-structures

10
推荐指数
1
解决办法
321
查看次数

Java泛型 - 类或类<?扩展SomeClass>

我正在编写一个程序,它将使用Java反射(即Class.forName())根据用户的输入动态创建类实例.一个要求是我的程序创建的实例必须扩展一个定义的特定类,称为它SomeClass.我的问题是:对于存储这个类类型,我应该使用有界泛型Class<? extends SomeClass>,还是简单的无界泛型,Class?我发现一些Java书籍说Class是使用无界通配符泛型的好方法之一,但我想知道这是否适用于我的程序中的情况.

如果您发现我的问题不够清楚或者需要一些信息,请随时告诉我.

java generics reflection class

10
推荐指数
1
解决办法
2398
查看次数

是否可以定义指向引用的指针?

我正在读书C++ Primer,我注意到有一个声明说:

因为引用不是对象,所以它们没有地址.因此,我们可能没有定义指向引用的指针.

但我刚刚编写了一个示例代码,并表明可以创建一个指向引用的指针(d变量).

代码发布如下:

#include <iostream>
using namespace std;

int main(){
   int a = 1024;

   int &b = a; // a reference to int
   int &c = b; // a reference to another reference
   int *d = &b; // a pointer to a reference
   int *(&e) = d; // a reference to a pointer 

   a = 100;
   cout << b << endl;
   cout << c << endl;
   cout << *d << endl;
   cout << *e …
Run Code Online (Sandbox Code Playgroud)

c++ pointers reference

10
推荐指数
3
解决办法
2019
查看次数

Karatsuba乘法适用于不等大小,非幂2的操作数

使用不等大小的输入操作数实现Karatsuba大数乘法的最有效方法是什么,其大小不是2的幂,甚至可能不是偶数?填充操作数意味着额外的内存,我想尝试使其具有内存效率.

我在非偶数大小的Karatsuba中注意到的一件事是,如果我们试图将数字分成尽可能接近偶数的"一半",一半将有m + 1个元素而另一个m,其中m = floor(n/2),n是分割数中的元素数.如果两个数字具有相同的奇数,那么我们需要计算两个大小为m + 1的数量的乘积,需要n + 1个存储,而n是偶数时的n.所以我正确地猜测奇数尺寸的Karatsuba可能需要比偶数尺寸更多的内存?

algorithm largenumber multiplication

9
推荐指数
1
解决办法
4672
查看次数

在Java中的List中存储不同类型的元素

我正在尝试开发一个通用的表加载器,该模式在运行时是已知的.这需要具有包含不同类型的元素的列表,并支持各种get和诸如设置方法的类getInt(int index),asString(int index),asStringList(int index).元素我考虑的类型有Integer,Double,String,和List<Integer>,List<Double>List<String>.每个元素的实际类型在运行时是已知的,我将它们存储在描述其模式的List中以供进一步处理.

我的问题是:我应该将这些元素列表存储在List<Object>或中List<? extends Object>吗?还是有更好的方法来实现这样的课程?

java generics collections object

9
推荐指数
2
解决办法
2万
查看次数

Cassandra中的范围查询(CQL 3.0)

我不完全了解Cassandra的一个主要部分是它的范围查询.我知道Cassandra强调分布式环境并专注于性能,但可能正是因为它,它目前只支持几种类型的范围查询,它可以有效地完成,我想知道的是:支持哪种类型的范围查询由卡桑德拉.

据我所知,Cassandra支持以下范围查询:

1:主键上带有关键字的范围查询TOKEN,例如:

 CREATE TABLE only_int (int_key int PRIMARY KEY);
 ...
 select * from only_int where token(int_key) > 500;
Run Code Online (Sandbox Code Playgroud)

2:使用关键字在辅助索引上具有一个相等条件的范围查询ALLOW FILTERING,例如:

CREATE TABLE example (
  int_key int PRIMARY KEY,
  int_non_key int,
  str_2nd_idx ascii
);
CREATE INDEX so_example_str_2nd_idx ON example (str_2nd_idx);
...
select * from example where str_2nd_idx = 'hello' and int_non_key < 5 allow filtering;
Run Code Online (Sandbox Code Playgroud)

但我想知道我是否遗漏了一些东西,并寻找一个规范的答案,其中列出了当前CQL支持的所有类型的范围查询(或者一些允许更多类型的范围查询的解决方法).

cql cassandra range-query

9
推荐指数
2
解决办法
2万
查看次数