1. Java là gì?
Java là ngôn ngữ lập trình và là nền tảng điện toán máy tính để phát triển ứng dụng trên máy tính / di động và nhiều thiết bị khác.
Java được phát hành lần đầu tiên bởi Sun microsystem vào năm 1995 và sau đó được Tập đoàn Oracle mua lại. Java là ngôn ngữ lập trình số 1 thế giới, được nhiều Lập trình viên sử dụng nhất hiện nay.
2. Patform là gì? Java Platform là gì?
Platform là gì? Java Platform là gì?
Trước tiên, để hiểu về Java Platform, chúng ta cùng tìm hiểu về ...
Platform là gì?
Platform (Nền tảng) là một nhóm các công nghệ được sử dụng làm cơ sở cho các ứng dụng, quy trình hoặc công nghệ khác phát triển tiếp.
Ví dụ: Trong máy tính cá nhân, một platform là phần cứng cơ bản (máy tính) và phần mềm (hệ điều hành) để các ứng dụng có thể chạy.
Máy tính sử dụng các đơn vị xử lý trung tâm (CPU) cụ thể được thiết kế để chạy mã ngôn ngữ máy cụ thể.
Để máy tính chạy các ứng dụng phần mềm, các ứng dụng phải ở ngôn ngữ máy được mã hóa nhị phân CPU. Do đó, trong lịch sử, các chương trình ứng dụng được viết cho một nền tảng sẽ không hoạt động trên một nền tảng khác.
Nhưng Java Platform sinh ra để làm điều đó khác đi.
Java Platform là gì?
Java Platform (nền tảng Java) là một tập hợp các chương trình giúp phát triển và chạy các chương trình được viết bằng ngôn ngữ lập trình Java.
Java Platform bao gồm một công cụ thực thi (execution engine), trình biên dịch (compiler) và một bộ thư viện Java.
JAVA là ngôn ngữ độc lập với nền tảng. Nó không dành riêng cho bất kỳ bộ xử lý hoặc hệ điều hành.
=> Có nghĩa là chỉ cần cài Java Platform thì bất kỳ bộ xử lý hoặc hệ điều hành nào cũng có thể chạy Java.
Điều này tương đương với việc: Nhờ Java Platform, ngôn ngữ Java có thể chạy ở bất kỳ bộ xử lý hoặc hệ điều hành nào.
Để hiểu ngôn ngữ lập trình JAVA, chúng ta cần hiểu một số khái niệm cơ bản về cách một chương trình máy tính có thể chạy lệnh và thực thi hành động.
3. Máy tính là gì?
Đừng bảo mình rằng là bạn không biết máy tính là gì?
Tuy nhiên để hiểu rõ thì mình sẽ nhắc lại..
Máy tính là một thiết bị điện tử có khả năng thực hiện các tính toán và tất cả chúng ta đều biết rằng nó bao gồm một màn hình, bàn phím, chuột và bộ nhớ để lưu trữ thông tin.
Nhưng thành phần quan trọng nhất của máy tính là một PROCESSOR. Đó là tất cả mọi người nghĩ về máy tính.
Nhưng câu hỏi là máy tính làm thế nào để suy nghĩ? Làm thế nào để nó hiểu văn bản, hình ảnh, video, vv?
4. Ngôn ngữ Assembly là gì?
Máy tính là một thiết bị điện tử và nó chỉ có thể hiểu tín hiệu điện tử hoặc tín hiệu nhị phân. Ví dụ:
Tín hiệu điện tử 5 volt có thể đại diện cho số nhị phân 1 trong khi 0 volt có thể đại diện cho số nhị phân 0. Vì vậy, máy tính của bạn liên tục nhận và xuất ra các tín hiệu như vậy.
Máy tính chỉ hiểu tín hiệu điện tử dưới dạng nhị phân 0 và 1
8 bit của các tín hiệu như vậy được nhóm lại với nhau để giải thích Văn bản, số và ký hiệu.
Các ký tự, số, ký tự đặc biệt cũng có thể biểu diễn dưới dạng nhị phân
Ví dụ: Ký tự # được máy tính xác định là 10101010.
Ký tự # (Hash) được biểu diễn dưới dạng nhị phân
Điều này được gọi là điện toán 8 bit. Bộ xử lý ngày nay có khả năng giải mã 64 bit. Nhưng mối quan hệ của khái niệm này với ngôn ngữ lập trình JAVA là gì? Hãy hiểu những điều này như một ví dụ.
Giả sử nếu bạn muốn bảo máy tính cộng hai số (1 + 2) được biểu thị bằng một số số nhị phân (10000011), bạn sẽ nói với máy tính như thế nào?
Vâng, chúng ta sẽ sử dụng ngôn ngữ assembly để thực thi mã của chúng ta.
"Ngôn ngữ Assembly là hình thức cơ bản nhất của ngôn ngữ phát triển phần mềm."
Chúng ta sẽ ra lệnh cho một máy tính ở định dạng này như dưới đây. Mã của bạn để cộng hai số trong ngôn ngữ này sẽ theo thứ tự này.
-
Lưu trữ số 1 tại vị trí bộ nhớ A
-
Lưu trữ số 2 tại vị trí bộ nhớ B
-
Cộng nội dung của Vị trí A và B
-
Lưu trữ kết quả
Nhưng chúng làm điều này thế nào?
Quay trở lại những năm 1950 khi máy tính rất lớn và tiêu tốn rất nhiều năng lượng, bạn sẽ chuyển đổi mã Assembly của mình thành mã máy tương ứng thành 1 và 0 bằng cách sử dụng các map sheet.
Sau đó, mã này sẽ được bấm vào thẻ máy và đưa vào máy tính. Máy tính sẽ đọc các mã này và thực hiện chương trình. Đây sẽ là một quá trình lâu dài sau đó cho đến khi ASSEMBLER đến.
5. Compiler (Trình biên dịch) và Assembler là gì?
Với sự tiến bộ trong công nghệ, các thiết bị I/O đã được phát minh, bạn có thể trực tiếp nhập chương trình của mình vào PC bằng chương trình có tên ASSEMBLER.
Nó chuyển đổi nó thành mã máy tương ứng (110001 ..) và cung cấp cho bộ xử lý của bạn. Vì vậy, quay trở lại bổ sung ví dụ của chúng tôi về (1 + 2), trình biên dịch sẽ chuyển đổi mã này thành mã máy và đưa ra kết quả.
Assembler chuyển tín hiệu sang mã Nhị phân
Ngoài ra, bạn cũng sẽ phải thực hiện các cuộc gọi để tạo các chức năng do Hệ điều hành cung cấp để hiển thị đầu ra của mã.
Nhưng một mình Assembler không tham gia vào toàn bộ quá trình này.
Nó cũng yêu cầu trình biên dịch biên dịch mã dài thành một đoạn mã nhỏ.
Với sự tiến bộ trong các ngôn ngữ phát triển phần mềm, toàn bộ mã Assembly này có thể thu nhỏ lại thành một dòng:
printf 1+2 A
Với sự trợ giúp của phần mềm có tên là COMPILER. Nó được sử dụng để:
->Chuyển đổi mã ngôn ngữ C của bạn viết thành mã Assembly
-> Sau đó Assembler dịch mã chuyển đổi thành mã máy tương ứng
-> Và mã máy này sẽ được truyền đến bộ xử lý.
Bộ xử lý phổ biến nhất được sử dụng trong PC hoặc Máy tính là bộ xử lý Intel
Cách Assembler biên dịch mã C sang mã máy
Mặc dù trình biên dịch ngày nay đi kèm với Assembler có thể trực tiếp chuyển đổi mã ngôn ngữ cao hơn của bạn thành mã máy.
Bây giờ, giả sử hệ điều hành Windows đang chạy trên bộ xử lý Intel này, sự kết hợp của Hệ điều hành cộng với bộ xử lý được gọi là PLATFORM.
Platform phổ biến nhất trên thế giới là Windows và Intel được gọi là Wintel Platform. Các nền tảng phổ biến khác là AMD và Linux, Power PC và Mac OS X.
Bây giờ, với một sự thay đổi trong bộ xử lý (Processor), các hướng dẫn Assembly cũng sẽ thay đổi. Ví dụ:
-
Add trong Intel có thể được gọi là ADDITION trong AMD
-
Hoặc Math ADD trong Power PC
Và rõ ràng, với một sự thay đổi trong Hệ điều hành (O.S), mức độ và tính chất của O.S cũng sẽ thay đổi.
Là một Lập trình viên, ai cũng muốn chương trình phần mềm của tôi hoạt động trên tất cả các nền tảng có sẵn, để tối đa hóa doanh thu.
Vì vậy, việc cần làm là sẽ phải mua các trình biên dịch riêng biệt để chuyển đổi lệnh printf của chúng ta thành mã máy gốc.
Cần các trình biên dịch riêng biên dịch mã cho các hệ điều hành khác nhau
Nhưng trình biên dịch lại rất đắt đỏ và có khả năng xảy ra sự cố tương thích.
Vì vậy, việc mua và cài đặt một trình biên dịch riêng cho O.S và bộ xử lý khác nhau là không khả thi. Do đó, cần phải có một giải pháp thay thế?. Đó chính là:
Ngôn ngữ Lập trình Java
6. Java Virtual Machine (Máy ảo Java) hoạt động như thế nào?
Bằng cách sử dụng Máy ảo Java, vấn đề này có thể được giải quyết. Nhưng làm thế nào nó hoạt động trên các bộ xử lý khác nhau và các hệ điều hành khác nhau?.
Hãy hiểu quá trình này từng bước một.
Cách máy ảo Java (JVM) biên dịch mã cho các hệ điều hành khác nhau
-
Bước 1: Mã để cộng hai số là System.out.println(1+2) và được lưu dưới dạng tệp .java.
-
Bước 2: Sử dụng trình biên dịch java, mã được chuyển đổi thành mã trung gian được gọi là bytecode. Đầu ra là một .class file.
-
Bước 3: Mã này không được hiểu bởi bất kỳ nền tảng nào, mà chỉ một nền tảng ảo được gọi là Java Virtual Machine.
-
Bước 4: Máy ảo này nằm trong RAM của hệ điều hành của bạn. Khi Máy ảo được cung cấp bytecode này, nó sẽ tự động nhận dạng nền tảng mà nó đang hoạt động để chuyển đổi mã byte thành mã máy gốc.
Trong thực tế, trong khi làm việc trên PC hoặc duyệt web bất cứ khi nào bạn thấy một trong những biểu tượng này, hãy yên tâm rằng máy ảo Java được tải vào RAM của bạn.
Nhưng điều làm cho java có lợi thế lớn là mã Java khi được biên dịch có thể chạy không chỉ trên tất cả các nền tảng PC mà còn cả điện thoại di động hoặc các thiết bị điện tử khác có hỗ trợ java.
"Java là ngôn ngữ lập trình cũng như là một nền tảng"
7. Nền tảng Java độc lập như thế nào?
Giống như trình biên dịch C, trình biên dịch Java không tạo mã thực thi riêng cho một máy cụ thể. Thay vào đó, Java tạo ra một định dạng duy nhất được gọi là bytecode. Nó thực thi theo các quy tắc được đặt ra trong đặc tả của máy ảo Java.
Bytecode có thể hiểu được đối với bất kỳ JVM nào được cài đặt trên bất kỳ hệ điều hành nào. Nói tóm lại, mã nguồn Java có thể chạy trên tất cả các hệ điều hành.
8. Tổng kết
Qua bài này chúng ta đã hiểu về:
-
Java là gì?
-
Platform là gì?
-
Java Platform là gì?
-
Máy ảo Java (Java Virtual Machine) là gì? Chúng hoạt động ra sao?
-
Cách trình biên dịch hoạt động
Những kiến thức này sẽ giúp bạn hiểu rõ hơn về Java để tiếp tục các bài học Java tiếp theo. Hãy tiếp tục! Tìm hiểu kỹ hơn về máy ảo Java ...
---
HỌC VIỆN ĐÀO TẠO CNTT NIIT - ICT HÀ NỘI
Dạy học Lập trình chất lượng cao (Since 2002). Học làm Lập trình viên. Hành động ngay!
Đc: Tầng 3, 25T2, N05, Nguyễn Thị Thập, Cầu Giấy, Hà Nội
SĐT: 02435574074 - 0914939543 - 0353655150
Email: hello@niithanoi.edu.vn
Fanpage: https://facebook.com/NIIT.ICT/
#niit #niithanoi #niiticthanoi #hoclaptrinh #khoahoclaptrinh #hoclaptrinhjava #hoclaptrinhphp #java