我正在寻找一个简单的公共方法或运算符,它允许我重复一些字符串n次.我知道我可以使用for循环来编写它,但我希望在必要时避免使用循环,并且某处应该存在一个简单的直接方法.
String str = "abc";
String repeated = str.repeat(3);
repeated.equals("abcabcabc");
Run Code Online (Sandbox Code Playgroud)
相关:
repeat string javascript 通过重复给定次数的另一个字符串来创建NSString
编辑
当他们不是完全必要的时候我试着避免循环,因为:
即使它们隐藏在另一个函数中,它们也会增加代码行数.
读我的代码的人必须弄清楚我在循环中做了什么.即使它被评论并且具有有意义的变量名称,它们仍然必须确保它没有做任何"聪明"的事情.
程序员喜欢把聪明的东西放在for循环中,即使我把它写成"只做它想要做的事情",这并不排除有人出现并增加一些额外的聪明"修复".
他们经常容易出错.对于涉及索引的循环,往往会产生一个错误.
For循环经常重用相同的变量,增加了很难找到范围错误的机会.
For循环增加了bug猎人必须看的地方数量.
我已经将java配置为将垃圾收集信息转储到日志中(详细GC).我不确定日志中的垃圾收集条目是什么意思.这些条目的样本发布在下面.我在Google上搜索过,并没有找到可靠的解释.
我有一些合理的猜测,但我正在寻找答案,这些答案提供了条目中数字的严格定义,并由可靠的消息来源支持.对所有引用sun文档的答案自动+1.我的问题是:
8109.128:[GC [PSYoungGen:109884K-> 14201K(139904K)] 691015K-> 595332K(1119040K),0.0454530秒]
8112.111:[GC [PSYoungGen:126649K-> 15528K(142336K)] 707780K-> 605892K(1121472K),0.0934560 secs]
8112.802:[GC [PSYoungGen:130344K-> 3732K(118592K)] 720708K-> 607895K(1097728K),0.0682690 secs]
我已经开始使用gnuplot-py绘制Tomcat日志的项目,特别是将特定请求与内存分配和垃圾收集相关联.对于Python绘图,gnuplot-py与Matplotlib的集体智慧是什么?有没有更好的图形库我还没有听说过?
我的一般考虑是:
你将如何处理这项任务?
我想size_t在C中打印出一个类型的变量,但似乎size_t在不同的体系结构上别名为不同的变量类型.例如,在一台计算机(64位)上,以下代码不会抛出任何警告:
size_t size = 1;
printf("the size is %ld", size);
Run Code Online (Sandbox Code Playgroud)
但在我的另一台机器(32位)上面的代码会产生以下警告消息:
警告:格式'%ld'需要类型'long int*',但参数3的类型为'size_t*'
我怀疑这是由于指针大小的不同,所以在我的64位机器size_t上别名为a long int("%ld"),而在我的32位机器size_t上别名为另一种类型.
是否有专门用于的格式说明符size_t?
c size-t platform-independent format-specifiers format-string
据我所知,HTTP_X_FORWARDED_FOR代理服务器设置了一个标头,用于标识通过代理发出HTTP请求的主机的IP地址.我听说过标题HTTP_CLIENT_IP是出于类似目的设置的.
HTTP_CLIENT_IP和之间有什么区别HTTP_X_FORWARDED_FOR?"普通人不想自由.他只是想要安全." - HL Menken
我正在尝试编写非常安全的C.下面我列出了一些我使用的技术,并且询问它们是否像我认为的那样安全.请不要犹豫将我的代码/先入之见撕成碎片.任何能找到最微不足道的漏洞或者教我一个新想法的答案都会受到高度重视.
根据GNU C编程教程 getline:
getline函数将根据需要通过realloc函数自动扩大内存块,因此永远不会缺少空间 - 这是getline如此安全的一个原因.[..]请注意,无论多长时间,getline都可以安全地处理您的输入线.
我假设getline应该在所有输入下防止从流中读取时发生缓冲区溢出.
如果malloc遇到错误,malloc将返回NULL指针.这会带来安全风险,因为仍然可以将指针算法应用于NULL(0x0)指针,因此维基百科推荐
/* Allocate space for an array with ten elements of type int. */
int *ptr = (int*)malloc(10 * sizeof (int));
if (ptr == NULL) {
/* Memory could not be allocated, the program should handle
the error here as appropriate. */
}
Run Code Online (Sandbox Code Playgroud)
当使用sscanf时,我已经养成了将要提取的字符串分配给输入字符串大小的习惯,希望避免出现溢出的可能性.例如:
const char *inputStr = "a01234b4567c";
const …Run Code Online (Sandbox Code Playgroud) 我试图通过Smashing the Stack for Fun和Profit在C中做一个例子,但我有点卡在一点,以下是代码(我有一个64位机器与Ubuntu 64位):
int main()
{
int x;
x = 0;
func(1,2,3);
x = 1;
printf("x is : %d\n", x);
}
void func(int a, int b, int c)
{
char buffer[1];
int *ret;
ret = buffer + 17;
(*ret) += 7;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码工作正常,并且在返回x=1行时没有执行,但我无法理解背后的逻辑ret = buffer + 17;,不应该是ret = buffer + 16;8字节用于缓冲区,8用于保存的栈指针上的指针.
其次,我的理解是char buffer[1]占用8个字节(由于64位拱)并且如果我增加这个缓冲区来说buffer[2],仍然相同的代码应该工作正常,但这不会发生并且它开始给出seg错误.
此致,努曼
"可能出错的事情与不可能出错的事情之间的主要区别在于,当一件不可能出错的事情出错时,通常会发现无法进入或修复." -道格拉斯·亚当斯
我有一个类FileItems.FileItems构造函数接受一个文件,如果该文件不存在则抛出异常(FileNotFoundException).该类的其他方法也涉及文件操作,因此具有抛出FileNotFoundException的能力.我想找到一个更好的解决方案.一种解决方案,不需要其他程序员处理所有这些极不可能的FileNotFoundExceptions.
事情的事实:
代码目前看起来像这样
public Iterator getFileItemsIterator() {
try{
Scanner sc = new Scanner(this.fileWhichIsKnowToExist);
return new specialFileItemsIterator(sc);
} catch (FileNotFoundException e){ //can never happen}
return null;
}
Run Code Online (Sandbox Code Playgroud)
如何在不定义自定义未经检查的FileNotFoundException的情况下更好地完成此操作?有没有办法将checkedException转换为uncheckException?
我在Linux(amd64)上玩过缓冲区溢出并试图利用一个简单的程序,但它失败了.我禁用了安全功能(使用sysctl -w kernel.randomize_va_space = 0和bios中的nx位进行地址空间布局随机化).它跳转到堆栈并执行shellcode,但它不会启动shell.execve系统调用成功,但之后它就会终止.知道什么是错的吗?运行shellcode独立工作正常.
额外问题:为什么在调用printf之前需要将rax设置为零?(见代码中的评论)
易受攻击的文件缓冲区:
.data
.fmtsp:
.string "Stackpointer %p\n"
.fmtjump:
.string "Jump to %p\n"
.text
.global main
main:
push %rbp
mov %rsp, %rbp
sub $120, %rsp
# calling printf without setting rax
# to zero results in a segfault. why?
xor %rax, %rax
mov %rsp, %rsi
mov $.fmtsp, %rdi
call printf
mov %rsp, %rdi
call gets
xor %rax, %rax
mov $.fmtjump, %rdi
mov 8(%rbp), %rsi
call printf
xor %rax, %rax
leave
ret
Run Code Online (Sandbox Code Playgroud)
shellcode.s
.text
.global …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用大型复杂的tomcat java Web应用程序解决性能问题.目前最大的问题是,内存使用量不时出现峰值,应用程序也无法响应.我已经修复了我可以使用日志分析器和日志文件的贝叶斯分析修复的所有内容.我正在考虑在生产tomcat服务器上运行一个分析器.
温柔敏感的读者注意事项:
据我所知,有些人可能会发现将生产应用程序分析为冒犯的概念.请放心,我已经用尽了大部分其他选择.我考虑这个的原因是我没有资源在我的测试服务器上完全复制我们的生产设置,而且我无法在我的测试服务器上引起感兴趣的失败.
问题:
我正在寻找能够在tomcat上运行的java Web应用程序,或者以语言无关的方式回答这个问题的答案.
java language-agnostic profiling visualvm production-environment