For the specification of CollisionClass or other core game-code things, open up the Starsector API, located in starsector-core, starsector.api.zip.
Just unzip that file somewhere and use a search tool to look for terms in it (I'm using
Abacre's Advanced Find And Replace, which isn't free but is awesome, but there are lots of freeware text-search tools and grep parsers out there).
Anyhow, as to the specifics:
public enum CollisionClass {
NONE,
RAY,
RAY_FIGHTER,
FIGHTER,
SHIP,
PROJECTILE_NO_FF,
PROJECTILE_FF,
MISSILE_NO_FF,
MISSILE_FF,
HITS_SHIPS_AND_ASTEROIDS,
PROJECTILE_FIGHTER,
ASTEROID,
PLANET,
GAS_CLOUD,
STAR,
;
}
Now, as to your specific questions.
what exactly do different collisionclass mean?
Essentially, it does what it sounds like; each CollisionClass defines what type of CombatEntityAPI this object (in this case, a missile) can collide with. Why you'd want to have projectiles collide with PLANET, GAS_CLOUD, or STAR, I have no idea, but you can.
is it possible to make a missile NOT explode on hit, but keep flying into wall instead?
You can easily make a missile not explode on hit, by setting its CollisionClass to NONE, in its PROJ file, like this:
"collisionClass":"NONE",
"collisionClassByFighter":"NONE",
Now you have a missile that will never do a collision check at all... unless you write some code to do something if the projectile's close enough to (thing).