如何在休眠中使用级联和反向?定义它们的过程/标记是什么?它们是否相互关联,它们如何有用?
我有个问题.我试图将一些字符串转换为日期,我不知道日期到达的格式.
它可能会yyyy.mm.dd hh:mm:ss或MM.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奇怪,至少可以说.
有关如何正确格式化字符串的想法吗?
默认的Eclipse格式化程序以非常有趣的方式格式化我的Java代码.
例如:hello.show().x().y()奇怪地将其格式化为x()和.y(),并放在一个单独的行上.
还有其他基本格式化程序可以做得更好吗?
非常欢迎示例和链接.
是否可以在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中的许多Collection类扩展了Abstract类并实现了接口(也是由给定的抽象类实现的)?
例如,类HashSet扩展AbstractSet并实现Set,但AbstractSet已经实现Set.
我有一个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) 我已经阅读了很多帖子和文档(在这个网站和其他地方),指出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我们仍在决定)将"缓存"记录器,而且无论如何服务器的运行速度都远低于它们的容量,所以这不是问题.
有任何帮助指出这种方法的潜在问题?
引自http://sites.google.com/site/gson/gson-design-document:
为什么Gson中的大多数课程都被标记为最终?
虽然Gson通过提供可插拔序列化器和反序列化器提供了相当可扩展的架构,但Gson类并未专门设计为可扩展.提供非最终类将允许用户合法地扩展Gson类,然后期望该行为在所有后续修订中工作.我们选择通过将类标记为final来限制这样的用例,并等到出现良好的用例以允许扩展性.标记类final也有一个很小的好处,即为Java编译器和虚拟机提供额外的优化机会.
为什么会这样?[如果我猜测:JVM知道类是最终的,它不维护方法覆盖表?还有其他原因吗?]
性能有什么好处?
这是适用于频率实例化的类(POJO?)还是适用于持有静态方法(实用类)的类?
定义为final的方法在理论上也可以提高性能吗?
有什么影响吗?
谢谢你,马克西姆.
我知道之前已经问过这个问题,但是我还没有确定哪个PDF生成框架可用于我当前的项目.
我的要求
很多人似乎都在使用iText,但我对关注点分离有一些担忧(除了更改的许可证):在HTML上下文中有很好的MVC支持,我通常坚持使用Spring MVC和FreeMarker来分离逻辑和布局.我有点担心,使用iText,你最终会混合代码和布局.
我知道,Apache FOP在这里可能是一个解决方案,但是我再次发现XSLT很繁琐,而且我读到FOP在许多文档的大量组合中可能会很慢?
我也考虑过JasperReports,但根据我的理解,这更适合包含表格数据集的报告而不是单个文档,例如需要大量布局格式的发票?
有什么想法吗?
有许多性能提示被Java编译器淘汰,尤其是Profile-guided优化.例如,这些平台提供的优化可以极大地(根据来源)降低虚拟函数调用的成本.VM还能够进行方法内联,循环展开等.
你现在使用的其他性能优化技术有哪些,但实际上已经被更现代的JVM中的优化机制淘汰了?
java ×10
logging ×2
optimization ×2
performance ×2
apache-fop ×1
cascade ×1
collections ×1
date ×1
eclipse ×1
final ×1
format ×1
formatting ×1
hibernate ×1
inverse ×1
itext ×1
jvm ×1
log4j ×1
logback ×1
slf4j ×1
threadpool ×1