Được chỉnh sửa ngày 25/10/2022.
Chào mừng các bạn đến với bài học Java đầu tiên. Đây là bài học trong chuỗi bài về lập trình ngôn ngữ Java của Yellow Code Books.
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.
Dạo Qua Một Chút Lịch Sử Của Java
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!!).
Các Đặc Điểm Chính Của Java
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.

Tại Sao Bạn Phải Chọn Java?
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.
Cú Pháp (Syntax) Đơn Giản
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,…
Hoàn Toàn Hướng Đối Tượng (OOP)
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.
Độc Lập Với Nền Tảng Hệ Điều Hành Và Phần Cứng
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.
Là Một Ngôn Ngữ Mạnh Mẽ
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é.
Môi Trường Phát Triển Phầm Mềm Java
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ì.
Hệ Điều Hành (Operating System)
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.
Java Development Kit (JDK)
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
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

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

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.
InteliJ

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é).
Kết Luận
Bạn vừa được làm quen với ngôn ngữ Java, hi vọng bạn sẽ yêu thích ngôn ngữ này và cùng mình đi hết chương trình học. Với việc tiếp cận đầy đủ ngôn ngữ Java, bạn sẽ dễ dàng làm quen với lập trình ứng dụng Android ở các bài học về Android nữa đấy.
Cảm ơn bạn đã đọc các bài viết của Yellow Code Books. Bạn hãy ủng hộ blog bằng cách:
– Đánh giá 5 sao ở mỗi bài viết nếu thấy thích.
– Comment bên dưới mỗi bài viết nếu có thắc mắc.
– Để lại địa chỉ email của bạn ở thanh bên phải để nhận được thông báo sớm nhất khi có bài viết mới.
– Chia sẻ các bài viết của Yellow Code Books đến nhiều người khác.
– Ủng hộ blog theo hướng dẫn ở thanh bên phải để blog ngày càng phát triển hơn.
Bài Kế Tiếp
Bạn sẽ được hướng dẫn cài đặt một Môi trường Phát triển Phần mềm cho ngôn ngữ Java này.
Cảm ơn bài viết của a rất bổ ích, em đọc và làm theo hướng dẫn của anh nửa buổi là hết 9 bài rồi!^^. Hi vọng anh viết tiếp cho tụi em có cơ hội học hỏi thêm ạ. Chúc anh sức khỏe!
Yeahhh! Cảm ơn bạn Nam AuDuong, nhất định mình sẽ đẩy nhanh tốc độ của các bài học Java hơn nữa.
là chính bạn biên soạn ebook sao? nếu thế thì sao không thử in sách luôn đi, mình ủng hộ tuyệt đối nhé, chứ xem ebook lâu rất mỏi mắt, còn đi photo ở ngoài chữ bé tí tẹo không xem được, bạn thấy sao??? ( nếu có dự định thì mình đặt trước nhé)
Cảm ơn bạn Duy. Mình cũng thích đọc sách giấy lắm. Mình rất thích ý tưởng này của bạn, nhưng trước mắt mình cần phải hoàn thành những bài viết còn lại của Java, rồi cũng sẽ có đủ bộ 3 ebook Java như đã hứa đã, sau đó mình sẽ nghĩ đến sách giấy nhé.
ok, mong website ngày càng được yêu mến ^^
mong website ngày càng được nhiều người biết đến. <3 <3
giờ e ms biểt đến wedsite.. ko biết admin còn ra những bài tiếp nữa ko v ạ ?
Chào bạn, mình vẫn thường xuyên viết bài, những lúc rảnh rỗi là mình viết thôi. Tuy nhiên dạo gần đây tốc độ ra bài mới của mình hơi chậm do không có nhiều thời gian. Nhưng mình cũng sẽ cố gắng điều chỉnh sao cho ngày một tốt hơn. Cảm ơn bạn đã tìm đến blog của mình. Mong bạn cũng chia sẻ blog đến nhiều người khác nữa nhé.
NetBeans giờ vẫn cập nhật và sếp?
Giờ ra đến phiên bản 11.1 rồi ạ :3
http://netbeans.apache.org/
Hihi thì bạn muốn dùng Netbeans thì cứ dùng thôi
uhmmmmm……Biết nói sao đây ạ!
Ngoài từ cảm ơn AD ra, mình không biết nói gì thêm nữa.
Nhờ có bạn mà mình đã trở thành một lập trình viên moblie tuy mới bắt đầu và chưa có kinh nghiệm gì hết và khởi diểm với mức lương chỉ có 3tr nhưng đó là thành quẩ mình cố gắng.
Rất mong bạn có thể chia sẻ nhiều hơn về kinh nghiệm của bạn cho người đọc có thêm nhiều kinh nghiệm.
Một lần nữa cảm ơn bạn rất nhiều(Nếu có thể bạn cho mình biết tên và tuổi được không ?).
Cảm ơn chia sẻ của bạn nhé. Mong rằng bạn sẽ cố gắng hơn nữa để có thể nhanh chóng nắm bắt thật nhiều các kiến thức lập trình Mobile, để còn thăng tiến trong sự nghiệp nữa. Về phía mình thì cũng sẽ cố gắng sắp xếp thời gian sao cho có thể là sẽ viết tiếp các bài viết cho các bạn tham khảo thôi mà.
Bài viết rất hay, mình sẽ gắn bó với blog dài dài. Cảm ơn tác giả đã chia sẻ những kiến thức và kinh nghiệm của mình, khi vọng một ngày không xa mình có thể ngồi rung đùi code chung với tác giả :33