Saturday, June 20, 2015

Bài 1 : Đôi nét về Java

I.Tổng quan về Java
Java hay gọi vui là Jav :P được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991. Ban đầu ngôn ngữ này được gọi làOak (có nghĩa là cây sồi; do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này), họ dự định ngôn ngữ đó thay cho C++, nhưng các tính năng giống Objective C. Không nên lẫn lộn Java với JavaScript, hai ngôn ngữ đó chỉ giống tên và loại cú pháp như C. Công ty Sun Microsystems đang giữ bản quyền và phát triển Java thường xuyên. Tháng 04/2011, công ty Sun Microsystems tiếp tục cho ra bản JDK 1.6.24.

Java được tạo ra với tiêu chí "Viết (code) một lần, thực thi khắp nơi" ("Write Once, Run Anywhere" (WORA)). Chương trình phần mềm viết bằng Java có thể chạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thi với điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó. Môi trường thực thi của Sun Microsystems hiện hỗ trợ Sun Solaris, Linux, Mac OS,FreeBSD & Windows. Ngoài ra, một số công ty, tổ chức cũng như cá nhân khác cũng phát triển môi trường thực thi Java cho những hệ điều hành khác như BEA, IBM, HP.... Trong đó đáng nói đến nhất là IBM Java Platform hỗ trợ Windows, Linux , .
Tại sao tôi lại cung cấp những thông tin này . Vì khi tuyển dụng cũng có rất nhiều công ty hỏi bạn những điều tưởng như không bao h thèm hỏi. Và thường là các công ty lớn : FPT , Vietsoftware International...
II. Cách biên dịch của Java
Source code (source file) sau khi được dev tạo ra .Sẽ được các trình biên dịch (complier) tạo ra mã byte code  hay còn gọi là các bit 01.
Dựa vào các bit nhị phân này sẽ thực hiện thao tác vật lý lên các vùng nhớ , ô nhớ của bộ nhớ vậy lý.
Đối với ngôn ngữ Java cũng vậy.
Tuy nhiên vì ngôn ngữ Java là một ngôn ngữ “write one , run everywhere” . Tức nó có thể chạy được trên nhiều hệ điều hành khác nhau (Ubuntu , Window , Red Hat , Mac OS ...) . Mà không phụ thuộc vào môi trường máy tính đó , hay trình biên dịch của máy tính đó.
Bởi cơ chế của nó là :

Trong bộ cài đặt JDK (Java Development Kit) nó bao gồm JRE + công cụ phát triển .

Trong JRE (Java Runtime Enviromement) chứa JVM (Java Virtual Machine – hiểu nó như 1 máy ảo của Java) .
Đặt ra câu hỏi tại sao nó lại write one , run every where???


Vì mỗi file .java được tạo ra thì sẽ được trình biên dịch Javac (JAV ẮC :D) complier để tạo ra các file .class . JVM sẽ thực hiện biên dịch các file này để truy xuất vào bộ nhớ vật lý (như đã trình bày ở trên).
Như vậy ở đây JVM triệu gọi các lệnh tới các hệ điều hành khác nhau là như vậy.
Hình dung JVM  nó như một thằng cò đất , có thể chiều được nhiều đối tượng muốn mua đất (là các hệ điều hành ) . Các bạn có thể tưởng tưởng theo kiểu khác cũng được J.
 Điều này đương nhiên quan trọng . Không những là một trong những câu hỏi
để phỏng vấn của các nhà tuyển dụng . Nó còn cho bạn biết cần phải học từ
những cái cơ bản nhất . Làm những cái nhỏ nhất.
III.Các thông số kỹ thuật và IDE
·         Tháng 12/1998 Sun công bố 2 platform của Java ,  bao quát hết tất cả các công nghệ trước đó. Nó gồm 3 phiên bản API : Java 2 Standard Edition (J2SE) , Java 2 Enterprise Edition (J2EE ), Java 2 Micro Edition (J2ME).
-          J2SE : phát triển cho các lĩnh vực client – side , standalone application  hoặc  applets
-          J2EE : phát triển các lĩnh vực server application , Servlet-JSP ..
-          J2ME : phát triển các cho các thiết bị mobile , cell phone.
·         Các IDE có thể phát triển được Java
-          Notepad++ , wordpad , notepad ... Những tool này không tích hợp trình biên dịc
Các IDE hay sử dụng:
-          JBuilder by Borland (http://sh.st/zycm8)
-          NetBeans Open Source by Oracle (http://www.netbeans.org/)
-          Eclipse Open Source by IBM (http://www.eclipse.org/)


-          Ngoài ta còn  : Code Warrior by Metrowerks (http://www.metrowerks.com/) ; TextPad Editor (http://www.textpad.com) ; JCreator LE (http://www.jcreator.com/) ; JCreator LE (http://www.jcreator.com/) ; JGrasp (http://www.jgrasp.org/)  ;  BlueJ (http://www.bluej.org/) ; DrJava (http://drjava.sourceforge.net/)

No comments:

Post a Comment