标签: java

休眠中级联和反向有什么区别,它们用于什么?

如何在休眠中使用级联和反向?定义它们的过程/标记是什么?它们是否相互关联,它们如何有用?

java hibernate cascade inverse

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

如何在不知道格式的情况下将String转换为Date?

我有个问题.我试图将一些字符串转换为日期,我不知道日期到达的格式.

它可能会yyyy.mm.dd hh:mm:ssMM.dd.yy hh:mm:ss等等.

如何将这些字符串转换为Date?我试过这个:

DateFormat formatter = new SimpleDateFormat("dd-MM-yyyy hh:mm:ss");
Date d = (Date)formatter.parse(someDate);
Run Code Online (Sandbox Code Playgroud)

但是当我打印出someDate时,它打印出来像这样:2010-08-05 12:42:48.638 CEST这意味着yyyy.mm.dd hh:mm:ss,但是当我运行上面的代码时,日期对象现在变得Sat Jan 31 00:42:48 CET 11奇怪,至少可以说.

有关如何正确格式化字符串的想法吗?

java format date

42
推荐指数
4
解决办法
9万
查看次数

最好的Eclipse代码格式化程序?

默认的Eclipse格式化程序以非常有趣的方式格式化我的Java代码.

例如:hello.show().x().y()奇怪地将其格式化为x().y(),并放在一个单独的行上.

还有其他基本格式化程序可以做得更好吗?

非常欢迎示例和链接.

java eclipse formatting eclipse-formatter

42
推荐指数
4
解决办法
8万
查看次数

滚动垃圾收集器登录java

是否可以在Sun JVM中滚动垃圾收集器日志?

目前我用以下方法生成日志

-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -verbose:gc -Xloggc:gc.log 
Run Code Online (Sandbox Code Playgroud)

但是我必须使用fifo队列和rotatelogs手动旋转它们以创建每天的新日志.我希望有一个更好的解决方案.

也许有一种方法可以从java里面访问这些日志条目,所以我可以将它们重定向到log4j?

编辑:使用fifo队列的解决方案不够好,因为如果从此队列读取的进程(例如rotatelogs)读取速度变慢,则会减慢整个jvm(显然Sun/Oracle会同步执行gc日志记录)

java logging garbage-collection

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

为什么Java中的许多Collection类扩展了抽象类并实现了接口?

为什么Java中的许多Collection类扩展了Abstract类并实现了接口(也是由给定的抽象类实现的)?

例如,类HashSet扩展AbstractSet并实现Set,但AbstractSet已经实现Set.

java collections

42
推荐指数
4
解决办法
4817
查看次数

ThreadPools中的异常处理

我有一个ScheduledThreadPoolExecutor似乎正在吃Exception.如果提交的Runnable抛出异常,我希望我的执行程序服务通知我.

例如,我希望下面的代码至少打印出IndexArrayOutOfBoundsException的stackTrace

threadPool.scheduleAtFixedRate(
  new Runnable() {
    public void run() {
      int[] array = new array[0];
      array[42] = 5;
    }
  },
  1000,
  1500L,
  TimeUnit.MILLISECONDS);
Run Code Online (Sandbox Code Playgroud)

作为一个附带问题.有没有办法为ScheduledThreadPoolExecutor编写一般的try catch块?

//////////原始问题的结尾//////////////

正如所建议的那样,以下装饰器运行良好

public class CatcherTask implements Runnable{

    Runnable runMe;

    public CatcherTask(Runnable runMe) {
        this.runMe = runMe;
    }

    public void run() {
        try {
            runMe.run();
        } catch (Exception ex){
            ex.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java exception-handling threadpool

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

为什么不建议每次都调用LoggerFactory.getLogger(...)?

我已经阅读了很多帖子和文档(在这个网站和其他地方),指出SFL4J日志记录的推荐模式是:

public class MyClass {
    final static Logger logger = LoggerFactory.getLogger(MyClass.class);

    public void myMethod() {
        //do some stuff
        logger.debug("blah blah blah");
    }
}
Run Code Online (Sandbox Code Playgroud)

我的老板更喜欢我们只使用一个包装器来拦截日志调用,并避免使用样板代码来声明每个类的记录器:

public class MyLoggerWrapper {
    public static void debug(Class clazz, String msg){
        LoggerFactory.getLogger(clazz).debug(msg));
    }
}
Run Code Online (Sandbox Code Playgroud)

并简单地使用它:

public class MyClass {

    public void myMethod() {
        //do some stuff
        MyLoggerWrapper.debug(this.getClass(), "blah blah blah");
    }
}
Run Code Online (Sandbox Code Playgroud)

我假设每次我们记录时实例化一个记录器有点贵,但我一直无法找到支持该假设的任何文件.除此之外他肯定说框架(LogBack或Log4J我们仍在决定)将"缓存"记录器,而且无论如何服务器的运行速度都远低于它们的容量,所以这不是问题.

有任何帮助指出这种方法的潜在问题?

java logging log4j logback slf4j

42
推荐指数
8
解决办法
6万
查看次数

为什么将类定义为final会改善JVM性能?

引自http://sites.google.com/site/gson/gson-design-document:

为什么Gson中的大多数课程都被标记为最终?

虽然Gson通过提供可插拔序列化器和反序列化器提供了相当可扩展的架构,但Gson类并未专门设计为可扩展.提供非最终类将允许用户合法地扩展Gson类,然后期望该行为在所有后续修订中工作.我们选择通过将类标记为final来限制这样的用例,并等到出现良好的用例以允许扩展性.标记类final也有一个很小的好处,即为Java编译器和虚拟机提供额外的优化机会.

为什么会这样?[如果我猜测:JVM知道类是最终的,它不维护方法覆盖表?还有其他原因吗?]

性能有什么好处?

这是适用于频率实例化的类(POJO?)还是适用于持有静态方法(实用类)的类?

定义为final的方法在理论上也可以提高性能吗?

有什么影响吗?

谢谢你,马克西姆.

java optimization performance jvm final

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

PDF生成Java库

我知道之前已经问过这个问题,但是我还没有确定哪个PDF生成框架可用于我当前的项目.

我的要求

  • 即时生成PDF文档(主要是订单,发票)
  • 基于Java
  • 易于布局
  • 应该是开源的
  • 易于改变布局

很多人似乎都在使用iText,但我对关注点分离有一些担忧(除了更改的许可证):在HTML上下文中有很好的MVC支持,我通常坚持使用Spring MVC和FreeMarker来分离逻辑和布局.我有点担心,使用iText,你最终会混合代码和布局.

我知道,Apache FOP在这里可能是一个解决方案,但是我再次发现XSLT很繁琐,而且我读到FOP在许多文档的大量组合中可能会很慢?

我也考虑过JasperReports,但根据我的理解,这更适合包含表格数据集的报告而不是单个文档,例如需要大量布局格式的发票?

有什么想法吗?

java pdf-generation jasper-reports itext apache-fop

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

过时的Java优化提示

有许多性能提示被Java编译器淘汰,尤其是Profile-guided优化.例如,这些平台提供的优化可以极大地(根据来源)降低虚拟函数调用的成本.VM还能够进行方法内联,循环展开等.

你现在使用的其他性能优化技术有哪些,但实际上已经被更现代的JVM中的优化机制淘汰了?

java optimization performance

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