Giải pháp chuyển đổi số trọn gói cho doanh nghiệp Việt
Nào chúng ta hãy bắt đầu làm quen với chương trình học này thông qua việc tìm hiểu sơ lược về ngôn ngữ Java của bài hôm nay.
Java được tạo ra bởi James Gosling và cộng sự của ông ở Sun Microsystem vào năm 1991 (sau này Oracle mua lại Sun Microsystem vào năm 2010). Ban đầu ngôn ngữ này có tên là Oak (Cây sồi – Do bên ngoài công ty lúc bấy giờ có trồng nhiều cây này – Các tài liệu khác nói vậy, mình chỉ copy thôi). Oak chính thức được đổi tên thành Java vào năm 1995 (chắc do mấy cây sồi bị đốn sạch – Mình đùa đấy!!).
Java là một Ngôn Ngữ Lập Trình Hướng Đối Tượng (OOP). Do đó khi lập trình với ngôn ngữ này bạn sẽ phải làm việc với các lớp (Class). Cú pháp của Java được vay mượn nhiều từ C/C++ nhưng lại có đặc tính hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn, nên việc tiếp cận Java sẽ dễ dàng hơn C/C++. Nếu bạn nào đã có nền tảng về C/C++ thì chắc chắn sẽ dễ dàng đón nhận và tiếp cận Java hơn.
Khẩu hiệu nổi tiếng của Java chắc bạn cũng biết (hoặc hôm nay sẽ biết), đó là Viết một lần, Chạy mọi nơi. Viết ở đây là viết code, còn chạy nghĩa là thực thi ứng dụng. Điều này có nghĩa là, phần mềm được viết bằng ngôn ngữ Java có thể chạy được trên mọi nền tảng (platform) khác nhau. Để làm được điều này thì Java đưa ra khái niệm Máy ảo Java, hay JVM (Java Virtual Machine). Khi bạn biên dịch một chương trình, thay vì mã nguồn sẽ được dịch trực tiếp ra mã máy như nhiều ngôn ngữ khác, thì với Java, mã nguồn đó sẽ được dịch thành mã có tên là bytecode trước. Bytecode này sau đó sẽ được bạn phân phối đến các thiết bị khác nhau, chính JVM được cài sẵn ở các thiết bị đó sẽ dịch tiếp bytecode này thành mã máy giúp bạn. Có thể mô tả quá trình biên dịch này bằng sơ đồ sau.

Tiếp theo đây chúng ta sẽ cùng điểm qua các điểm mạnh của Java để bạn có thể hiểu rõ hơn về ngôn ngữ này.
Như mình đã nói ở trên đây, do Java được kế thừa từ C/C++, nên sẽ vẫn giữ được sự đơn giản ở cú pháp so với những gì C/C++ đã đạt được.
Mặt khác Java còn giảm bớt các khái niệm “đau đầu” mà C/C++ đang có, làm cho ngôn ngữ này trở nên đơn giản và dễ sử dụng hơn nữa. Có thể kể đến một vài sự giảm bớt này như là: bỏ đi các câu lệnh Goto, không còn khái niệm Nạp Chồng Toán Tử (Overload Operator), bỏ đi khái niệm Con Trỏ (Pointer), bỏ file Header, bỏ luôn Union, Struct,…
Cũng có nhiều ý kiến xoay quanh hai chữ “hoàn toàn” này. Thực tế thì chỉ có các kiểu dữ liệu nguyên thủy của Java như int, long, float,… thì không hướng đối tượng. Ngoài các kiểu dữ liệu nguyên thủy đó ra thì khi tiếp xúc với Java, bạn luôn luôn phải suy nghĩ và làm việc theo hướng đối tượng. Vậy hướng đối tượng là gì? Bạn sẽ hiểu rõ thôi vì chúng ta sẽ bắt đầu nói đến hướng đối tượng từ bài học số 15.
Như đã nói ở trên, khẩu hiệu của Java là Viết một lần, Chạy mọi nơi. Điều này đã giúp cho ngôn ngữ Java được độc lập với nền tảng phần cứng. Khi lập trình với Java, bạn sẽ không phải suy nghĩ đến sự tương thích với kiến trúc của từng loại hệ điều hành hay phần cứng, chính JVM sẽ giúp các bạn lo điều này.
Nói Java mạnh mẽ là bởi vì ngôn ngữ này hỗ trợ lập trình viên rất nhiều điều. Đầu tiên, như mình có nhắc đến ở trên, Java có thể chạy trên nhiều nền tảng. Java còn có Bộ Dọn Rác (Garbage Collection) giúp tự động dọn dẹp các đối tượng đã qua sử dụng để giải phóng bộ nhớ, mà với các ngôn ngữ khác, lập trình viên phải thực hiện việc giải phóng này một cách thủ công. Java còn hỗ trợ chạy đa nhiệm (Multithread) rất tốt. Và còn nhiều thứ khác chúng ta sẽ cùng nhau tìm hiểu qua từng bài học cụ thể nhé.
Cũng giống như mình đã định nghĩa bên các bài học Android: Môi trường Phát triển Phần mềm là một môi trường mà ở đó Nhà Phát Triển Phần Mềm có được những công cụ cần thiết nhất để viết ra một ứng dụng hoàn chỉnh. Vì bài học liên quan đến lập trình Java, do đó chúng ta sẽ tập trung vào tìm hiểu Môi trường Phát triển Phần mềm Java (Java Development Environment) sẽ bao gồm những gì.
Dù cho bạn đang lập trình dựa trên hệ điều hành nào, Windows, Linux hay Mac, thì bạn đều có thể cài đặt được một Môi trường Phát triển Phần mềm cho Java.
Bộ Công Cụ Phát Triển Cho Java (JDK), bộ công cụ này sẽ cung cấp cho bạn các công cụ cần thiết để biên dịch, thực thi, và có cả môi trường để ứng dụng Java của bạn có thể chạy lên nữa.
Công cụ Biên dịch mà mình muốn nói đến ở đây chính là một IDE (Integrated Development Environment). Hay nói cách khác là một công cụ để bạn có thể viết code Java lên đó, công cụ này có thể đủ mạnh để ngoài việc bạn có thể code được, nó còn giúp kiểm tra lỗi cú pháp khi code, giúp liên kết với JDK để tự động biên dịch và thực thi chương trình.
Không giống như bên bài học Android mình chỉ định các lập trình viên sử dụng Android Studio để biên dịch. Với Java các bạn có nhiều chọn lựa hơn, các bạn có thể sử dụng một trong các công cụ sau đây.

Netbeans là một IDE mã nguồn mở, mạnh mẽ, miễn phí. Tuy nhiên hiện tại mình thấy xung quanh dường như ít sử dụng công cụ này. Nhưng có nhiều bạn cũng liên hệ mình và nói rằng Netbeans vẫn tiếp tục được cập nhật phiên bản mới, chứ không lỗi thời gì cả. Không sao, nếu bạn thích tìm hiểu và trải nghiệm, thì cứ dùng Netbeans nhé. Còn như bài học của mình mình sẽ chỉ giới hạn vào việc nói đến cụ thể ở 2 công cụ tiếp theo dưới đây.

Eclipse cũng là một IDE mã nguồn mở, sự phổ biến của nó không kém gì Netbeans, thậm chí có thời gian Eclipse còn được sử dụng phổ biến hơn. Và tất nhiên công cụ này cũng miễn phí. Nhưng có thể nói rằng dù cho Eclipse một thời rất được cộng đồng Java sử dụng, thì với công cụ InteliJ mới mẻ mà mình sẽ nói đến ở mục dưới đây, có thể sẽ làm cho Eclipse dần bị lỗi thời không kém gì Netbeans.

Dù sinh sau đẻ muộn, nhưng InteliJ nhanh chóng chiếm cảm tình của cộng đồng lập trình Java nhờ vào sự mạnh mẽ và giao diện hiện đại của nó. Đặc biệt từ khi Android Studio chính thức được Google giới thiệu là công cụ lập trình ứng dụng Android chính thống, mà Android Studio lại được xây dựng từ InteliJ, nên IDE này bỗng dưng trở nên rất hot. InteliJ có hai phiên bản, có phí và miễn phí. Và dĩ nhiên chúng ta chỉ cần bản miễn phí thôi là dùng đủ tốt rồi nhé.
Ngoài 3 IDE phổ biến được nói ở trên, còn có nhiều công cụ khác hỗ trợ lập trình Java. Bạn có thể chọn cho mình một IDE, nhưng các bài học trong chương trình của mình sẽ thống nhất chọn InteliJ (Các phiên bản ban đầu của bài học thì mình chỉ dùng Eclipse thôi, nhưng từ khi chuyển sang InteliJ thì mình rất thích em nó, cho nên mình quyết định chỉnh sửa lại tất cả các bài học để chỉ hoạt động trên InteliJ. Nếu bạn có đang code trên Eclipse hay thậm chí Netbeans, bạn vẫn có thể tiếp tục theo dõi các bài viết trên InteliJ của mình mà không có bất kì trở ngại nào cả nhé).
Chưa có câu hỏi nào cho bài này.