This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
Yes, you can declare a local reference variable using a type parameter, so your "T obj1" line is indeed valid syntax. But type parameters are always object types (i.e. class or interface), so obj1 will never be a primitive.
However, "new T()" is not allowed. Type parameters are only for compile-time (i.e. static) type checking, but they are "erased" during compilation and do not exist at runtime. As a result of this type erasure, the program does not know what T is at run-time, so it can't instantiate an object of type T. (This is similar to the other question you posed regarding the ClassCastException with toArray()'s return value.)