Java SE (Java Standard Edition) - Core Java
ใช้พัฒนา Stand-alone Applications เช่น Desktop Apps, Antivirus, Media Players เป็นต้น
แพ็กเกจหลักใน Java SE
| Package | ความรับผิดชอบ |
| java.lang | ภาษาพื้นฐาน (String, Math, Thread, Exception) |
| java.util | Collections, Date/Time (Legacy), Events, Utilities |
| java.io | File I/O, Streams, Serialization |
| java.math | BigInteger, BigDecimal (High precision) |
| java.nio | Non-blocking I/O, Channels, Buffers |
| java.net | Networking (Socket, URL, HTTP Client) |
| java.security | Encryption, Keys, Certificates, ACL |
| java.sql | JDBC API (Database connectivity) |
| java.awt | GUI Components (Abstract Window Toolkit) |
| java.text | Formatting, Parsing (Date, Number, Message) |
| java.rmi | Remote Method Invocation |
| java.time | Modern Date/Time API (Java 8+) |
| java.beans | JavaBeans Components |
Java EE (Java Enterprise Edition) - Jakarta EE
ใช้พัฒนา Enterprise Applications ระบบขนาดใหญ่ Web Applications, Distributed Systems
Specs/APIs หลักใน Java EE (Jakarta EE 8/9+)
| Category | Specifications |
| Web Layer | Servlets, WebSocket, Jakarta Faces (JSF), Expression Language |
| Web Services | JAX-RS (REST), JSON-P, JSON-B, JAXB (XML), JAX-WS (SOAP) |
| Enterprise | CDI (Dependency Injection), EJB, JPA (Persistence), JTA (Transactions) |
| Security | Jakarta Security, Authentication, Authorization |
| Messaging | JMS (Java Message Service) |
| Batch/Concurrency | Batch Processing, Concurrency Utilities |
ตารางเปรียบเทียบสรุป
| ด้าน | Java SE | Java EE / Jakarta EE |
| วัตถุประสงค์ | General purpose, Desktop, CLI | Enterprise, Web, Distributed |
| Runtime | JRE / JDK | Application Server (WildFly, GlassFish, TomEE, WebLogic) |
| Deployment | JAR, EXE | WAR, EAR |
| Scalability | Limited (Single JVM) | High (Clustering, Load Balancing) |
| Transaction | Manual / Local | JTA (Distributed Transactions) |
| Dependency Injection | Manual / Spring | CDI (Built-in) |
สถานะปัจจุบัน
- Java EE → Jakarta EE (ย้ายไป Eclipse Foundation ตั้งแต่ 2018)
- Namespace เปลี่ยน:
javax.* → jakarta.* (Jakarta EE 9+)
- Spring Framework เป็น Alternative ยอดนิยมแทน Full Java EE Stack
- MicroProfile เป็น Subset สำหรับ Microservices
คำแนะนำ
- เรียน Java SE ให้เก่งก่อน (Core, Collections, Streams, Concurrency, java.time)
- ทีนี้ค่อยเรียน Jakarta EE / Spring Boot สำหรับ Enterprise Development
- ปัจจุบันแนวโน้มใช้ Spring Boot หรือ MicroProfile มากกว่า Full Jakarta EE Server