有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!


共 (1) 个答案

  1. # 1 楼答案

    从这个answer借来的。程序为空字符串打印32个字节(为字符串池中的“”打印0)

    public static void main(String... args) {
        long free1 = free();
        String s = "";
        long free2 = free();
        String s2 = new String("");
        long free3 = free();
        if (free3 == free1) System.err.println("You need to use -XX:-UseTLAB");
        System.out.println("\"\" took " + (free1 - free2) + " bytes and new String(\"\") took " + (free2
                - free3) + " bytes.");
    }
    
    private static long free() {
        return Runtime.getRuntime().freeMemory();
    }
    

    另外,检查这个answer