Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 23 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
23
Dung lượng
1,6 MB
Nội dung
Java overview Trang 5/66 1. Giới thiệu Java is an island of Indonesia and the site of its capital city, Jakarta. Do not lose time here. Please go ahead and read my report right now. ☺ 2. MộtsốvấnđềchungvềJava 2.1. Ngôn ngữ Java 2.1.1. Lịch sử phát triển Java được Sun MicroSystems giới thiệu lần đầu vào tháng 6 năm 1995 và nhanh chóng trở thành một ngôn ngữ lập trình chuyên nghiệp. Sơ khởi của Java là dự án "Oak", thiết kế một ngôn ngữ lập trình để điều khiển các thiết bị điện tử do James Gosling và các đồng nghiệp tại Sun phụ trách. Được xây dựng trên nền tảng của C/C++ sau khi bỏ đi các đặc tính phức tạp, Java là ngôn ngữ hướng đối tượng thuần túy và độc lập với hệ nền, đặc biệt phù hợp với việc xây dựng các hệ thống hoạt động trên môi trường internet. Java đi từ chỗ một ngôn ngữ lập trình đã trở thành một nền tảng công nghệ. Cùng với .NET của MicroSoft, Java trở thành một trong hai công nghệ chủ yếu cho việc phát triển phần mềm hiện nay. Các phiên bản chính thức được phát hành của Java (từ Wiki): • JDK 1.1.4 (Sparkler) September 12, 1997 JDK 1.1.5 (Pumpkin) December 3, 1997 JDK 1.1.6 (Abigail) April 24, 1998 JDK 1.1.7 (Brutus) September 28, 1998 JDK 1.1.8 (Chelsea) April 8, 1999 • J2SE 1.2 (Playground) December 4, 1998 J2SE 1.2.1 (none) March 30, 1999 J2SE 1.2.2 (Cricket) July 8, 1999 • J2SE 1.3 (Kestrel) May 8, 2000 J2SE 1.3.1 (Ladybird) May 17, 2001 • J2SE 1.4.0 (Merlin) February 13, 2002 J2SE 1.4.1 (Hopper) September 16, 2002 J2SE 1.4.2 (Mantis) June 26, 2003 • J2SE 5.0 (1.5.0) (Tiger) September 29, 2004 • Java SE 6 (1.6.0) (Mustang) December 11, 2006 • Java SE 7 (1.7.0) (Dolphin) anticipated for 2008 2.1.2. Đặc điểm chính • Kế thừa từ C/C++ sau khi loại bỏ các đăc tính phức tạp: đa kế thừa, con trỏ, quản lý bộ nhớ,… Java overview Trang 6/66 • Hướng đối tượng thuần túy • Độc lập với hệ nền, thông dịch ra bytecode chạy trên JVM, "Write One, Run Any Where" (Debug any where, :d) • Hỗ trợ cho các ứng dụng chạy trên mạng, ứng dụng phân tán. • An toàn - Bảo mật • … 2.1.3. Các ứng dụng Java Ban đầu, Java chủ yếu dùng để phát triển các applet, các ứng dụng nhúng vào trình duyệt, góp phần làm sinh động các trang web tĩnh vốn hết sức tẻ nhạt hồi dó. Tuy nhiên, cùng với sự phát triển của công nghệ thông tin và nhu cầu của xã hội, Java applet đã dần mất đi vị trí của nó và thay vào đó, các công ty, cộng đồng ủng hộ Java đã phát triển nó theo một hướng khác, còn vai trò của applet hiện nay đã mờ nhạt dần với sự phát triển của JavaScript. Hiện nay, công nghệ Java được chia làm ba bộ phận: a. J2SE Gồm các đặc tả, công cụ, API của nhân Java giúp phát triển các ứng dụng trên desktop và định nghĩa các phần thuộc nhân của Java. b. J2EE Gồm các đặc tả, công cụ, API mở rộng J2SE để phát triển các ứng dụng qui mô xí nghiệp, chủ yếu để chạy trên máy chủ (server). c. J2ME Gồm các đặc tả, công cụ, API mở rộng để phát triển các ứng dụng Java chạy trên điện thoại di động, thẻ thông minh, thiết bị điện tử cầm tay, robot và những ứng dụng điện tử khác . Java overview Trang 7/66 2.1.4. Sự phát triển của JavaJavavẫn đang chiếm thị phần lớn nhất, nhưng có sự đi lên rất mạnh mẽ của các ngôn ngữ khác. Chuẩn bị phát triển ứng dụng với Java 2.1.5. • J2SDK • Thiết lập biến môi trường • IDEs, Editor ( Phần 2.2) • Các tiện ích, công cụ ( Phần 2.3) 2.1.6. Tổ chức chương trình (v) Tổ chức cấu trúc của ứng dụng (BluePrints, Jakarta) Tổ chức code trong một lớp 2.2. IDEs thông dụng 2.2.1. Vai trò của IDEs Các môi trường phát triển tích hợp thường bao gồm: Một trình soạn thảo mã (source code editor): dùng để viết mã, hỗ trợ tính năng tự động sinh mã (code generator). • Trình biên dịch (compiler) và/hoặc trình thông dịch (interpreter). • Java overview Trang 8/66 • Công cụ xây dựng tự động: khi sử dụng sẽ biên dịch (hoặc thông dịch) mã nguồn, thực hiện liên kết (linking), và có thể chạy chương trình một cách tự động. • Trình gỡ lỗi (debugger): hỗ trợ dò tìm lỗi. • Ngoài ra, còn có thể bao gồm hệ thống quản lí phiên bản. • Các công cụ nhằm đơn giản hóa công việc xây dựng giao diện người dùng đồ họa (GUI). • Nhiều môi trường phát triển hợp nhất hiện đại còn tích hợp trình duyệt lớp (class browser), trình quản lí đối tượng (object inspector), lược đồ phân cấp lớp (class hierarchy diagram), . để sử dụng trong việc phát triển phần mềm theo hướng đối tượng. Việc sử dụng các môi trường phát triển tích hợp giúp người phát triển tăng tính hiệu quả và giảm thời gian thực hiện công việc của mình. Ngoài ra, người mới học cũng có thể tận dụng những tiện ích của các môi trường phát triển tích hợp để giảm bớt thời gian học của mình, vì những cấu hình, những dòng lệnh phức tạp (mà nếu không có môi trường phát triển tích hợp phải thực hiện bằng tay) đều đã được che dấu và tự động hóa. 2.2.2. Các loại IDEs thông dụng cho Java IDE Developer Lastest Realese OS Cost Features BEA Workshop BEA 3.2.1 / October, 2006 Windows, GNU/Linux $899 WebSphere Development Studio IBM 6.0.1 / January 31, 2006 Windows $1500 (Standard), $4500 (Advanced Edition) JBuilder Borland 6 (2006) / September, 2005 [6] Cross-platform Free (Foundation), $499 (Developer), $3,500 (Enterprise) - Phiên bản free ( Foundation) chỉ hỗ trợ các tính năng căn bản nhất JDeveloper Oracle 10 g (10.1.3) / January, 2006 Cross-platform Free - Hỗ trợ mạnh J2EE (EJB, Struts), đặc biệt phù hợp cho ứng dụng sử dụng công nghệ Oracle. NetBeans Sun 5.5 / October 27, 2006 Cross-platform Free - Hỗ trợ nhiều ứng dụng: Desktop, Web, Enterprise, Mobile. Java overview Trang 9/66 KDevelop KDevelop Team 3.3.5 (Oct 11 , 2006) GNU/Linux, Cygwin, other platforms offering X11 Free - Là IDE trên Linux không chỉ cho Java (C, Pascal, PHP, Ruby, SQL,…) Eclipse Eclipse Foundation 3.2.1 / September 21, 2006 Cross-platform Free - Tính năng ban đầu còn hạn chế - Nhưng có rất nhiều plugin hỗ trợ: MyEclipse, M7,… JCreator Xinox Software 4.00.026 / 16 October 2006 Windows Free (JCreator LE), $69 (JCreator Pro) - Phù hợp cho phát triển ứng dụng nhỏ Ngoài các IDEs mạnh, hỗ trợ nhiều tính năng, cũng có thể sử dụng các trình soạn thảo (Editors) đơn giản hỗ trợ sinh mã, đánh dấu mã, cú pháp mẫu, biên dịch, chạy ứng dụng,… Các Editor thông dụng: TextPad, JEdit, EditPlus. 2.2.3. Lựa chọn IDEs Xu hướng phổ biến hiện nay là lựa chọn các IDEs mã nguồn mở: Eclipse, NetBeans, JDeveloper 2.3. Các tiện ích, công cụ hỗ trợ 2.3.1. Apache Ant Một dự án rất thành công và nổi tiếng của Apache (ant.apache.org). Ant là một tiện ích dùng để compile, build các dự án phần mềm Java phức tạp. Khi các application chỉ có mộtsố lưọng ít các file thì có thể compile các source code bằng Java compiler như bình thường. Nhưng trong các dự án lập trình phức tạp như web applicaiton hay J2EE application, cần nhiều các sources khác nhau thì việc quản lý, cập nhật mối liên hệ giữa các sources này trở nên phức tạp. Lúc đó Ant giúp bạn quản lý và xử lý nhiệm vụ đó. Ant sử dụng cú pháp XML để build file (file build.xml), định nghĩa các resources, targets, dependences, tasks, . do vậy nó có tính độc lập và mềm dẻo trên nhiều platform khác nhau. Khả năng customization của Ant khá lớn cho phép người sử dụng khai thác nhiều chức năng mở rộng khác của Ant, xây dựng JAR, WAR file, tích hợp CVS, Unit Test. Để sử dụng Ant: • Download Ant (hiện đã có phiên bản 1.7.0 - Dec 19 2006). • Thiết lập ANT_HOME trong biến môi trường, %ANT_HOME%\bin trong path. • Thực thi build file để compile, build ứng dụng (build.xml). Ví dụ về Ant build file build.xml: Java overview Trang 10/66 Trong mộtsố IDEs (ví dụ: Eclipse, JBuilder, JDeveloper) có support Ant trực tiếp như một plugin, có thể view, edit, execute Ant build file ngay trong workspace. 2.3.2. Apache Maven Cũng là một dự án thành công và nổi tiếng của Apache (maven.apache.org). Tương tự như Ant, Maven cũng là công cụ compile, deploy đồng thời được cải tiến từ Ant với tính năng quản lý dự án (!). Maven có những ưu điểm sau so với Ant: • Có tính kế thừa các file build qua từng dự án. Trong khi với Ant, người phát triển phải viết lại các build file (cho dù là thao tác copy - past). • Có tính kế thừa các file build giứa nhiều người phát triển khác nhau. • Hay đơn giản Maven là công cụ bổ sung cho người làm việc với Java trong khi không muốn dùng Ant (thêm sự lựa chọn). /* http://www-128.ibm.com/developerworks/java/library/j-maven/ http://www.devx.com/java/Article/17204/0/page/1 Java overview Trang 11/66 */ 2.3.3. Test tools Chi tiết hơn tại Phần 2.8 • JUnit:Test framework nổi tiếng của Java. Các test framework khác đều dựa vào JUnit. JUnit được tích hợp cho hầu hết các IDE thông dụng như Eclipse, JBuilder, JDeveloper, NetBeans, . • HttpUnit: Dưa trên JUnit dùng để test web-tier như html, jsp, . 2.4. Đóng gói, tạo lập bộ cài đặt ứng dụng Java Tùy theo từng loại hình ứng dụng: Desktop, Web, Enterprise, Mobile (Phần 3) mà có các cách đóng gói ứng dụng khác nhau: Loại ứng dụng File đóng gói Công cụ đóng gói Triển khai ứng dụng Desktop JAR file - Tạo file JAR bằng các chương trình nén phổ biến: WinRar, WinZip, . Chú ý cấu trúc file JAR (META-INF) - IDE hỗ trợ - Chương trình installer thương mại chuyển nghiệp: InstallAnywhere, iInstallShield, nstall4j, . - Chương trình installer miễn phí: IzPack - Chạy như file .EXE thông thường (javaw.exe) - Chạy từ dòng lệnh - Chạy ứng dụng Desktop qua Web sử dụng Java Web Start Web WAR file - Đóng gói bằng tay để tạo file WAR sử dụng các thẻ <target> trong các file build.xml (ví dụ dùng Ant) - Sử dụng IDE để tạo lập file WAR - Deploy lên Web Server (bằng tay, hoặc IDE hỗ trợ) J2EE EAR file - Đóng gói bằng tay để tạo file EAR sử dụng các thẻ <target> trong các file build.xml (ví dụ dùng Ant) - Sử dụng IDE để tạo lập file EAR - Deploy lên J2EE Server (bằng tay, hoặc IDE hỗ trợ) J2ME (cancel) Java overview Trang 12/66 2.5. Vấnđề an toàn bảo mật trong Java 2.5.1. Kiến trúc Kiến trúc bảo mật của Java được thiết kế theo nhiều cấp độ khác nhau để kiểm soát tính an toàn khi thực thi chương trình, từ thành phần của các lớp đến quy mô tổng thể cho toàn ứng dụng. • Ở mức đầu tiên, dữ liệu và các phương thức được đóng gói bên trong lớp. Chúng chỉ được truy xuất thông qua các giao diện mà lớp cung cấp. Java không hỗ trợ con trỏ vì vậy không cho phép truy xuất bộ nhớ trực tiếp. Nó cũng ngăn chặn không cho truy xuất thông tin bên ngoài kích thước của mảng bằng kỹ thuật tràn và cũng cung cấp kỹ thuật dọn rác trong bộ nhớ. Các đặc trưng này tạo cho Java an toàn tối đa và có khả năng cơ động cao. • Trong lớp thứ hai, trình biên dịch kiểm soát để đảm bảo mã là an toàn, và tuân theo các nguyên tắc của Java. • Lớp thứ ba được đảm bảo bởi trình thông dịch. Chúng kiểm tra xem bytecode có đảm bảo các qui tắc an toàn trước khi thực thi. • Lớp thứ tư kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giới hạn truy xuất trước khi nạp vào hệ thống. Java platform cung cấp một tập các hàm API đảm bảo tính bảo mật của các ứng dụng Java bao gồm: Mã hóa (cryptography), Hạ tầng mã khóa công khai (public key infrastructure), Chứng thực (authentication), Bảo mật trên đường truyển (secure communication) và Điều khiển truy nhập (access control). 2.5.2. Mã hóa Java Platform cung cấp một nền tảng với nhiều hàm chức năng dịch vụ cho việc truy cập và sử dụng mã hóa: • Các giải thuật mã hóa: RSA, MD5 • Mã hóa hệ thống message • Chữ ký số • Mã hóa password • Mã hóa đối xứng • Sinh mã ngẫu nhiên • . Package: java.security, javax.crypto 2.5.3. Hạ tầng mã khóa công khai Hạ tầng mã hóa công khai (Public Key Infrastructure - PKI) là một giải pháp bảo mật có nhiều tối ưu so với phương pháp bảo mật đối xứng, PKI có liên quan mật thiết tới chữ ký số. Java Platform cung cấp hai công cụ built-in cho các thao tác với khóa, chứng thực và lưu trữ khóa: 1. keytool sử dụng cho việc tạo lập và quản lý khóa: • Tạo cặp khóa công khai / khóa cá nhân Java overview Trang 13/66 • Hỗ trợ chuẩn X.509 (hiển thị, xuất, nhập) • Giao tiếp với các CAs 2. jarsigner sử dụng cho việc ký hoặc kiểm tra chữ ký trong các file JAR Package: java.security.KeyStore, java.security.cert.CertStore, java.security.Key 2.5.4. Chứng thực Kiểm tra định danh của user trong các ứng dụng Java (Khác với Authorization - Kiểm tra quyền) thông qua module đăng nhập. Java Platform cung cấp các modules built-in sau cho thao tác chứng thực: 1. Krb5LoginModule sử dụng giao thức Kerberos 2. JndiLoginModule sử dụng account trong LDAP hoặc NIS 3. KeyStoreLoginModule sử dụng key store Package: javax.security.auth.login, javax.security.auth.spi.LoginModule 2.5.5. Bảo mật trên đường truyển Dữ liệu cần bảo mật được bảo vệ trên đường truyền trong các ứng dụng Java bới các chuẩn truyền dữ liệu trên mạng: 1. SSL/TLS/HTTPS 2. SASL 3. GSS-API và Kerberos Package: javax.net.ssl.SSLSocket, javax.net.ssl.SSLEngine, javax.net.ssl.KeyManager, javax.security.sasl.Sasl, javax.security.auth.kerberos 2.5.6. Điều khiển truy nhập Điều khiển truy cập trong các ứng dụng Java được chia thành bốn nội dung: 1. ClassAccess Quy tắc truy cập vào các thành phần trong các lớp: public, protected, private, no-defined Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N private Y N N N 2. Permission 3. Policy 4. Domain 2.6. Database (Tập trung vào Driver) Có sẵn các connector driver cho hầu hết các loại Database. Java overview Trang 14/66 Tùy theo quy mô, yêu cầu của ứng dụng, yêu cầu từ khách hàng, . mà lựa chọn Database nào cho các ứng dụng Java. Sử dụng phổ biến nhất là các Database mã nguồn mở, miễn phí như PostgreSQL, MySQL. 2.6.1. PostgreSQL http://www.postgresql.org PostgreSQL là hệ thống CSDL quan hệ, hướng đối tượng mã nguồn mở, có đầy đủ các tính năng của một hệ CSDL thương mại như transaction, view, trigger, function, . Cũng giống như nhiều hệ thống phần mềm mã nguồn mở, hay miễn phí nổi tiếng khác, PostgreSQL không được kiểm soát bởi một công ty đơn lẻ nào, thay vào đó nó được phát triển, cập nhật bởi một cộng đồng đông đảo trên toàn thể giới. PostgreSQL hỗ trợ Unicode ngay từ những phiên bản đầu tiên. Phiên bản 8.x (hiện nay là 8.2.3 - March 12, 2007) đã có bản chạy trên Windows, có hỗ trợ quản trị giao diện GUI. Mộtsố đặc điểm chính của PostgreSQL: • Là hệ quản trị CSDL quan hệ và hướng đối tượng • Cú pháp được chuẩn hóa theo chuẩn SQL92, và có nhiều tính năng của SQL99 • Mã nguồn mở BSD licence • Xử lý các giao dịch dựa trên MVCC (multi-version concurrency control), cho phép hoạt động với hiệu năng cao hơn • Hỗ trợ đa ngôn ngữ, đa nền • Có thể mở rộng từ phía người dùng với nhiều gói tính năng trên Internet: định nghĩa kiểnu dữ liệu, các thủ tục, . Để kết nối với PostgreSQL, download Driver và khai báo với các thông số sau: • Driver : org.postgresql.Driver • Url : jdbc:postgresql://host:port/database 2.6.2. MySQL http://www.mysql.com MySQL có thể coi là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất hiện nay, có đầy đủ các tính năng của một hệ CSDL thương mại như transaction, view, trigger, function, . MySQL được phát triển, phân phối và hỗ trợ bởi MySQL AB - công được thành lâp bởi mộtsố nhà phát triển MySQL. Mộtsố đặc điểm chính của MySQL: • Là hệ quản trị CSDL quan hệ • Mã nguồn mở GPL licence • Nhanh, tin cậy, dễ dàng sử dụng • Hoạt động trong ứng dụng Client/Server hoặc ứng dụng nhúng. • Đa ngôn ngữ, đa nền [...]... Test, CVS) 2.8.1 Java Convention Vấnđề convention trong các ứng dụng Java, hay bất kỳ ứng dụng viết trên các ngôn ngữ, công nghệ nào cũng là một vấnđề quan trọng đảm bảo chất lượng của sản phẩm, hiệu quả của dự án Đặc biệt là trong các ứng dụng lớn, nhiều người phát triển, convention đảm bảo việc phát triển, Trang 19/66 Java overview chỉnh sửa, tối ưu ứng dụng nhanh chóng và hiệu quả hơn Java convention... httpunit.jar, Tidy.jar • Sử dụng HttpUnit kết hợp với Ant 2.9 Về máy ảo Java JVM Một trong những đặc điểm nổi bật của Java là " Write One, Run Any Where " Khả năng cơ động này có được nhờ sự giúp đỡ của máy ảo Java (JVM - Java Virtual Machine) giúp cho Java độc lập với phần cứng và hệ điều hành Tính độc lâp của chương trình viết bằng ngôn ngữ Java được thể hiện ở mức mã nguồn và mức nhị phân Ở mức mã... Testing trong đảm bảo chất lượng? Tự động hóa mộtsố giai đoạn trong quy trình test đặc biệt là unit test >> sử dụng tools a JUnit http://www.junit.org JUnit là công cụ nổi tiếng nhất hỗ trợ cho việc tự động hóa giai đoạn Unit test trong các ứng dụng Java Hiện JUnit có giao diện đồ họa giúp người test dễ dàng tổ chức, thực thi thao tác test Một sốvấnđề khi sử dụng JUnit: • Phải khai báo gói thư viện... dụng viết bằng Java có đầy đủ điều kiện để phát triển 2.9.2 Các vấnđề với JVM • Tập lệnh thực thi dưới dạng bytecodes, các class • Các thư viện của Java đảm nhận nhiệm vụ chuyển các lớp class của ứng dụng sang các class của JVM (Trình Class Loader) • Quản lý bộ nhớ và dọn rác • JVM vs JIT (Có sẵn trong một số ứng dụng Browser) • Việc thực thi thông qua JVM ảnh hưởng tới tốc độ của Java? (Cấu hình... mã nguồn, người lập trình cần mô tả kiểu cho mỗi biến Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hành và phần cứng khác nhau Java có riêng một thư viện các lớp cơ sở Vì vậy chương trình Java được viết trên một máy có thể dịch và chạy trơn tru trên các loại máy khác mà không cần viết lại Tính độc lập ở mức nhị phân, một chương trình đã biên dịch có thể chạy trên nhiều nền (phần cứng, hệ... bytecode, tại mỗi máy cần phải có trình thông dịch của Java hay còn gọi là máy ảo Java Máy ảo Java chuyển bytecode thành mã lệnh mà CPU thực thi được Ta có JVM dành cho PC IBM, Mac, 2.9.1 Định nghĩa JVM Máy ảo Java là một phần mềm dựa trên cơ sở máy tính ảo Nó có tập hợp các lệnh logic để xác định các hoạt động của máy tính Người ta có thể xem nó như một hệ điều hành thu nhỏ Nó thiết lập các lớp trừu... convention có thể chia thành các nội dung: 1 Coding convention http:/ /java. sun.com/docs/codeconv/html/CodeConvTOC.doc.html 2 Tổ chức cấu trúc ứng dụng Javamột cách hợp lý • Java BluePrints: http:/ /java. sun.com/blueprints/code/projectconventions.html 3 Đảm bảo tuân thủ quy trình 2.8.2 CVS CVS - Concurrent Versions System, hệ thống quản lý phiên bản Đề cập tới công cụ giúp lưu trữ các phiên bản của các tài nguyên... JVM vs JIT (Có sẵn trong một số ứng dụng Browser) • Việc thực thi thông qua JVM ảnh hưởng tới tốc độ của Java? (Cấu hình phần cứng hỗ trợ) 3 Tổng quan về một số ứng dụng Java 3.1 Desktop application 3.1.1 Đặc điểm ứng dụng Desktop Theo đánh giá chung thì Java không phải là lựa chọn tối ưu nhất cho việc phát triển các ứng dụng Desktop, trừ phi đó là yêu cầu từ phía người dùng hay hướng công nghệ của người... (farming) • Enterprise JavaBeans version 3 c Cấu trúc thư mục Cấu trúc thư mục của JBoss sau khi cài đặt như sau: Trang 17/66 Java overview • bin: script cho thao tác bật và tắt server JBoss cũng như khởi tạo, khai báo một vài thông số hệ thống Đối với Windows sử dụng file bat, đối với OS kiểu Linux sử dụng file sh • client: file cấu hình, file jar cần thiết cho hoạt động của ứng dụng Java phía Client •... nguồn Tuy vậy cần có phần mềm hoạt động như một trình thông dịch tại máy thực thi, phần mềm đó chính là máy ảo Java Môi trường phát triển của Java được chia làm hai phần: Trình biên dịch và trình thông dịch Không như C hay C++, trình biên dịch của Java chuyển mã nguồn thành dạng bytecode độc lập với phần cứng mà có thể chạy trên bất kỳ CPU nào Trang 21/66 Java overview Nhưng để thực thi chương trình . ahead and read my report right now. ☺ 2. Một số vấn đề chung về Java 2.1. Ngôn ngữ Java 2.1.1. Lịch sử phát triển Java được Sun MicroSystems giới thiệu lần. CVS) 2.8.1. Java Convention Vấn đề convention trong các ứng dụng Java, hay bất kỳ ứng dụng viết trên các ngôn ngữ, công nghệ nào cũng là một vấn đề quan trọng