内联字符串和Go中使用的常量字符串之间是否有区别,或者这是否完全由编译器优化?
具有100B迭代的示例基准代码:
package main
import "fmt"
import "time"
import "log"
func main() {
// String
start := time.Now()
for i := 0; i < 100000000; i++ {
x := "My String"
if i % 1000000 == 0{
fmt.Printf(x)
}
}
elapsed := time.Since(start)
log.Printf("\nTook %s", elapsed)
// Constant
start2 := time.Now()
const MY_STRING = "My String 2"
for i := 0; i < 100000000; i++ {
x := MY_STRING
if i % 1000000 == 0 {
fmt.Printf(x)
}
}
elapsed2 …Run Code Online (Sandbox Code Playgroud) 我正在开发一个自动更新脚本,该脚本应该能够在守护程序完成后重新启动它.
我正在尝试这个:
final ArrayList<String> command = new ArrayList<String>();
String initScriptPath = Config.GetStringWithDefault("init_script", "/etc/init.d/my-daemon");
command.add("/bin/bash");
command.add("-c");
command.add("'" + initScriptPath + " restart'");
StringBuilder sb = new StringBuilder();
for (String c : command) {
sb.append(c).append(" ");
}
Log.write(LogPriority.DEBUG, "Attempting restart with: " + sb.toString());
final ProcessBuilder builder = new ProcessBuilder(command);
builder.start();
// Wait for a couple of seconds
try {
Thread.sleep(5000);
} catch (Exception e) {
}
System.exit(0);
Run Code Online (Sandbox Code Playgroud)
但是System.exit似乎停止了重启?它确实停止了,但不会重新开始.
是否可以仅使用正则表达式(无附加代码!)来匹配第n个匹配?例如:
"CAR" - "火车" - "船" - "自行车"
现在我只想匹配BOAT,匹配的正则表达式将是"[AZ] +",但是这也匹配第一个,第二个和第四个.
有没有人有这个纯正的正则表达式解决方案?我需要这个,因为我无法更改使用正则表达式的代码,但我可以提供正则表达式.
最好的问候,罗宾
我正在寻找一种智能而快速的方法来获取所有其他arraylists中的多个arraylists(存储在hashmap中)的值.
例如[a] = 1,2,3,4,5 [b] = 1,3 [c] = 3
结果= 3
在Java中实现这一目标的最快方法是什么?