Is it possible to get a list of system apex classes like String, Datetime etc. and a list of their methods, fields etc. using soap or metadata or tooling api in java?
Apex Code doesn't have proper "reflection" like actual Java. Furthermore, the system classes do not expose their source code. Many system classes are actually not real classes, but pseudo-classes that violate the normal rules of a class.
For example, with a normal class, you can say something like
x instanceOf DateTime), but you can't do that with System (e.g.
x instanceOf System won't compile).
It has static methods like
System.now(), but you get unusual compiler errors when you try to use it as a class (e.g.
new System() gives an error "Invalid type: System" instead of "Type cannot be constructed: DateTime" from
new DateTime() or "Invalid constructor", etc).
Since they're not real classes, we couldn't reflect them anyways. The syntax is made in a way that facilitates the appearance of being real classes, but not being actual classes.