小编cet*_*te3的帖子

编写一个应该"永远"运行的java程序时要考虑什么

我必须编写一个被认为是"永远"运行的程序,这意味着它不会定期终止.到目前为止,我总是编写将在一天结束时运行并终止的程序.程序必须进行一些同步,暂停n分钟而不是再次同步.

AFAIK我的当前实现应该没有问题,理论上它应该运行得很好,但我缺乏任何实际经验.

那么有没有"模式"或最佳实践来编写具有很长运行时间的非常强大且资源有效的Java程序?例如一个月/一年的运行时间之后会出现什么问题?

一些背景:

  • Java:1.7但编译为1.5
  • 操作系统:Windows(确切版本还不确定)

提前致谢

java

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

tinylog 的多个作者

我正在使用tinylog来满足我的日志记录需求,并且想知道是否有人知道登录到文件控制台的方法。当我使用下面的配置时,我只能在控制台上获得输出。当我删除.writer(new ConsoleWriter())日志记录时,仅对文件进行记录(正如人们所期望的那样)。

Configurator.currentConfig()
                          .level(LoggingLevel.valueOf("TRACE"))
                          .writer(new RollingFileWriter(file,10))
                          .writer(new ConsoleWriter())
                          .activate();
Run Code Online (Sandbox Code Playgroud)

java logging tinylog

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

Java Swing设计指南

我编写了一个使用Swing进行GUI的应用程序,通过GUI接受文件,解析输入,保存DataList并将其发送到服务器.我关心我的程序的整个设计,我认为这不是很好.我正在使用Netbeans来设计GUI,并且有一个MainClass启动该GUI 的类,并且具有对GUI的静态引用.还有一些ExecClasses做上述解析和发送数据.

                 +----------------------+
                 | MainClass (static)   |
                 |----------------------|
          +------+  -DataList           +-----+
          |      |                      |     |
    static|      +-+--------------+-----+     |static
  reference        |              |           |reference
          |        |new ()        | new ()    |
          |        |              |           |
          |        |              |           |
        +-+--------v----+      +--v-----------+--+
        |               |      |                 |
        | SwingGUIClass |      | ExecClasses     |
        |               |      |                 |
        +--/\-----------+      +-----------------+
           |
          Input file

这里简要概述MainClass:

public class MainClass {

    private static MainClass mainClass;
    private static ExecClass1 ex1;
    private …
Run Code Online (Sandbox Code Playgroud)

java user-interface swing design-patterns

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

使用泛型,数组和compareTo()时出错

我正在尝试编写一个通用容器,我必须使用一个数组.我收到以下错误:

Exception in thread "main" java.lang.ClassCastException: 
[Ljava.lang.Object; cannot be cast to [Ljava.lang.Comparable;
Run Code Online (Sandbox Code Playgroud)

这是我的代码的一部分:

class MinFo<T extends Comparable> {

private final T[] array;

MinFo(int size){
array = (T[]) new Object[size];

}

T get(){

if(this instanceof Comparable){

int tmpPos = getNotNull();
T tmp = array[tmpPos];
int pos;    
for(pos = tmpPos ; pos < array.length; getNotNull()){

    if(tmp.compareTo(array[pos]) > 0)
    tmp = array[pos];
}
Run Code Online (Sandbox Code Playgroud)

这导致我从类声明中删除"extends Comparable".现在我有一个不同的错误:

error: cannot find symbol
    if(tmp.compareTo(array[pos]) > 0)
          ^
symbol:   method compareTo(T)
location: variable tmp of type …
Run Code Online (Sandbox Code Playgroud)

java generics compare runtime-error compiler-errors

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