小编non*_*tor的帖子

即使我只有一个实现,我还应该编码到接口吗?

我认为标题本身就说明了 - 为什么我应该编写一个接口,然后实现一个具体的类,如果只有一个具体的实现该接口?

implementation interface

11
推荐指数
3
解决办法
634
查看次数

关于测试驱动开发但反转

我很欣赏TDD,并认为它是必不可少的,但只有在我编写源代码然后重构之后才能编写我的测试.我永远不会让自己先写测试然后通过测试来源.所以我总是扭转这个过程.这对我来说是不好的做法吗?和我一样反向做的有什么缺点?

language-agnostic testing tdd

8
推荐指数
2
解决办法
583
查看次数

Hibernate:事件监听器或拦截器,实践中的优缺点是什么?

我将实现一个功能,在Hibernate删除后更新表中的id.但我希望得到一些关于哪种方法更好的反馈.我正在更新值的表,Hibernate不知道它,所以我将不得不做一个直接的jdbc更新 - 是甚至可能.

hibernate

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

关于Java中的静态和非静态初始化块

我最初认为静态块是静态变量,但编译器允许A和B编译和运行,是什么给出的?
一个

   private static final Map<String,String> m = new HashMap<String,String>();

        {
            m.put("why", "does");
            m.put("this","work");
        }
Run Code Online (Sandbox Code Playgroud)

 private static final Map<String,String> m = new HashMap<String,String>();

        static{
               m.put("why", "does");
               m.put("this","work");
             }
Run Code Online (Sandbox Code Playgroud)

运行System.out.println(Main.m.toString());一个打印

{}

但在Yoda-speak中为B打印出同样的效果

{this = work,why = does}

java

8
推荐指数
2
解决办法
3107
查看次数

Long a = Long.valueOf(1)或Long a = 1L之间有什么区别吗?

只是想知道这个和其他相关的函数是否是那些不应该被打扰的东西之一,只是去了Long a = 1L; 简单明了.

java

6
推荐指数
2
解决办法
4771
查看次数

有没有人读过Java语言规范(JLS)?

我最近有一个关于字符串和字符串实习的问题 - 非常简单的问题我得到了快速回答.但是,看到我在pg上得到了同样问题的详细答案.所述JLS 3的29 版.这真是有趣的是,很多我们所提出的问题在JLS的回答,但它的这么无聊的600页读取(4 版是更大).你们有多少人最近为了一个悠闲的阅读而拿起了JLS?

java

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

关于实例变量初始化的线程安全性

我看到这个初始化实例变量的习惯很多

public class Test{
    private Long l = 1l;
    private MyClass mc = new MyClass();

    public Test(){}
    ...
 }
Run Code Online (Sandbox Code Playgroud)

但我更愿意

public class Test{
    private Long l;
    private MyClass mc;

    public Test(){
        l = 1l;
        mc = new MyClass();
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

考虑到这些是非最终变量,在线程安全方面,2种方法是等效的还是比另一种更"正确"?

java thread-safety

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

关于UML和白板

我试着产生正确的UML的时候,我们有我们的设计/白板会议,但我试图在结构良好的UML ALWAYS降解成UML的前瞻性,但是,可以理解到这些,在最房间有-A-小的解释.但这对于完美的工程师来说是否足够好呢?您是否总是在白板会话中生成结构良好的UML?对于那些可能认为不重要的开发人员,你有什么建议,以免他在设计模式书中看到它并且不知道wtf正在发生.

uml whiteboard

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

在Java中切换垃圾收集器

最近我听说Kirk Pepperdine谈到改变垃圾收集器以获得更好的性能 - 但究竟是什么意思以及是什么让一个垃圾收集器比另一个好或不同?

java garbage-collection

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

一个有效的equals(Object o)实现

在我写完标题之后,我读了这篇SO 帖子,但仍然决定在Java中讨论有关bug的bug实现问题.这是我的正常实施

@Override
        public boolean equals(Object o){
            if(o == null) return false;
            if(o instanceof CompositePk == false) return false;
            if(this == o) return true;
            CompositePk that = (CompositePk)o;
            return new EqualsBuilder().append(this.id, that.id)
                                      .append(this.bucketId, that.bucketId)
                                      .isEquals();
        }
Run Code Online (Sandbox Code Playgroud)

使用Apache的EqualsBuilder来完成平凡的事情.比这更容易的是我的Netbean自动生成的equals(o)实现

 @Override
        public boolean equals(Object obj){
        if (obj == null) {
                return false;
            }
            if (getClass() != obj.getClass()) {
                return false;
            }
            final TemplatesWrapper other = (TemplatesWrapper) obj;
            if (this.timeAdded != other.timeAdded && (this.timeAdded == null || !this.timeAdded.equals(other.timeAdded))) {
                return false; …
Run Code Online (Sandbox Code Playgroud)

java performance equals

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