您好我已经看过几种创建字符串的方法,我想知道哪一种更快,即性能更好
var pdf = require('html5-to-pdf');
var fs = require('fs');
router.post('/pdf', function(req, res) {
var html = req.body.html;
if (!html) {
return res.sendStatus(400);
}
pdf().from.string(html).to.buffer({
renderDelay: 1000
}, function(err, data) {
if (err) {
return res.sendStatus(500);
}
var file = fs.createWriteStream('myDocument.pdf');
file.write(data, function(err) {
if (err) {
res.sendStatus(500);
}
res.download('myDocument');
});
});
});
或
String a ="Hello sick sad world! 213763e83456382582463456";
或
String a =new String("Hello sick sad world! 213763e83456382582463456");
或
StringBuilder sb = new StringBuilder("Hello sick sad world! 213763e83456382582463456");
String a = sb.toString();
或
StringBuilder sb = new StringBuilder();
sb.append("Hello");
sb.append(" sick");
sb.append(" sad");
sb.append(" world!");
sb.append(" 213763e83456382582463456");
String a = sb.toString();
答案 0 :(得分:0)
字符串是有线的,很酷的东西是Java。
如果有的话,可以使用"Hello sick sad world! 213763e83456382582463456"
重用现有的String对象。
分配新内存并添加值"Hello sick sad world! 213763e83456382582463456"
。
首先使用值StringBuilder
创建一个"Hello sick sad world! 213763e83456382582463456"
对象,然后在toString()方法中,它开始分配内存并在StringBuilder实现中分配值。
4,5是相同的,但是代码很短。
StringBuilder和String用于不同的情况,StringBuilder用于使String操作高效。由于String表现为不可变,因此您可以从“字符串”构建器实现可变行为。
你的问题的答案是1或2.如果你在字符串对象池中有一个命中,1比2快,如果不是2则快于1。
答案 1 :(得分:0)
订单是:
实际上,如果忽略代码加载的开销,等等,第一个例子减少为单个指针赋值。你无法改进。
其他示例都涉及至少创建一个新对象。