在最近我一直在研究的一些大型项目中,select一个或另一个(XML或注释)似乎变得越来越重要。 随着项目的增长,一致性对可维护性非常重要。 我的问题是,人们喜欢什么? 你喜欢基于XML还是Annotation? 或两者? 每个人都谈论XMLconfiguration地狱和如何注释是答案,怎么样的注释configuration地狱?
静态和非静态内部类有什么区别?
我已经下载,解压缩,并安装Eclipse 3.4.2与一些插件(注意,EPIC,Clearcase,QuantumDB,MisterQ)。 现在我发现在编辑Java项目时,代码完成不起作用。 如果我键入String. 然后按Ctrl + 空格popup显示“没有默认build议”和状态栏在底部显示“没有完成可用”。 有任何想法吗?
当在方法参数上使用final关键字时,我无法理解final关键字在哪里。 如果我们排除匿名类的使用,可读性和意向声明,那么对我来说似乎几乎是毫无价值的。 强调一些数据保持不变并不像看起来那么强劲。 如果参数是一个基元,那么它将不起作用,因为该参数作为一个值传递给该方法,并且改变它将不会影响该范围。 如果我们通过引用传递一个参数,那么引用本身就是一个局部variables,如果引用是从方法内部改变的,那么在方法范围之外不会有任何影响。 考虑下面的简单testing例子。 虽然该方法改变了给定的参考值,但该testing通过,但是没有效果。 public void testNullify() { Collection<Integer> c = new ArrayList<Integer>(); nullify(c); assertNotNull(c); final Collection<Integer> c1 = c; assertTrue(c1.equals(c)); change(c); assertTrue(c1.equals(c)); } private void change(Collection<Integer> c) { c = new ArrayList<Integer>(); } public void nullify(Collection<?> t) { t = null; }
我想知道当你使用@Transactional注解一个方法时究竟发生了什么? 当然,我知道Spring将在一个事务中包装这个方法。 但是,我有以下怀疑: 我听说Spring创build一个代理类 ? 有人可以更深入地解释这一点。 那个代理类实际上驻留了什么? 实际上课会发生什么? 我怎样才能看到Spring创build的代理类 我还在Spring的文档中看到: 注意:由于这个机制是基于代理的,所以只有通过代理进入的“外部”方法调用才会被拦截 。 这意味着即使被调用的方法标记为@Transactional ,“自调用”(即调用目标对象的其他方法的目标对象内的方法)也不会导致实际的事务处理。 资料来源: http : //static.springsource.org/spring/docs/2.0.x/reference/transaction.html 为什么只有外部方法调用将在事务中,而不是自调用方法?
请不要说EHCache或OSCache等。为了这个问题的目的,假设我想使用SDK来实现我自己的(边干边学)。 鉴于caching将在multithreading环境中使用,您将使用哪种数据结构? 我已经实现了一个使用LinkedHashMap和Collections#synchronizedMap ,但我很好奇,如果任何新的并发集合将是更好的候选人。 更新:当我发现这块金块时,我正在阅读Yegge的最新消息 : 如果你需要恒定的访问时间并且想维护插入顺序,那么你不能比LinkedHashMap做得更好,这是一个非常棒的数据结构。 如果有一个并发版本,唯一可能更好的方法是。 可惜。 在我使用上面提到的LinkedHashMap + Collections#synchronizedMap实现之前,我正在考虑几乎完全一样的事情。 很高兴知道我不只是忽略了一些东西。 根据目前的答案,这听起来像是我最好的select,高度并发的LRU将使用LinkedHashMap使用的一些相同的逻辑来扩展ConcurrentHashMap 。
什么是获得当前date/时间的最佳方式?
我在下面写了两种方法来自动selectN种不同的颜色。 它通过在RGB立方体上定义分段线性函数来工作。 这样做的好处是你也可以得到一个渐进的规模,如果这是你想要的,但是当N变大时,颜色可以开始看起来相似。 我也可以想象将RGB立方体均匀地细分为一个点阵,然后绘制点。 有谁知道任何其他方法? 我排除了定义一个列表,然后循环通过它。 我也应该说,如果他们发生冲突或者看起来不好,我一般不会在意,他们只是在视觉上不同而已。 public static List<Color> pick(int num) { List<Color> colors = new ArrayList<Color>(); if (num < 2) return colors; float dx = 1.0f / (float) (num – 1); for (int i = 0; i < num; i++) { colors.add(get(i * dx)); } return colors; } public static Color get(float x) […]
如何在Java中使用可选参数? 什么规范支持可选参数?
对于Spring 的控制反转 ( IoC )是如何工作的,我有点困惑。 假设我有一个名为UserServiceImpl的服务类实现了UserService接口。 这将是@Autowired ? 在我的Controllers操作中,我将如何instantiate此服务的一个instance ? 我会做下面的事吗? UserService userService = new UserServiceImpl();