Q:

Why can we instantiate a stack but not a queue?

Why I can instantiate a stack like this:
Stack<Integer> stack = new Stack<>();

But can't instantiate a queue like this:
Queue<Integer> queue = new Queue<>();

Is that because queue is a interface while stack is a object?
If so, why we say that everything in java is an object?

A:

A Queue is an interface, meaning we cannot construct a Queue directly.
We can create object using implementing classes,  implements the Queue interface, like one of the following: AbstractQueue, ArrayBlockingQueue, ConcurrentLinkedQueue, DelayQueue, LinkedBlockingQueue, LinkedList, PriorityBlockingQueue, PriorityQueue, or SynchronousQueue.
Stack is the class and can be instantiated directly.
This is by design and with Queue, lot more options are there using implementing classes.

A:

That is because Queue is an interface. You can only instantiate (non-abstract) classes. Nevertheless, the resulting instance is still a Queue.
Queue<Integer> queue = new LinkedList<>();

Same with List
List<Integer> list = new LinkedList<>();

Stack on the other hand is a class, like Vector (from which it inherits)  or ArrayList or LinkedList.

If so, why we say that everything in java is an object?

We should probably not be saying that (seeing that there also non-objects like int), but more to your point, any instance of Queue (which has to be an instance of something like LinkedList as well) is an Object (as well as a Collection and an Iterable).
Object is the root of all object types in Java. So in that sense, everything is an Object in Java (some other languages do not have a common root type for all objects).

