Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

ความแตกต่างระหว่าง Java SE และ Java EE


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.utilCollections, Date/Time (Legacy), Events, Utilities
java.ioFile I/O, Streams, Serialization
java.mathBigInteger, BigDecimal (High precision)
java.nioNon-blocking I/O, Channels, Buffers
java.netNetworking (Socket, URL, HTTP Client)
java.securityEncryption, Keys, Certificates, ACL
java.sqlJDBC API (Database connectivity)
java.awtGUI Components (Abstract Window Toolkit)
java.textFormatting, Parsing (Date, Number, Message)
java.rmiRemote Method Invocation
java.timeModern Date/Time API (Java 8+)
java.beansJavaBeans Components

Java EE (Java Enterprise Edition) - Jakarta EE

ใช้พัฒนา Enterprise Applications ระบบขนาดใหญ่ Web Applications, Distributed Systems

Specs/APIs หลักใน Java EE (Jakarta EE 8/9+)

CategorySpecifications
Web LayerServlets, WebSocket, Jakarta Faces (JSF), Expression Language
Web ServicesJAX-RS (REST), JSON-P, JSON-B, JAXB (XML), JAX-WS (SOAP)
EnterpriseCDI (Dependency Injection), EJB, JPA (Persistence), JTA (Transactions)
SecurityJakarta Security, Authentication, Authorization
MessagingJMS (Java Message Service)
Batch/ConcurrencyBatch Processing, Concurrency Utilities

ตารางเปรียบเทียบสรุป

ด้านJava SEJava EE / Jakarta EE
วัตถุประสงค์General purpose, Desktop, CLIEnterprise, Web, Distributed
RuntimeJRE / JDKApplication Server (WildFly, GlassFish, TomEE, WebLogic)
DeploymentJAR, EXEWAR, EAR
ScalabilityLimited (Single JVM)High (Clustering, Load Balancing)
TransactionManual / LocalJTA (Distributed Transactions)
Dependency InjectionManual / SpringCDI (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