Java là gi

Mục lục

  • Ngôn ngữ lập trình Java là gì?
    • Ngôn ngữ lập trình Javascript và Java
    • Điểm tương đồng giữa ngôn ngữ lập trình và Javascript Java
    • Điểm khác biệt giữa ngôn ngữ lập trình và Javascript Java
  • Đặc điểm của ngôn ngữ lập trình Java
  • Ứng dụng của ngôn ngữ lập trình Java
    • Các ứng dụng yêu cầu tính bảo mật cao
    • Các ứng dụng cho hệ điều hành Android
    • Điện toán đám mây
    • Không gian nhúng
    • Trong lĩnh vực giao dịch chứng khoán
  • Học ngôn ngữ lập trình Java
    • Java core
    • JSP và Servlet
    • Enterprise và Java Beans
    • JDBC và RMI 
  • Tài liệu tự học ngôn ngữ lập trình Java
    • Giáo trình ngôn ngữ lập trình java cơ bản của Đại học Quốc gia Hà Nội
    • Tài liệu ngôn ngữ lập trình Java tiếng Việt
    • Think Java
    • Học trực tiếp từ website của Java
    • Các blog học lập trình Java từ cơ bản đến nâng cao

Ngôn ngữ lập trình Java là gì?

Java là một ngôn ngữ lập trình hướng đối tượng (OOP) và dựa trên các lớp (class), ban đầu được phát triển bởi Sun Microsystems do James Gosling khởi xướng và phát hành vào năm 1995. Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy.

Ngôn ngữ lập trình Javascript và Java

Java là gi

Ắt hẳn nhiều người sẽ nghĩ Java và Javascript có mối quan hệ mật thiết với nhau: JavaScript là một script trong Java, hay Javascript là một phiên bản nâng cấp từ Java. Tuy nhiên trên thực tế hai ngôn ngữ này không hề liên quan gì đến nhau nếu xét về mặt kỹ thuật.

Về sự tương đồng trong tên gọi, đây là một chiêu thức Marketing có chủ đích. JavaScript, được thiết kế bởi Brendan Eich của Netscape, ban đầu gọi là LiveScript, nhưng một thỏa thuận marketing (hay có thể gọi vui là một “mánh khóe”) giữa Netscape và Sun đã khiến Netscape đổi tên thành JavaScript, vì mục đích hợp tác thương hiệu. Đây là một nước đi thông minh khi Javascript khiến mọi người tin rằng nó và Java – ngôn ngữ lập trình nổi tiếng và thịnh hành lúc bây giờ, có liên quan đến nhau.

Bạn có thể cho rằng JavaScript có được ngày hôm nay là nhờ vào sự nổi tiếng của Java. Nhưng có lẽ không phải ai cũng đồng tình với quan điểm này. Điều cần nhấn mạnh ở đây là ngoài quy ước đặt tên, hai ngôn ngữ không có nhiều điểm chung.

Điểm tương đồng giữa ngôn ngữ lập trình và Javascript Java

Như đã đề cập bên trên, về mặt kỹ thuật hai ngôn ngữ lập trình này không có nhiều điểm tương đồng. Có thể điểm qua một số nét giống nhau ở cả 2 ngôn ngữ lập trình này như sau:

  • Cả Java và JavaScript thường được sử dụng nhiều nhất trong các ứng dụng phía máy khách.
  • Cả Java và JavaScript đều sử dụng cú pháp C.
  • JavaScript sao chép một số quy ước đặt tên của Java.

Điểm khác biệt giữa ngôn ngữ lập trình và Javascript Java

  • Java là ngôn ngữ lập trình tĩnh, hướng đối tượng, hoạt động trên nhiều nền tảng. JavaScript là ngôn ngữ lập trình động (hay ngôn ngữ kịch bản – scripted language) được sử dụng để làm cho các trang web và ứng dụng trở nên sinh động.
  • Java dựa trên lớp (class), còn JavaScript thì động.
  • Java là một ngôn ngữ độc lập. JavaScript phụ thuộc nhiều hơn, nghĩa là nó hoạt động với HTML và CSS trên các trang web để tạo nội dung động.

Đặc điểm của ngôn ngữ lập trình Java

Là một ngôn ngữ lập trình hướng đối tượng vì vậy Java cũng có 4 đặc điểm chung sau đây:

Tính trừu tượng (Abstraction): là tiến trình xác định và nhóm các thuộc tính, các hành động liên quan đến một thực thể đặc thù, xét trong mối tương quan với ứng dụng đang phát triển.

Tính đa hình (Polymorphism): cho phép một phương thức có các tác động khác nhau trên nhiều loại đối tượng khác nhau. Với tính đa hình, nếu cùng một phương thức ứng dụng cho các đối tượng thuộc các lớp khác nhau thì nó đưa đến những kết quả khác nhau. Bản chất của sự việc chính là phương thức này bao gồm cùng một số lượng các tham số.

Tính kế thừa (Inheritance): điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại.

Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy.

Ngoài ra Java còn có một số đặc điểm sau:

Độc lập nền (Write Once, Run Anywhere): Không giống như nhiều ngôn ngữ lập trình khác như C và C ++, khi Java được biên dịch, nó không được biên dịch sang mã máy cụ thể, mà thay vào đó là mã bytecode chạy trên máy ảo Java (JVM). Điều này đồng nghĩa với việc bất cứ thiết bị nào có cài đặt JVM sẽ có thể thực thi được các chương trình Java.

Đơn giản: Học Java thật sự dễ hơn nhiều so với C/C++, nếu bạn đã quen với các ngôn ngữ lập trình hướng đối tượng thì việc học Java sẽ dễ dàng hơn. Java trở nên đơn giản hơn so với C/C++ do đã loại bỏ tính đa kế thừa và phép toán con trỏ từ C/C++.

Bảo mật: Java hỗ trợ bảo mật rất tốt bởi các thuật toán mã hóa như mã hóa một chiều (one way hashing) hoặc mã hóa công cộng (public key)…

Thông dịch: Java là một ngôn ngữ lập trình vừa biên dịch vừa thông dịch. Chương trình nguồn viết bằng ngôn ngữ lập trình Java có đuôi *.java và được biên dịch thành tập tin có đuôi *.class sau đó được trình thông dịch thông dịch thành mã máy.

Đa luồng: Với tính năng đa luồng Java có thể viết chương trình có thể thực thi nhiều task cùng một lúc. Tính năng này thường được sử dụng rất nhiều trong lập trình game.

Hướng đối tượng: Hướng đối tượng trong Java tương tự như C++ nhưng Java là một ngôn ngữ lập trình hướng đối tượng hoàn toàn. Tất cả mọi thứ đề cập đến trong Java đều liên quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp. Hướng đối tượng trong Java không có tính đa kế thừa (multi inheritance) như trong C++ mà thay vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa.

Hiệu suất cao:Nhờ vào trình thu gom rác (garbage collection), giải phóng bộ nhớ đối với các đối tượng không được dùng đến.

Linh hoạt: Java được xem là linh hoạt hơn C/C ++ vì nó được thiết kế để thích ứng với nhiều môi trường phát triển.

Ứng dụng của ngôn ngữ lập trình Java

Các ứng dụng yêu cầu tính bảo mật cao

Các ứng dụng sử dụng trong giao dịch của các ngân hàng yêu cầu tính bảo mật cao. Họ cần bảo mật tối đa thông tin tài khoản của khách hàng. Trên thế giới đã có các ngân hàng sử dụng Java để viết các hệ thống giao dịch điện tử như Goldman Sachs, Citigroup, Barclays, Standard Chartered … Ngoài viết các ứng dụng giao dịch, họ còn sử dụng Java trong việc khác như hệ thống xác nhận và kiểm toán, các dự án xử lý dữ liệu …

Java là gi

Ngôn ngữ lập trình Java được đánh giá là một ngôn ngữ có độ bảo mật cao. Chính vì vậy, nó thường được sử dụng vào các ứng dụng của ngành dịch vụ tài chính hay ngân hàng.

Các ứng dụng cho hệ điều hành Android

Java hỗ trợ tối đa cho hệ điều hành Android. Vì thế ngôn ngữ lập trình này được áp dụng rất nhiều vào các ứng dụng dành cho Android.. Số người sử dụng Android chiếm hơn một nửa thị phần vì vậy có thể thấy, nhu cầu sử dụng các ứng dụng là rất lớn.

Nếu trong tay bạn đang cầm một chiếc điện thoại chạy trên hệ điều hành Android thì đừng bất ngờ, bất cứ một ứng dụng nào trên đó cũng đều được hình thành và phát triển trên nền tảng Java. Chính điều này đã tạo ra cơ hội lớn cho các lập trình viên Java: nếu họ học tốt và có kỹ năng thì chắc chắn những lập trình Java sẽ không bao giờ sợ thất nghiệp.

Điện toán đám mây

Cũng giống như Internet vạn vật (IoT), điện toán đám mây là một miếng bánh béo bở mà bất kỳ công ty nào cũng muốn chiếm thị phần. Java với tính năng di động của nó sẽ là chìa khóa giúp bạn quản lý các giải pháp điện toán đám mây. Ngoài ra, Java là ngôn ngữ lập trình đa mục đích. Nó cho phép bạn làm việc trên ứng dụng di động, máy tính để bàn và ứng dụng đám mây. Ví dụ, Heroku cung cấp một nền tảng đám mây sử dụng Java. Ngoài ra, có rất nhiều PaaS giúp bạn đi sâu vào điện toán đám mây. Cả Google Cloud Platform và Microsoft Azure đều có các điều khoản để lưu trữ các ứng dụng Java và quản lý chúng một cách hiệu quả.

Không gian nhúng

Ban đầu Java được phát triển để phục vụ cho các thiết bị nhúng. Nhưng sau đó ngày càng được phát triển mở rộng ra các lĩnh vực khác. Châm ngôn “viết một lần, chạy mọi nơi” cho thấy rằng Java đang mang lại nhiều lợi ích to lớn.

Trong lĩnh vực giao dịch chứng khoán

Java có một lợi thế nữa đó là sử dụng phù hợp với các hệ thống có hiệu suất cao. Mặc dù hiệu suất có thua chút ít so với ngôn ngữ native. Nhưng bạn lại có được sự an toàn, linh động và bảo trì với tốc độ nhanh hơn.

Ngoài các ứng dụng trên thì lập trình Java còn được sử dụng trong các ứng dụng khoa học, công nghệ big data hay các công cụ phần mềm. Java là một ngôn ngữ lập trình có thể được ứng dụng trong nhiều lĩnh vực khác nhau. Bạn có thể xem xét đến điều này để thấy rằng Java là một ngôn ngữ lập trình đáng để học.

Học ngôn ngữ lập trình Java

Để bắt đầu học lập trình Java, bạn phải cần thông thạo các ngôn ngữ lập trình hướng đối tượng, có thể học qua lập trình C để làm quen với những khái niệm của loại lập trình này cũng như có thể hiểu sâu hơn về Java và các công nghệ Java mà nhiều người thường sử dụng như:

  • Java Core.
  • Enterprise Java Beans.
  • JSP/Java Severlet.
  • JDBC và RMI.

Java core

Java core là kiến thức nền tảng của ngôn ngữ lập trình Java, nó sẽ là bước khởi đầu để bạn có thể học những kiến thức nâng cao như: JSP- Servlet – Android.

Ngoài ra, khi làm việc, lập trình viên cần thao tác nhiều với dữ liệu và làm sao để xử lý luồng dữ liệu nhanh nhất và chính xác nhất. 

Cấu trúc dữ liệu và giải thuật được xem là 2 yếu tố quan trọng trong lập trình. Data structure bao gồm 3 mức độ: cơ bản: stack (ngăn xếp), queue (hàng đợi), linkedlist (danh sách liên kết), binary tree (cây nhị phân);trung bình: Heap, Priority queue, Huffman Tree, Hash Table (Bảng băm); nâng cao:segment Tree, Binary Indexed Tree, Sparse Table, ….

JSP và Servlet

Java là gi

Sau khi đã nắm vững các khái niệm Java core cùng cấu trúc dữ liệu và giải thuật, bạn sẽ cần học thêm về JSP và Servlet. Trong quá trình học, bạn sẽ biết đến J2EE, là nền tảng lập trình cho các ứng dụng phân tán (trong đó web chính là nền tảng dạng như ứng dụng phân tán), từ đó tiếp cận với các khái niệm mới như API, SML, JDBC, JMS.

Enterprise và Java Beans

Enterprise Java Beans (EJB) là một thành viên trong gia đình J2EE, là nền tảng có nhiệm vụ xây dựng các thành phần phần mềm có tính di động và có thể reusable (sử dụng lại). Từ đó các developer có thể xây dựng và triển khai các distributed application (ứng dụng phân tán) dễ dàng, thuận lợi hơn.

Đích đến của EJB là các enterprise (ứng dụng thương mại), lớn, phân tán. Từ đó, EJB có nhiệm vụ quy định kiến trúc và đặc tả cho việc phát triển và triển khai các component (thành phần) thuộc server-side của distributed application. Các component này được các tổ chức phát triển build ứng dụng hay được một bên thứ ba mua lại.

JDBC và RMI 

JDBC là Java API có nhiệm vụ kết nối và thực hiện truy vấn database (cơ sở dữ liệu), sử dụng trình điều khiển JDBC để kết nối với database. Trước JDBC, ODBC được sử dụng để làm nhiệm vụ trên, tuy nhiên ODBC được biết bằng nền tảng phụ thuộc (ngôn ngữ C) nên Java đã tự định nghĩa API của chính mình và sử dụng JDBC được viết trên nền tảng Java.

Java RMI (Remote Method Invocation – Gọi phương thức từ xa): một kỹ thuật của Java cài đặt distributed object (đối tượng phân tán) hiệu quả và linh động.

Một số đặc tính của RMI:

  • Là mô hình distributed object của Java, giúp truyền thông giữa các distributed object dễ dàng hơn.
  • API bậc cao xây dựng dựa trên lập trình socket.
  • Không những cho phép truyền data giữa các object trên các hệ thống khác nhau mà còn gọi được các phương thức trong các đối tượng remote.
  • Quá trình truyền data giữa các máy được xử lý trong suốt với Java virtual machine (máy ảo Java).
  • Cung cấp callback, cho phép Server gọi ngược phương thức ở Client.

Tài liệu tự học ngôn ngữ lập trình Java

Giáo trình ngôn ngữ lập trình java cơ bản của Đại học Quốc gia Hà Nội

Đây là giáo trình dành cho những người đã có một ít kiến thức về Java bao gồm 58 chương từ cơ bản đến nâng cao. Bạn có thể tự học bằng tài liệu này một cách rất dễ dàng.

Ngoài mục đích thực hành các nội dung liên quan đến lập trình hướng đối tượng, các bài tập thực hành của môn học này nên có thêm đóng vai trò định hướng và gợi ý giúp đỡ các lập trình viên tự học các chủ đề thuần túy Java, hiểu sâu những giá trị cốt lõi để có thể phát triển hơn trong tương lai.

Các thuật ngữ hướng đối tượng nguyên gốc tiếng Anh đã được chuyển sang tiếng Việt theo những cách khác nhau tùy các tác giả. lập trình viên cần biết thuật ngữ nguyên gốc tiếng Anh cũng như các cách dịch khác nhau đó để tiện cho việc sử dụng tài liệu tiếng Anh cũng như để liên hệ kiến thức giữa các tài liệu tiếng Việt. Vì lý do đó, giáo trình này cung cấp bảng thuật ngữ Anh-Việt với các cách dịch khác nhau tại Phụ lục C, bên cạnh Phụ lục A về công cụ lập trình JDK và Phụ lục B về tổ chức gói của ngôn ngữ Java.

Tài liệu ngôn ngữ lập trình Java tiếng Việt

Giáo trình được nhóm tác giả TP. HCM biên soạn sau một thời gian tham gia giảng dạy chuyên đề lập trình Java cho lớp cử nhân tin học. Nội dung giáo trình là những kiến thức căn bản nhất giúp người đọc tiếp cận dễ dàng với công nghệ mới này, đây là bước đệm để trở thành một “Java Shooter”.

Think Java

Think Java là cuốn sách giới thiệu về lập trình Java cho người mới học. Nó được soạn riêng cho học viên chuẩn bị thi Computer Science Advanced Placement (AP) Exam, nhưng cũng dành cho bất kỳ ai muốn học Java.

Sách rất ngắn gọn, chỉ dùng một bộ phận nhỏ của ngôn ngữ Java đủ để giúp học viên thực hiện những bài tập lớn mà không bị sa đà vào những tiểu tiết của ngôn ngữ lập trình.

Học trực tiếp từ website của Java

Có lẽ việc học lập trình tốt nhất vẫn chính là học qua website chính thức của chính ngôn ngữ lập trình Java. Tại website chính thức của Java bạn cũng có thể được học trực tiếp từ những chuyên gia của họ, đồng thời tham gia các workshop cũng như webinar rất hữu ích.

Các blog học lập trình Java từ cơ bản đến nâng cao

Hơn hẳn những khóa học hàn lâm, học qua blog là một trong những cách thiết thực nhất giúp bạn có thể nắm được những kinh nghiệm được truyền từ những đàn anh đi trước. Hãy cùng xem qua những blog học lập trình Java mà bạn có thể tham khảo trực tiếp: 

  • quangchien.wordpress.com
  • vhandit.blogspot.com
  • freejavaguide.com

Lời kết

Hy vọng thông qua bài viết này bạn sẽ có cái nhìn tổng quan về ngôn ngữ lập trình Java đồng thời chọn được cho mình một lộ trình học ngôn ngữ lập trình Java phù hợp với bản thân.  Nếu có bất kỳ thắc mắc gì, đừng ngần ngại, hãy liên hệ ngay với chúng tôi nhé!