Sim, existe a AWT. Mas ela é antiga e seu uso não é mais recomendado.
Se você não estiver falando só em componentes, existe também a Java 2D.
Fora da distribuição padrão do Java, existe a biblioteca SWT (usada no eclipse, como citou o colega do post ali embaixo).
Para desenhos 3D, existe binding para OpenGL: JOGL e LWJGL e até mesmo APIs poderosas como a JMonkeyEngine. A sun também iniciou um projeto chamado Java 3D, que não foi incorporado ao JDK. Além disso, para captura de imagens de Cam e scanner, também foi criado o projeto JMF.
Para receber parâmetros da linha de comando.
Quando você executa o seu programa assim:
java seuPrograma A B 10 20
O array de Strings vai receber “A” na posição 0, “B” na posição 1, “10” na posição 2 e “20” na posição 3.
Muitas outras linguagens tem o método main recebendo um array de Strings, incluindo o C#, C++ e o C.
O JDBC é dividido em duas áreas. Um conjunto de classes para acesso bruto ao banco de dados. E um conjunto de drivers, que variam de fabricante para fabricante. Então, a parte de acesso em si (Conections, Statements, Resultset) é nativa, enquanto o driver específico do banco de dados é de propriedade do fabricante do banco, e deve ser baixado separadamente.
A versão 1.0 foi lançada em 1995. Em seguida, veio a versão 2. A sun foi um pouco resiste em alterar esse número de versão até o Java 5. Então tivemos o J2SE 1, 1.1, 1.2, 1.3, 1.4. Dali em diante JSE5 e JSE6.
O java 5 representou um grande avanço na linguagem. Nele foram incluídas sintaxes novas, como a dos Generics, do for each, além dos enums. Ele realmente justificou um novo número de versão. Já no Java 6, não seria tão necessário, mas resolveram abandonar de vez essa história de ter 2 versões para um produto só.
Se ela for publica sim. Se não for pública, não. Você pode ter até mesmo mais de uma classe não publica dentro de um .java. Entretanto, é uma boa política manter um arquivo por classe principal (publica ou não).
O correto é “puder”. Ou “tiver o poder”.