小编Pie*_*ard的帖子

getstatic在字节码中真正意味着什么?

我有这个字节码:

new                 java.lang.Object
// stack is [newObjectRef]
dup 
// Stack is [newObjectRef newObjectRef]
invokespecial       void java.lang.Object.<init>()
// Stack is [initializedAsTypeObjectObjectRef]
putstatic           java.lang.Object class.a
// variable a has the reference of new object
getstatic           java.io.PrintStream java.lang.System.out
// Take the static value of System.out
// Stack is [initializedAsTypeObjectObjectRef System.out]
Run Code Online (Sandbox Code Playgroud)

更新,这是续篇:

> ldc                 "test" // Stack is
> [initializedAsTypeObjectObjectRef System.out "test"]
> jsr                  pos.0000026C // call a subrutine invokevirtual       void
> java.io.PrintStream.println(java.lang.String) // actually print the
> result // stack is (I think) …
Run Code Online (Sandbox Code Playgroud)

java bytecode

5
推荐指数
1
解决办法
2330
查看次数

如何在维持点击n秒后触发事件? - jQuery/Javascript

我相信我不是第一个找这个,但我没有找到任何解决方案来解决我的问题.

我正在寻找一种方法,只有在经过3秒的维持点击后才能发起事件.我尝试使用带有mouseup/mousedown Jquery事件的javascript setInterval()函数,但它没有用.

有人有想法吗?

我有一个div,我按住鼠标按钮3秒钟,然后会触发一些东西.每次必须重新初始化3秒计时器.

javascript jquery

5
推荐指数
1
解决办法
9667
查看次数

为什么 Google Guice 依赖注入框架有两个单例实例

在我的应用程序中有 2 个单例实例,它们都是由 Google Guice 创建的。

这怎么可能?

绑定完成如下:

bind(Foo.class).to(FooImpl.class).in(Scopes.SINGLETON);
Run Code Online (Sandbox Code Playgroud)

java singleton guice

5
推荐指数
1
解决办法
2084
查看次数

HashSet是否在内部执行排序工作?

Set有时会排序,有时候不排序.

这是一个例子:

public class SetOfInteger {
    public static void main(String[] args) {
        Random rand = new Random(47);
        Set<Integer> intset = new HashSet<>();
        for (int i = 0; i < 10; i++) {
            int j = rand.nextInt(30);
            System.out.print(j + " ");
            intset.add(j);
        }
        System.out.println();
        System.out.println(intset);
    }
}
Run Code Online (Sandbox Code Playgroud)

结果显示set未排序.

8 5 13 11 1 29 28 20 12 7 
[1, 20, 5, 7, 8, 11, 12, 29, 28, 13]
Run Code Online (Sandbox Code Playgroud)

当我将终止表达式更改i < 20为for语句时,结果显示set变为已排序.

8 5 …
Run Code Online (Sandbox Code Playgroud)

java sorting hashset

5
推荐指数
4
解决办法
644
查看次数

以不区分大小写的方式使用 json_populate_recordset

是否可以json_populate_recordset使用 PostgreSQL (9.6) 以不区分大小写的方式比较表列名/json 键?

例如,以下代码段将返回零行。

CREATE TABLE foo (bar TEXT);
SELECT * from json_populate_recordset(null::foo, '[{"bAr":1}]')
Run Code Online (Sandbox Code Playgroud)

当然,我可以将 json 键转换为小写,或者表名可以区分大小写。

postgresql json

5
推荐指数
1
解决办法
479
查看次数

分割屏幕为2个div并设置第二个宽度,其余空间为css?

我有2个块内联div.

我不想指定第一个的宽度,但是,我希望第二个占用剩余空间的100%.两个div的容器占据了我的屏幕的100%.

似乎可以使用jQuery来确定第一个div的宽度并设置第二个值,但我想在纯css中完成它.

我怎样才能做到这一点 ?

html css split screen

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

英特尔x86汇编语法中的寄存器括号

我试着理解x86汇编中的括号.在这个例子中,寄存器ax应该包含X,因为括号代表当前的地址LABEL.

mov ax, [LABEL]

LABEL:
db "X", 0
Run Code Online (Sandbox Code Playgroud)

但我不明白以下两条装配线:

mov al, [ebx]
Run Code Online (Sandbox Code Playgroud)

为什么我需要括号?是因为ebx是32位寄存器还是ax16位?区别在于:

mov al, ebx
Run Code Online (Sandbox Code Playgroud)

或者这个,我不明白为什么我需要括号......

mov [edx], ax
Run Code Online (Sandbox Code Playgroud)

syntax x86 assembly nasm cpu-registers

3
推荐指数
1
解决办法
3050
查看次数

为什么JVM允许我们命名以字节码中的数字开头的函数?

标识符由Java语言规范,Java SE 7 Edition(§3.8)很好地定义

An identifier is an unlimited-length sequence of Java letters and Java digits, the
first of which must be a Java letter.
Run Code Online (Sandbox Code Playgroud)

据我所知,由于方法名称是标识符,因此不可能在java中命名以数字开头的方法,并javac遵守此规则.

那么,为什么Java虚拟机似乎不遵守这个规则,允许我们在Bytecode中命名一个以数字开头的函数?


这个简单的代码片段实际上会打印f99()方法名称及其参数的值.

public class Test {
    public static void main(String[] args) {
        Test t = new Test();
        System.out.println(t.f99(100));
    }

    public int f99(int i){
        System.out.println(Thread.currentThread().getStackTrace()[1].getMethodName());
        return i;
    }
}
Run Code Online (Sandbox Code Playgroud)

编译和执行:

$ javac Test.java
$ java Test
Run Code Online (Sandbox Code Playgroud)

输出:

f99
100
Run Code Online (Sandbox Code Playgroud)

可以在编译后反汇编代码,并f99通过99(在reJ之类的工具的帮助下 )重命名所有出现的代码.

$ java …
Run Code Online (Sandbox Code Playgroud)

java jvm bytecode identifier

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

将Java Double.Max_VALUE与大双数进行比较,返回true

为什么这些简单的双重比较会返回真实?

System.out.println(Double.MAX_VALUE == (Double.MAX_VALUE - 99 * Math.pow(10, 290)));
System.out.println(new Double(Double.MAX_VALUE).equals(new Double(Double.MAX_VALUE - 99 * Math.pow(10, 290))));
Run Code Online (Sandbox Code Playgroud)

我知道这可能是一个IEEE 754精确问题,但我无法弄清楚究竟是什么问题.

java double ieee-754

3
推荐指数
1
解决办法
688
查看次数

使用Dropwizard从Authenticator访问HttpServletRequest

使用DropWizard(Jersey服务器),是否可以HttpServletRequest从身份验证器访问?

我会给它一个属性.

我尝试过:

@Context
private HttpServletRequest servletRequest;
Run Code Online (Sandbox Code Playgroud)

但它没有注入.

我注册了我的身份验证器:

env.jersey().register(
                new AuthDynamicFeature(new BasicCredentialAuthFilter.Builder<User>().setAuthenticator(new FooAuthentificator())
                        .setRealm("Realm").buildAuthFilter()));
Run Code Online (Sandbox Code Playgroud)

dependency-injection jersey dropwizard

3
推荐指数
1
解决办法
3286
查看次数