小编Ele*_*eco的帖子

Java初始化顺序问题,静态vs实例字段

以下程序打印:

my name is:null

my name is:null

Someclass static init
Run Code Online (Sandbox Code Playgroud)

首次加载类时的AFAIK静态块和字段始终首先被初始化,实例块和字段被初始化.因此变量"objectName1"和"objectName2"应首先初始化,实例变量"list"second ...但是输出明显与此理论相矛盾...任何人都可以解释程序行为(我不是在寻找对它的批评设计本身btw)?

import java.util.ArrayList;
import java.util.List;

public class Main2{
    public static void main (String[] args){
        SomeClass.getInstance();
    }
}

class SomeClass {
    private static final SomeClass instance = new SomeClass();

    public static SomeClass getInstance(){
        return instance;
    }

    static {
        System.out.println ("Someclass static init");
    }
    private  static String objectName1  ="test1";
    private  static String objectName2  ="test2";

    @SuppressWarnings("serial")
    private  List<SomeObject> list=
        new ArrayList<SomeObject> ()  { {
 add (new SomeObject(objectName1));
 add (new SomeObject(objectName2));
    }};
} …
Run Code Online (Sandbox Code Playgroud)

java

7
推荐指数
1
解决办法
2340
查看次数

GC输出澄清

我正在运行具有以下设置的Java应用程序:
-XX:+ CMSParallelRemarkEnabled
-XX:+ UseConcMarkSweepGC
-XX:+ UseParNewGC
-XX:+ PrintGCApplicationStoppedTime
-XX:+ PrintGCApplicationConcurrentTime
-XX:+ PrintGCDetails
-XX:+ PrintGCTimeStamps
-XX: + PrintGCDateStamps
-XX:+ PrintHeapAtGC
-XX:+ PrintTenuringDistribution

我不确定如何解释相关的gc日志(如下).特别是:

  • GC调用= 31(满3)后的堆:这是否意味着有31个小的GC和3个完整的GC?

  • 什么触发应用程序线程停止的几个连续行总时间应用程序时间?是否有可能获得与这些线相关的时间戳?

GC日志:

Total time for which application threads were stopped: 0.0046910 seconds  
Application time: 0.7946670 seconds  
Total time for which application threads were stopped: 0.0002900 seconds  
Application time: 1.0153640 seconds  
Total time for which application threads were stopped: 0.0002780 seconds  
Application time: 1.0161890 seconds  
Total time for which …

java garbage-collection

7
推荐指数
1
解决办法
8926
查看次数

消息"在安全点期间合并的操作"的含义

Java应用程序使用以下标志运行:-XX:+ PrintSafepointStatistics,然后在标准输出控制台上生成以下行:

2安全点期间VM操作合并

有人在乎解释这是什么意思吗?

更一般地说 - 是否有一个Java参考手册在某处详细说明所有JVM标志,它们的使用,最重要的是,预期的输出,以及相关的解释?

java garbage-collection

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

Java Generics在编译时没有问题

下面的代码编译没有错误...一次我会更喜欢它失败:/

    Map <Character, Double> m = new HashMap <Character, Double>();
    m.get(new String());
Run Code Online (Sandbox Code Playgroud)

由于编译器知道此映射中使用的键是Character类型,因此使用String键应标记为不正确.

我错过了什么?

java generics

4
推荐指数
1
解决办法
327
查看次数

在文本文件中查找行号 - 无需打开文件

在一个非常大的文件中,我需要找到一个字符串的位置(行号),然后在该字符串的上方和下方提取2行.

要立即执行此操作 - 我启动vi,找到字符串,记下它的行号,退出vi,然后使用sed提取该字符串周围的行.

有没有办法简化这个过程...理想情况下,根本不需要运行vi.

linux

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

方法参数混乱

通常,时间方法需要多于3个参数,这些参数都是相同的类型,例如.

void mymethod (String param1, String param2, String param3)
Run Code Online (Sandbox Code Playgroud)

那么客户端很容易混淆参数命令,例如反转param1和param2:

mymethod (param2, param1, param3);
Run Code Online (Sandbox Code Playgroud)

......这可能是花费大量时间调试应该是一件小事的原因.关于如何避免这种错误的任何提示(除了单元测试)?

java

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

抛光用户界面

寻找一些"最终接触"的示例来增强现有(原始)用户界面.

也就是说,与应用程序的核心功能无关,而是所有这些小细节的例子,它们为应用程序提供了"抛光"外观(新字体,布局更改,更具描述性的标签......其他?)

目标平台将是一个移动平台(android/iphone).

请注意,我对颜色和形状组合的图形严重受损,所以任何太复杂的东西都可能完全通过我;)

iphone user-interface android

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