Explain the static keyword, inheritance, abstraction, polymorphism, method overloading vs overriding, auto-boxing, and how Java relationships work, and also cover DDL vs DML and basic SQL queries.
For the SQL portion, use the provided users, roles, and user_roles tables. Return one row per enabled user, including users with no active roles.
user_id, user_name, active_role_count, and active_roles.user_id ascending; list role names alphabetically.| Column | Type | Description |
|---|---|---|
| user_idPK | INTEGER | Unique user identifier |
| user_name | VARCHAR(100) | User display name |
| is_enabled | BOOLEAN | Whether the user is enabled |
| Column | Type | Description |
|---|---|---|
| role_idPK | INTEGER | Unique role identifier |
| role_name | VARCHAR(100) | Role display name |
| Column | Type | Description |
|---|---|---|
| user_idPK | INTEGER | Referenced user identifier |
| role_idPK | INTEGER | Referenced role identifier |
| is_active | BOOLEAN | Whether the assignment is active |