Học lập trình Java từ đâu và như thế nào?

11084

Đâu là những kiến thức cần có khi học lập trình java làm backend web developer? Để tìm hiểu và Học Java bạn nên bắt đầu nắm vững những khái niệm cơ bản nhất. Từ đó khai triển lên kiến thức nâng cao hơn. Vậy các keyword chính khi học Java để trở thành một Java Web Developer là gì?

Java là một trong những ngôn ngữ bậc cao được nhiều công ty và các tổ chức trên thế giới tin dùng, Ngôn ngữ Java được thiết kế vào những năm 90s bởi tổ chức Sun Micro system hiện nay thuộc sở hữu của Oracle. Java có tính độc lập rất cao, tiện lợi, có thể dùng cho việc cross-platform, có nghĩa bạn chỉ cần viết chương trình một lần thì có thể chạy trên nhiều nền tảng khác nhau. Khẩu hiệu kinh điển mà bất kỳ dân lập trình Java nào cũng biết đó là “Viết một lần, chạy được khắp nơi” (Write Once Run Anywhere).

Học Java căn bản thì bắt đầu từ đâu?

Để 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

Nhắc đến Java backend developer chắc chắn phải nằm lòng kiến thức căn bản của ngôn ngữ lập trình java: 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.

  • Java là ngôn ngữ lập trình hướng đối tượng (OOP)

Lập trình hướng đối tượng (OOP) là một kỹ thuật lập trình cho phép lập trình viên tạo ra các đối tượng trong code trừu tượng hóa các đối tượng. Đối tượng là những sự vật, sự việc mà nó có những tính chất, đặc tính, hành động giống nhau và ta gom góp lại thành đối tượng giống trong thực tế cuộc sống. Khi lập trình OOP, chúng ta sẽ định nghĩa các lớp (class) để gom (mô hình) các đối tượng thực tế.

Xem thêm OOP là gì

  • Cách sử dụng câu điều kiện: if/else

Trong ngôn ngữ lập trình Java cũng như các ngôn ngữ lập trình khác, cấu trúc điều khiển if – else sẽ kiểm tra kết quả của 1 điều kiện và dựa vào kết quả đó để thực hiện các hành động tương ứng. Có bốn loại câu lệnh if trong java: Câu lệnh IF; Câu lệnh if -else; Câu lệnh if -else -if; Câu lệnh if lồng nhau.

  • Sử dụng vòng lặp: for/while

Vòng lặp for trong java được sử dụng để lặp một phần của chương trình nhiều lần. Nếu số lần lặp là cố định thì vòng lặp for được khuyến khích sử dụng, còn nếu số lần lặp không cố định thì nên sử dụng vòng lặp while hoặc do while. Có 3 kiểu của vòng lặp for trong java: Vòng lặp for đơn giản; Vòng lặp for cải tiến; Vòng lặp for gán nhãn.

  • Exception là gì và cách xử lý exception (xử lý ngoại lệ) trong Java

Exception trong Java được xem là một sự kiện làm gián đoạn luồng làm việc bình thường của chương trình đó. Nó là một đối tượng được ném ra tại runtime. Cụ thể là khi một chương trình đang chạy exception sẽ khiến nó lập tức dừng lại và xuất hiện thông báo lỗi. Một ví dụ trực quan nhất là khi bạn tiến hành thực hiện phép chia một số nguyên dương cho số 0 thì khi biên dịch chương trình sẽ làm phát sinh lỗi và đó được coi là ngoại lệ.

  • Checked Exception

Check Exception là các Exception xảy ra tại thời điểm Compile time (là thời điểm chương trình đang được biên dịch). Những Exception này thường liên quan đến lỗi cú pháp (syntax) và bắt buộc chúng ta phải “bắt” (catch) nó.

  • Unchecked Exception

Unchecked Exception được xem là các Exception xảy ra tại thời điểm Runtime (là thời điểm chương trình đang chạy). Những Exception này thường liên quan đến lỗi logic và không bắt buộc chúng ta phải “bắt” (catch) nó.

  • Các cấu trúc dữ liệu: chuỗi, mảng, HashMap, LinkedList

Đối với các ngôn ngữ lập trình, chuỗi và mảng là 2 kiểu dữ liệu rất quan trọng. Trong ngôn ngữ lập trình Java, chuỗi được coi là 1 dữ liệu dạng đối tượng (tức là nó có các thuộc tính và phương thức – chi tiết về đối tượng chúng ta sẽ được học trong chương Lập trình hướng đối tượng).

  HashMap hoạt động như thế nào trong java?

Trong lập trình Java, mảng (array) là một tập hợp các phần tử có cùng kiểu dữ liệu, có địa chỉ tiếp nhau trên bộ nhớ (memory). Mảng có số phần tử cố định và bạn không thể thay đổi kích thước của nó.. Mỗi phần tử của mảng được sử dụng như là một biến đơn, kiểu dữ liệu của mảng chính là kiểu dữ liệu của phần tử.

học lập trình Java

Mảng được sử khá nhiều, có tính ứng dụng cao không chỉ bởi sự đơn giản cũng như khả năng đáp ứng nhu cầu lưu trữ dữ liệu trong các bài toán thực tế. Các lập trình viên có nhiều kinh nghiệm thường sử dụng mảng khi cần lưu trữ nhiều giá trị, chẳng hạn như lưu trữ các số nguyên từ 1 đến 5; dãy 32 chuỗi ký tự v.v… 

Trong Java, mảng được hỗ trợ dưới dạng mảng một chiều cho đến mảng nhiều chiều. Tuy nhiên tối đa chỉ sử dụng mảng ba chiều và được dùng nhiều nhất là mảng một chiều.

Ví dụ về cách khai báo 1 mảng trong Java 

// Khai báo một mảng, chưa chỉ rõ số phần tử.
int[] array1;
 
// Khởi tạo mảng với 100 phần tử
// Các phần tử chưa được gán giá trị cụ thể
array1 = new int[100];
 
// Khai báo một mảng, và chỉ rõ số phần tử
// Các phần tử chưa được gán giá trị cụ thể
double[] array2 = new double[10];
 
// Khai báo một mảng với các phần tử được gán giá trị cụ thể.
// Mảng này có 4 phần tử
long[] array3= {10L, 23L, 30L, 11L};
  • Java còn là ngôn ngữ lập trình đa luồng multithreading

Trong Java có hai khái niệm multi: multithreading (đa luồng) và multitasking (đa tiến trình). Đa luồng khi chương trình đó có 2 luồng trở lên chạy song song với nhau và một luồng (thread) là đơn vị nhỏ nhất của tiến trình (process). Trong đó, luồng – đơn vị nhỏ nhất trong chương trình có thể thực hiện được một công việc riêng biệt, được quản lý bởi máy ảo Java. Bốn thành phần chính của một luồng bao gồm: định dang, một bộ đếm chương trình, một tập thanh ghi và ngăn xếp. Một ứng dụng Java ngoài luồng chính có thể có các luồng khác thực thi đồng thời. Với đa luồng, công việc của Java được xử lý nhanh chóng hơn.

Ví dụ khai báo mảng 2 chiều 

// Khai báo một mảng có 5 dòng, 10 cột
MyType[][] myArray1 = new MyType[5][10]; 
 
// Khai báo một mảng 2 chiều có 5 dòng.
// (Mảng của mảng)
MyType[][] myArray2 = new MyType[5][]; 
 
// Khai báo một mảng 2 chiều, chỉ định giá trị các phần tử. 
MyType[][] myArray3 = new MyType[][] {
 
    { value00, value01, value02 , value03 }, 
    { value10, value11, value12 } 
};
 
// ** Chú ý:
// MyType có thể là các kiểu nguyên thủy (byte, char, double, float, long, int, short, boolean)
// hoặc là kiểu tham chiếu.

Cấu trúc dữ liệu và giải thuật

Khi làm việc phía backend, Java developer 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, Spare Table, ….

JSP và Servlet

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

học lập trình Java

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 laị.

JDBC và RMI là gì

học lập trình Java

  • 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 đuợ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.

học lập trình Java

Giải thích thuật ngữ: skeleton: lớp nối phía server; stub: lớp móc chuyển về cho client. RMI không gọi trực tiếp mà thông qua 2 lớp trung gian này.

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

Các framework của Java gồm những gì?

  • STRUTS
  • SPRINGS

Đây là hai framework khá lâu đời và được phát triển dựa trên nền tảng của J2EE, hỗ trợ việc xây dựng web bằng ngôn ngữ Java theo hướng MVC: viết tắt cho model view controller, một pattern khá nổi tiếng khi thiết kế phần mềm.

Trong quá trình học Springs/struts bạn cũng cần tìm hiểu về thư viện liên quan tới thao tác về mặt database trong ứng dụng S/S: JPA hay Hibernate. mvc

Ngoài ra chúng ta còn có 10 Framework tốt nhất dành cho Java mà bạn có thể bookmark ngay để tham khảo 

Lộ Trình cơ bản của lập trình viên Java

Tham khảo lộ trình chi tiết khi học ngôn ngữ Java qua roadmap dưới đây:

học lập trình Java

Tham khảo các khóa học Java miễn phí tại đây.

Lượng kiến thức phải học Java để theo con đường web developer không phải là ít, cũng không thể hoàn thành trong một sớm một chiều. Cách nhanh nhất và học hiệu quả nhất của người theo đuổi Java Web Developer chính là định hướng rõ ràng, đặt mục tiêu và dành thời gian, công sức một cách nghiêm túc.

Các tài liệu lập trình Java từ căn bản nâng cao

Ngoài những nội dung như trên, TopDev xin được phép chia sẻ thêm một số tài liệu tiếng Anh và Việt dành cho những người mới cũng như những ai có kinh nghiệm về Java.

1. Tài liệu Java cơ bản của Đại Học Quốc Gia Hà Nội

Chú ý đâ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

2. Blog học lập trình Java căn bản đến nâng cao đầy đủ nhất

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 nhé.

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

Ngoài ra bạn cũng có thể tham khảo thêm những nội dung của trang FreeJavaGuide đây cũng là một trong những nơi có chứa đầy đủ nhất thông tin cho những ai cần tham khảo và tìm hiểu thông tin về lập trình Java.

TopDev tổng hợp

Xem thêm các việc làm lập trình Java hấp dẫn tại TopDev

Báo cáo bài viết vi phạm bản quyền>>