Reference type and constructors Code in Java but should be readable also for c#...

Let's assume I have a class with some reference types. Example:

class MyClass {
   private int uniqueId;
   private double doubleValue;
   private MyReferenceType refType1;
   // ...

   public MyClass(int id, double doubleValue, MyReferenceType refType){
      this.id = id;
      this.doubleValue = doubleValue;
      this.refType1 = refType;  // seems dangerous - I want to create new object with the same state instead of adding a reference to an existing one...
   }
   // ...
}


The question is what approach of constructing such an object do you prefer:

Option 1
In constructor:

public MyClass(int id, double doubleValue, MyReferenceType refType){
      // ...
      this.refType1 = new MyReferenceType(refType); // MyReferenceType has some "copy" constructor
}


In code:

MyClass mc = new MyClass(1, 1.0, someRefTypeInstance);


or 

Option 2:
In constructor:

public MyClass(int id, double doubleValue, MyReferenceType refType){
      // ...
      this.refType1 = refType;
   }


In code:

MyClass mc = new MyClass(1, 1.0, new MyReferenceType(someRefTypeInstance));


Which approach do you find more reasonable and you use in practice?
Basically I use option 1. The usage of constructor is initialize the properties and creating an object in memory.  Value types sets the default values ​​(int = 0 etc), reference types sets  null. If you want use own default values, you must use own constructor. This is option 1 in your post. In my opinion this is the safest and most logical option.