小编Vin*_*C M的帖子

Collections.emptyMap()vs new HashMap()

我可以使用哪些情况Collections.emptyMap()?文档说如果我希望我的集合是不可变的,我可以使用这个方法.

为什么我想要一个不可变的空集合?有什么意义?

java collections

133
推荐指数
5
解决办法
4万
查看次数

Java:为什么我们应该在现实世界中使用BigDecimal而不是Double?

在处理现实世界的货币价值时,我建议使用BigDecimal而不是Double.But我没有一个令人信服的解释,除了"通常是这样做".

你能否对这个问题嗤之以鼻?

java floating-point double bigdecimal

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

Hashtable和Collections.synchronizedMap(HashMap)之间的区别

据我所知,java.util.Hashtable同步java.util.Map接口中的每个方法,同时Collections.synchronizedMap(hash_map)返回一个包装器对象,其中包含将调用委托给实际的同步方法hash_map(如果我错了,请纠正我).

我有两个问题:

  1. 它与同步每个方法和包装类有什么区别?有哪些方案可以选择其中一种?

  2. 我们这样做会发生什么Collections.synchronizedMap(hash_table)?这是否等于简单地使用正常java.util.Hashtable

java collections synchronization hashtable hashmap

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

当我们谈论排序时,自然顺序是什么?

什么是自然排序.假设我有一个Employee对象,其中包含姓名,年龄和加入日期,按自然顺序排序?

language-agnostic sorting

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

如何解压缩和重新打包WAR文件

我有一个WAR文件.我想打开它,编辑XML文件,删除一些罐子,然后重新打包.

我使用WINRAR打开WAR文件,然后删除了一些Jars并在WinRar中执行了"添加到存档"并创建了一个WAR.

当我在jboss文件夹中部署WAR时,我得到了一个例外.

   16:05:14,316 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) 
   MSC00001: Failed to start service jboss.deployment.unit."myapplication.war".
   STRUCTURE: org.jboss.msc.service.StartException in 
   service   jboss.deployment.unit."myapplication.war".STRUCTURE: 
   Failed to process phase STRUCTURE of deployment "myapplication.war"
Run Code Online (Sandbox Code Playgroud)

我如何重新包装WAR?

java web-applications war maven jboss7.x

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

为什么readObject和writeObject是私有的,为什么我会明确地写出瞬态变量?

我正在阅读有效Java中的序列化一章.

  1. 谁调用了readObject()和writeObject()?为什么这些方法被声明为私有?

  2. 以下是本书的一段代码

    // StringList with a reasonable custom serialized form
    public final class StringList implements Serializable {
        private transient int size = 0;
        private transient Entry head = null;
    
        //Other code
    
        private void writeObject(ObjectOutputStream s)
            throws IOException {
            s.defaultWriteObject();
            s.writeInt(size);
            // Write out all elements in the proper order.
            for (Entry e = head; e != null; e = e.next)
               s.writeObject(e.data);
            }
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

    是否有任何特定原因将变量size声明为瞬态,然后在writeObject方法中显式写入?如果它没有被宣布为瞬态,那么无论如何都会写出来,对吗?

java serialization effective-java

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

AOP是一种装饰模式吗?

我在接受采访时被问到这个问题.我清楚地知道装饰器模式是什么以及如何使用它.但我在采访中无法思考这个问题.

这是实际问题.

AOP是装饰模式的变体吗?AOP实施与商标装饰模式有何不同?

language-agnostic aop design-patterns decorator

27
推荐指数
3
解决办法
4927
查看次数

原始类型,无界外卡和泛型中使用Object之间的区别是什么

我正在阅读有效Java中关于泛型的章节.

帮助我理解之间的区别Set,Set<?>以及Set<Object>

以下段落摘自本书.

作为快速回顾,Set<Object>是一个参数化类型,表示一个可以包含任何类型的对象的集合,Set<?>是一个表示一个集合的通配符类型,它只能包含某些未知类型的对象,并且Set是一个原始类型,它选择了泛型类型系统.

什么是"某种未知类型"?是所有未知类型的类型Object?在那种情况下,Set<?>和之间的具体区别是Set<Object>什么?

java generics effective-java

25
推荐指数
1
解决办法
2694
查看次数

Java:何时在序列化期间添加readObjectNoData()?

我正在阅读"Effective Java"中的序列化章节.我试图理解书中的下一段.

如果您实现的类具有可序列化和可扩展的实例字段,那么您应该注意这一点.如果类的实例字段初始化为其默认值(整数类型为零,布尔值为false,对象引用类型为null),则会违反不变量,必须将此readObjectNoData方法添加到类中:

    // readObjectNoData for stateful extendable serializable classes
     private void readObjectNoData() throws InvalidObjectException {
             throw new InvalidObjectException("Stream data required");
     }
Run Code Online (Sandbox Code Playgroud)

我不确定上述陈述的含义.

为了测试这个,我创建了一个Person类(可序列化和可扩展)

   class Person   implements Serializable{

       private String name;

       private int age;

      Person() {
         this("default",1);
      }


     Person(String name, int y) {
       this.name = name;
        this.age = y;
      }
    }
Run Code Online (Sandbox Code Playgroud)

以及扩展它的类Employee.

     class Employee extends Person  {

      String address ;


    public Employee()
    {
        super();
        address ="default_address";
    }

    public Employee(String name , int age, String address)
    {
        super(name,age);
        this.address = address; …
Run Code Online (Sandbox Code Playgroud)

java serialization effective-java

23
推荐指数
1
解决办法
5617
查看次数

泛型中的"递归类型绑定"是什么意思?

我正在阅读有效Java [第27项]中关于泛型的章节.

书中有这一段:

允许(尽管相对罕见)类型参数受涉及该类型参数本身的某个表达式的限制.这就是所谓的递归类型绑定.

还有这个:

// Using a recursive type bound to express mutual comparability
public static <T extends Comparable<T>> T max(List<T> list) {...}
Run Code Online (Sandbox Code Playgroud)

什么是递归类型绑定以及上面的代码如何帮助实现相互可比性?

java generics effective-java

19
推荐指数
3
解决办法
5092
查看次数