I found a lot of comparisions here, but not this one; So, what is best in each one?
There's a full comparison at SQLite's site.
SQLite is much more restricted, as it only supports a small subset of SQL92, whereas Derby (now JavaDB) has full support of SQL92 and SQL99.