Just an information drop: there is this thing called gnustep-libobjc2-baremetal. Yes this is about that odd language Objective-C,
Objective-C (yes the old Apple language before Swift,) especially the more modern Swift-compatible-Objective-C, has every feature Java has, but it does not rely on a huge runtime library for everything since it got rid of that virtual machine (uses native code instead) and the garbage collector (uses reference counting instead, with static code analysis used to insert 99.9% of the actual reference counting code at compile time through ARC.) The compiler also enforces a fairly rigid naming convention and class contract, throw tantrums if you deviate even a little from it. The mandatory runtime library itself, libobjc2, is no larger than libstdc++, and for the much larger but non mandatory "class library" Foundation.framework you can cherry pick classes and algorithms you actually need (or allow the linker to throw away unused classes and methods) to reduce code size significantly.
On a language feature level Swift is equivalent to Objective-C but with a more streamlined and concise syntax (since Objective-C have to maintain compatibility to C, being a strict superset of it.) However there is no ready to use libswift mandatory runtime library (Swift's version of libobjc2) that suits embedded development.