我有以下Java代码:
Pattern pat = Pattern.compile("(?<!function )\\w+");
Matcher mat = pat.matcher("function example");
System.out.println(mat.find());
Run Code Online (Sandbox Code Playgroud)
为什么mat.find()回归真实?我使用了负面的lookbehind,example之前是function.不应该被丢弃吗?
我在 sql 代码中找到了这一行:
@../../sql_scripts/create_tables.sql
Run Code Online (Sandbox Code Playgroud)
它有什么作用?我知道这@@file.sql意味着 file.sql 正在运行,并且@可以在我们以后想要提供参数值时使用,但在这里我@后面跟了一个文件名。我知道有一个类似的问题,但它只涵盖@查询。
我有以下代码:
for(i=1; i<=2; i++)
{
fork();
printf("x ");
}
Run Code Online (Sandbox Code Playgroud)
我计算出x应打印6次:第一次迭代两次,第二次迭代4次.
相反,X被打印8次.为什么?
我有一个int,我想获得一个包含该int的char*.我的代码是:
int getLength(int x) {
int l = 0;
while(x) {
l++;
x /= 10;
}
return l;
}
char* toString(int x) {
int l = getLength(x);
char *str = new char[l];
l--; // the digits will be placed on positions 0 to l-1
while(l >= 0) {
str[l] = x % 10 + '0';
x /= 10;
l--;
}
return str;
}
Run Code Online (Sandbox Code Playgroud)
一些结果:
toString(1009) = 1009Ä
toString(23) = 23L
Run Code Online (Sandbox Code Playgroud)
为什么?我只为l个字符分配空间.(l = int的长度)
我在类中有一个Long对象,我给它一个值,然后我将它传递给另一个类的构造函数,在那里它被更改.为什么第一个对象中的变化不可见?
代码:
public class ClassA {
private Long t;
public ClassA() {
t = new Long(10);
System.out.println(t); // prints 10
new ClassB(t); // it is modified (see ClassB)
System.out.println(t); // prints 10 again
}
public static void main(String[] args) {
new ClassA();
}
}
class ClassB {
private Long p;
public ClassB(Long p) {
this.p = p;
this.p = this.p + 1;
System.out.println(this.p); // prints 11
}
}
Run Code Online (Sandbox Code Playgroud)
输出为:10 11 10 Long变量在ClassA中初始化.然后我将它传递给ClassB,修改它,并清楚地看到更改在第一堂课中不可见.为什么?
我有以下代码:
#include<stdio.h>
int main(){
int a = 1, b = 8;
while(a != b)
{
printf("asd");
fflush(stdout);
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
很明显,该计划永远不会停止.但为什么"asd"根本没有打印?
编辑:这是完整的程序.没有任何其他线路.我第一次使用Eclipse和MinGW并且它没有打印任何东西.我在linux中尝试使用gcc,它按预期工作,即使没有fflush!因此,这种行为可能是由于某些编译器优化代码并修改无限循环这一事实造成的.
我不知道为什么这两个代码片段不会产生相同的结果.在第一个例子中,我创建了一个函数并传递它,在第二个例子中,我编写了一个匿名函数.
function funct() {
$("p").slideUp(1000);
}
$(document).ready(funct());
$(document).ready(function() {
$("p").slideUp(1000);
});
Run Code Online (Sandbox Code Playgroud)
第二个有效,第一个没有.有人可以告诉我为什么吗?