Massively. Both platforms are only similar in the sense that they use the Java language and run bytecode, but that's about it. We don't think that one can call Java Card a Java subset like one would do for J2ME. Java Card should rather be seen as a Java implementation targeted at smart cards: The Java Card API is totally specific, except for a couple of downsized java.lang classes. The Java Card Virtual Machine doesn't support any of these features: dynamic class loading, bytecode verification, Security Manager, threads, garbage collection, JNI, etc. It's not even able to process Java class files.