Is jvm software based? If so in which language is jvm coded?
Kind of... it's more like a standard that has resulted in a number of pieces of software. You cannot be 100% certain what language the JVM is written in, but in most cases, I'd bet it was written in C/C++.
JVM stands for "Java Virtual Machine". It's a virtualised environment that provides Java applications with a way of running in the same way across multiple different physical environments.
The idea is that Java code is compiled and is executed by the JVM. The JVM provides the same look and feel for the actual code regardless of whether it's being run on a massively parallel mainframe or a single processor PC running Windows XP.
These days the JVM is being used for languages other than Java (Scala, for example).
To answer what I think is your question, the JVM is written in C++. The majority of the Java libraries are written in Java, however.
Same applies to .NET: The code CLR/VM is written in C++, but the class libs are written in C#.
Almost all JVMs are implemented in software. However, a JVM is anything that interprets Java bytecode in a manner that complies with the JVM specification, and there are some hardware-based JVMs as well.
Java Virtual Machine is a specification for how a virtual machine needs to behave by interpreting bytecode as instructions in the virtual machine's operation set. If there's some mechanism that interprets the bytecode and behaves the right way, it is a JVM, no matter how it's implemented.
That means a JVM can be implemented in a program, or it can equally well be implemented in hardware. If you want to know which is the case, you need to be talking about some specific implementation.